86#define F_LONGFILENAME 1
89#define F_LONGFILENAME 1
94#define FN_MUTEX_TYPE OS_CRIT
97 typedef unsigned short wchar;
113#define NULL (void *)0
127 char path[FN_MAXPATH];
128 char filename[F_MAXNAME];
129 char fileext[F_MAXEXT];
132#define F_MAXLNAME 256
136 W_CHAR path[FN_MAXPATH];
137 W_CHAR lname[F_MAXLNAME];
143 unsigned long cluster;
144 unsigned long prevcluster;
145 unsigned long sectorbegin;
146 unsigned long sector;
147 unsigned long sectorend;
153 char filename[FN_MAXPATH];
154 char name[F_MAXNAME];
158 unsigned short ctime;
159 unsigned short cdate;
160 unsigned long filesize;
162 unsigned long cluster;
170 W_CHAR filename[FN_MAXPATH];
171 char name[F_MAXNAME];
175 unsigned short ctime;
176 unsigned short cdate;
177 unsigned long filesize;
179 unsigned long cluster;
186#define F_ATTR_ARC 0x20
187#define F_ATTR_DIR 0x10
188#define F_ATTR_VOLUME 0x08
189#define F_ATTR_SYSTEM 0x04
190#define F_ATTR_HIDDEN 0x02
191#define F_ATTR_READONLY 0x01
194#define F_CTIME_SEC_SHIFT 0
195#define F_CTIME_SEC_MASK 0x001f
196#define F_CTIME_MIN_SHIFT 5
197#define F_CTIME_MIN_MASK 0x07e0
198#define F_CTIME_HOUR_SHIFT 11
199#define F_CTIME_HOUR_MASK 0xf800
202#define F_CDATE_DAY_SHIFT 0
203#define F_CDATE_DAY_MASK 0x001f
204#define F_CDATE_MONTH_SHIFT 5
205#define F_CDATE_MONTH_MASK 0x01e0
206#define F_CDATE_YEAR_SHIFT 9
207#define F_CDATE_YEAR_MASK 0xfe00
211 unsigned short number_of_cylinders;
212 unsigned short sector_per_track;
213 unsigned short number_of_heads;
214 unsigned long number_of_sectors;
215 unsigned char media_descriptor;
219#define F_MEDIADESC_REMOVABLE 0xf0
220#define F_MEDIADESC_FIX 0xf8
223#define F_ST_MISSING 0x00000001
224#define F_ST_CHANGED 0x00000002
225#define F_ST_WRPROTECT 0x00000004
228 typedef struct F_DRIVER F_DRIVER;
230 typedef int (*F_WRITESECTOR)(F_DRIVER *driver,
void *data,
unsigned long sector);
231 typedef int (*F_WRITEMULTIPLESECTOR)(F_DRIVER *driver,
void *data,
unsigned long sector,
int cnt);
232 typedef int (*F_READSECTOR)(F_DRIVER *driver,
void *data,
unsigned long sector);
233 typedef int (*F_READMULTIPLESECTOR)(F_DRIVER *driver,
void *data,
unsigned long sector,
int cnt);
234 typedef int (*F_GETPHY)(F_DRIVER *driver, F_PHY *phy);
235 typedef long (*F_GETSTATUS)(F_DRIVER *driver);
236 typedef void (*F_RELEASE)(F_DRIVER *driver);
238 typedef struct F_DRIVER
243 unsigned long user_data;
247 F_WRITESECTOR writesector;
248 F_WRITEMULTIPLESECTOR writemultiplesector;
249 F_READSECTOR readsector;
250 F_READMULTIPLESECTOR readmultiplesector;
252 F_GETSTATUS getstatus;
256 typedef F_DRIVER *(*F_DRIVERINIT)(
unsigned long driver_param);
259#define F_AUTO_ASSIGN (unsigned long)(-1)
273 unsigned long secnum;
274 unsigned char system_indicator;
278#define F_SYSIND_DOSFAT12 0x01
279#define F_SYSIND_DOSFAT16UPTO32MB 0x04
280#define F_SYSIND_DOSFAT16OVER32MB 0x06
281#define F_SYSIND_DOSFAT32 0x0b
284#define F_SYSIND_EXTWIN 0x0f
285#define F_SYSIND_EXTDOS 0x05
295 unsigned long total_high;
296 unsigned long free_high;
297 unsigned long used_high;
298 unsigned long bad_high;
304 unsigned long filesize;
305 unsigned short createdate;
306 unsigned short createtime;
307 unsigned short modifieddate;
308 unsigned short modifiedtime;
309 unsigned short lastaccessdate;
322#define FN_SEEK_SET SEEK_SET
329#define FN_SEEK_CUR SEEK_CUR
336#define FN_SEEK_END SEEK_END
348#define F_FILE FN_FILE
349#define F_FIND FN_FIND
350#define F_SPACE FN_SPACE
351#define F_MAXPATH FN_MAXPATH
359#define F_SEEK_SET FN_SEEK_SET
360#define F_SEEK_END FN_SEEK_END
361#define F_SEEK_CUR FN_SEEK_CUR
372#define f_init fn_init
373#define f_getversion fm_getversion
374#define f_createdriver(driver, driver_init, driver_param) fm_createdriver(driver, driver_init, driver_param)
375#define f_releasedriver(driver) fm_releasedriver(driver)
376#define f_createpartition(driver, parnum, par) fm_createpartition(driver, parnum, par)
377#define f_getpartition(driver, parnum, par) fm_getpartition(driver, parnum, par)
378#define f_initvolume(drvnumber, driver_init, driver_param) fm_initvolume(drvnumber, driver_init, driver_param)
379#define f_initvolumepartition(drvnumber, driver, partition) fm_initvolumepartition(drvnumber, driver, partition)
380#define f_getlasterror fm_getlasterror
387#define f_delvolume(drvnumber) fm_delvolume(drvnumber)
388#define f_get_volume_count() fm_get_volume_count()
389#define f_get_volume_list(buf) fm_get_volume_list(buf)
390#define f_checkvolume(drvnumber) fm_checkvolume(drvnumber)
391#define f_format(drivenum, fattype) fm_format(drivenum, fattype)
392#define f_getcwd(buffer, maxlen) fm_getcwd(buffer, maxlen)
393#define f_getdcwd(drivenum, buffer, maxlen) fm_getdcwd(drivenum, buffer, maxlen)
394#define f_chdrive(drivenum) fm_chdrive(drivenum)
395#define f_getdrive fm_getdrive
406#define f_getfreespace(drivenum, pspace) fm_getfreespace(drivenum, pspace)
419#define f_chdir(dirname) fm_chdir(dirname)
432#define f_mkdir(dirname) fm_mkdir(dirname)
448#define f_rmdir(dirname) fm_rmdir(dirname)
464#define f_findfirst(filename, find) fm_findfirst(filename, find)
480#define f_findnext(find) fm_findnext(find)
481#define f_rename(filename, newname) fm_rename(filename, newname)
482#define f_move(filename, newname) fm_move(filename, newname)
483#define f_filelength(filename) fm_filelength(filename)
493#define f_close(filehandle) fm_close(filehandle)
494#define f_flush(filehandle) fm_flush(filehandle)
518#define f_open(filename, mode) fm_open(filename, mode)
519#define f_truncate(filename, length) fm_truncate(filename, length)
520#define f_ftruncate(filehandle, length) fm_ftruncate(filehandle, length)
532#define f_read(buf, size, size_st, filehandle) fm_read(buf, size, size_st, filehandle)
544#define f_write(buf, size, size_st, filehandle) fm_write(buf, size, size_st, filehandle)
556#define f_seek(filehandle, offset, whence) fm_seek(filehandle, offset, whence)
557#define f_seteof(filehandle) fm_seteof(filehandle)
559#define f_tell(filehandle) fm_tell(filehandle)
560#define f_getc(filehandle) fm_getc(filehandle)
561#define f_putc(ch, filehandle) fm_putc(ch, filehandle)
571#define f_rewind(filehandle) fm_rewind(filehandle)
581#define f_eof(filehandle) fm_eof(filehandle)
583#define f_stat(filename, stat) fm_stat(filename, stat)
595#define f_gettimedate(filename, pctime, pcdate) fm_gettimedate(filename, pctime, pcdate)
607#define f_settimedate(filename, ctime, cdate) fm_settimedate(filename, ctime, cdate)
619#define f_delete(filename) fm_delete(filename)
621#define f_getattr(filename, attr) fm_getattr(filename, attr)
622#define f_setattr(filename, attr) fm_setattr(filename, attr)
624#define f_getlabel(drivenum, label, len) fm_getlabel(drivenum, label, len)
625#define f_setlabel(drivenum, label) fm_setlabel(drivenum, label)
627#define f_get_oem(drivenum, str, maxlen) fm_get_oem(drivenum, str, maxlen)
632#define f_wgetcwd(buffer, maxlen) fm_wgetcwd(buffer, maxlen)
633#define f_wgetdcwd(drivenum, buffer, maxlen) fm_wgetdcwd(drivenum, buffer, maxlen)
634#define f_wchdir(dirname) fm_wchdir(dirname)
635#define f_wmkdir(dirname) fm_wmkdir(dirname)
636#define f_wrmdir(dirname) fm_wrmdir(dirname)
637#define f_wfindfirst(filename, find) fm_wfindfirst(filename, find)
638#define f_wfindnext(find) fm_wfindnext(find)
639#define f_wrename(filename, newname) fm_wrename(filename, newname)
640#define f_wmove(filename, newname) fm_wmove(filename, newname)
641#define f_wfilelength(filename) fm_wfilelength(filename)
642#define f_wopen(filename, mode) fm_wopen(filename, mode)
643#define f_wtruncate(filename, length) fm_wtruncate(filename, length)
644#define f_wstat(filename, stat) fm_wstat(filename, stat)
645#define f_wgettimedate(filename, pctime, pcdate) fm_wgettimedate(filename, pctime, pcdate)
646#define f_wsettimedate(filename, ctime, cdate) fm_wsettimedate(filename, ctime, cdate)
647#define f_wdelete(filename) fm_wdelete(filename)
648#define f_wgetattr(filename, attr) fm_wgetattr(filename, attr)
649#define f_wsetattr(filename, attr) fm_wsetattr(filename, attr)
659 extern int fn_init(
void);
660 extern char *fn_getversion(
void);
662 extern int registerFFILE(F_FILE *file);
664 extern char *fm_getversion(
void);
665 extern int fm_initvolume(
int drvnumber, F_DRIVERINIT driver_init,
unsigned long driver_param);
666 extern int fm_initvolumepartition(
int drvnumber, F_DRIVER *driver,
int partition);
667 extern int fm_createpartition(F_DRIVER *driver,
int parnum, F_PARTITION *par);
668 extern int fm_createdriver(F_DRIVER **driver, F_DRIVERINIT driver_init,
unsigned long driver_param);
669 extern int fm_releasedriver(F_DRIVER *driver);
670 extern int fm_getpartition(F_DRIVER *driver,
int parnum, F_PARTITION *par);
671 extern int fm_delvolume(
int drvnumber);
672 extern int fm_checkvolume(
int drvnumber);
673 extern int fm_get_volume_count(
void);
674 extern int fm_get_volume_list(
int *buf);
675 extern int fm_format(
int drivenum,
long fattype);
676 extern int fm_getcwd(
char *buffer,
int maxlen);
677 extern int fm_getdcwd(
int drivenum,
char *buffer,
int maxlen);
678 extern int fm_chdrive(
int drivenum);
679 extern int fm_getdrive(
void);
680 extern int fm_getfreespace(
int drivenum, FN_SPACE *pspace);
681 extern int fm_getlasterror(
void);
683 extern int fm_chdir(
const char *dirname);
684 extern int fm_mkdir(
const char *dirname);
685 extern int fm_rmdir(
const char *dirname);
687 extern int fm_findfirst(
const char *filename, FN_FIND *find);
688 extern int fm_findnext(FN_FIND *find);
689 extern int fm_rename(
const char *filename,
const char *newname);
690 extern int fm_move(
const char *filename,
const char *newname);
691 extern long fm_filelength(
const char *filename);
693 extern int fm_close(FN_FILE *filehandle);
694 extern int fm_flush(FN_FILE *filehandle);
695 extern FN_FILE *fm_open(
const char *filename,
const char *mode);
696 extern FN_FILE *fm_truncate(
const char *filename,
unsigned long length);
697 extern int fm_ftruncate(FN_FILE *filehandle,
unsigned long length);
699 extern long fm_read(
void *buf,
long size,
long size_st, FN_FILE *filehandle);
700 extern long fm_write(
const void *buf,
long size,
long size_st, FN_FILE *filehandle);
702 extern int fm_seek(FN_FILE *filehandle,
long offset,
long whence);
704 extern long fm_tell(FN_FILE *filehandle);
705 extern int fm_getc(FN_FILE *filehandle);
706 extern int fm_putc(
int ch, FN_FILE *filehandle);
707 extern int fm_rewind(FN_FILE *filehandle);
708 extern int fm_eof(FN_FILE *filehandle);
709 extern int fm_seteof(FN_FILE *filehandle);
711 extern int fm_stat(
const char *filename, F_STAT *stat);
712 extern int fm_gettimedate(
const char *filename,
unsigned short *pctime,
unsigned short *pcdate);
713 extern int fm_settimedate(
const char *filename,
unsigned short ctime,
unsigned short cdate);
714 extern int fm_delete(
const char *filename);
716 extern int fm_getattr(
const char *filename,
unsigned char *attr);
717 extern int fm_setattr(
const char *filename,
unsigned char attr);
719 extern int fm_getlabel(
int drivenum,
char *label,
long len);
720 extern int fm_setlabel(
int drivenum,
const char *label);
722 extern int fm_get_oem(
int drivenum,
char *str,
long maxlen);
758 extern int fm_wgetcwd(wchar *buffer,
int maxlen);
759 extern int fm_wgetdcwd(
int drivenum, wchar *buffer,
int maxlen);
760 extern int fm_wchdir(
const wchar *dirname);
761 extern int fm_wmkdir(
const wchar *dirname);
762 extern int fm_wrmdir(
const wchar *dirname);
763 extern int fm_wfindfirst(
const wchar *filename, FN_WFIND *find);
764 extern int fm_wfindnext(FN_WFIND *find);
765 extern int fm_wrename(
const wchar *filename,
const wchar *newname);
766 extern int fm_wmove(
const wchar *filename,
const wchar *newname);
767 extern long fm_wfilelength(
const wchar *filename);
768 extern FN_FILE *fm_wopen(
const wchar *filename,
const wchar *mode);
769 extern FN_FILE *fm_wtruncate(
const wchar *filename,
unsigned long length);
770 extern int fm_wstat(
const wchar *filename, F_STAT *stat);
771 extern int fm_wgettimedate(
const wchar *filename,
unsigned short *pctime,
unsigned short *pcdate);
772 extern int fm_wsettimedate(
const wchar *filename,
unsigned short ctime,
unsigned short cdate);
773 extern int fm_wdelete(
const wchar *filename);
774 extern int fm_wgetattr(
const wchar *filename,
unsigned char *attr);
775 extern int fm_wsetattr(
const wchar *filename,
unsigned char attr);
void f_releaseFS(void)
Removes a task priority from the task list used by the file system.
int f_enterFS(void)
Adds a new task priority to the task list used by the file system.
NetBurner Real-Time Operating System (NBRTOS) API.