00001 /* file.h */ 00002 00003 #ifndef __SYSTEM 00004 #include "routix/system.h" 00005 #endif 00006 00007 #ifndef __FAT12 00008 #include "drivers/fat.h" 00009 #endif 00010 00011 #ifndef __FILE 00012 #define __FILE 00013 00014 00015 typedef struct file_opened_t 00016 { 00017 // byte *bloque; 00018 dword sector_actual; 00019 fat12_entry_ext_t datos; 00020 dword fd; //File descriptor 00021 dword offset; //Offset absoluto (al comienzo) 00022 dword offset_rel; //Offset relativo al sector actual 00023 dword sectores; //Cantidad de sectores que ocupa el archivo 00024 struct file_opened_t *next; 00025 }file_opened_t; 00026 00027 ssize_t read (int fd, void *buf, size_t len); 00028 int open (char *nombre); 00029 int close (int fd); 00030 int lseek (int fd, int offset, int donde); 00031 00032 #define SEEK_CUR 1 00033 #define SEEK_SET 2 00034 #define SEEK_END 3 00035 00036 #define DRIVE_0 0 00037 #define FAT12 0 00038 00039 struct file 00040 { 00041 byte device; // Tipo de dispositivo donde se encuentra el archivo 00042 byte fs; // tipo de filesystem 00043 dword sector_origen;// Sector donde comienza el archivo en el dispositivo device con filesystem fs 00044 dword sector_actual; 00045 dword offset; // offset desde el comienzo del archivo 00046 dword offset_rel; // offset desde el sector sobre el que esta parado 00047 dword sectores; // cantidad de sectores totales 00048 dword size; 00049 }; 00050 00051 #define MAX_FILES_POR_TAREA 5 00052 00053 #endif