tcc-stupidos/libtcc/include/tcc/io.h

32 lines
No EOL
1.1 KiB
C

#ifndef TCC_IO_H
# define TCC_IO_H 1
# include <stdint.h>
# define IO_BUF_SIZE 8192
typedef struct BufferedFile {
uint8_t *buf_ptr;
uint8_t *buf_end;
int fd;
struct BufferedFile *prev;
int line_num; /** current line number - here to simplify code */
int line_ref; /** tcc -E: last printed line */
int ifndef_macro; /** #ifndef macro / #endif search */
int ifndef_macro_saved; /** saved ifndef_macro */
int *ifdef_stack_ptr; /** ifdef_stack value at the start of the file */
int include_next_index; /** next search path */
int prev_tok_flags; /** saved tok_flags */
char filename[1024]; /** filename */
char *true_filename; /** filename not modified by # line directive */
unsigned char unget[4];
unsigned char buffer[1]; /** extra size for CH_EOB char */
} BufferedFile;
# define CH_EOB '\\' /** end of buffer or '\0' char in file */
# define CH_EOF (-1) /** end of file */
ssize_t full_read(int fd, void *buf, size_t count);
void *load_data(int fd, unsigned long file_offset, unsigned long size);
#endif /* !TCC_IO_H */