rendered paste bodystruct file_info {
const struct input_dev *iop; /* Input operations */
const struct output_dev *oop; /* Output operations */
/* Structure used for input blocking */
struct {
int blocklg2; /* Blocksize log 2 */
size_t offset; /* Current file offset */
size_t length; /* Total file length */
uint16_t filedes; /* File descriptor */
uint16_t _filler; /* Unused */
size_t nbytes; /* Number of bytes available in buffer */
char *datap; /* Current data pointer */
char buf[MAXBLOCK];
} i;
/* Output file data */
struct {
int rows, cols; /* Rows and columns */
} o;
/* FS specific data */
void* fs;
};