84 #define F_LONGFILENAME 1 87 #define F_LONGFILENAME 1 91 #define FN_MAXPATH 256 92 #define FN_MUTEX_TYPE OS_CRIT 95 typedef unsigned short wchar;
111 #define NULL (void *)0 121 #if (!F_LONGFILENAME) 125 char path[FN_MAXPATH];
126 char filename[F_MAXNAME];
127 char fileext[F_MAXEXT];
130 #define F_MAXLNAME 256 134 W_CHAR path[FN_MAXPATH];
135 W_CHAR lname[F_MAXLNAME];
141 unsigned long cluster;
142 unsigned long prevcluster;
143 unsigned long sectorbegin;
144 unsigned long sector;
145 unsigned long sectorend;
151 char filename[FN_MAXPATH];
152 char name[F_MAXNAME];
156 unsigned short ctime;
157 unsigned short cdate;
158 unsigned long filesize;
160 unsigned long cluster;
168 W_CHAR filename[FN_MAXPATH];
169 char name[F_MAXNAME];
173 unsigned short ctime;
174 unsigned short cdate;
175 unsigned long filesize;
177 unsigned long cluster;
184 #define F_ATTR_ARC 0x20 185 #define F_ATTR_DIR 0x10 186 #define F_ATTR_VOLUME 0x08 187 #define F_ATTR_SYSTEM 0x04 188 #define F_ATTR_HIDDEN 0x02 189 #define F_ATTR_READONLY 0x01 192 #define F_CTIME_SEC_SHIFT 0 193 #define F_CTIME_SEC_MASK 0x001f 194 #define F_CTIME_MIN_SHIFT 5 195 #define F_CTIME_MIN_MASK 0x07e0 196 #define F_CTIME_HOUR_SHIFT 11 197 #define F_CTIME_HOUR_MASK 0xf800 200 #define F_CDATE_DAY_SHIFT 0 201 #define F_CDATE_DAY_MASK 0x001f 202 #define F_CDATE_MONTH_SHIFT 5 203 #define F_CDATE_MONTH_MASK 0x01e0 204 #define F_CDATE_YEAR_SHIFT 9 205 #define F_CDATE_YEAR_MASK 0xfe00 209 unsigned short number_of_cylinders;
210 unsigned short sector_per_track;
211 unsigned short number_of_heads;
212 unsigned long number_of_sectors;
213 unsigned char media_descriptor;
217 #define F_MEDIADESC_REMOVABLE 0xf0 218 #define F_MEDIADESC_FIX 0xf8 221 #define F_ST_MISSING 0x00000001 222 #define F_ST_CHANGED 0x00000002 223 #define F_ST_WRPROTECT 0x00000004 226 typedef struct F_DRIVER F_DRIVER;
228 typedef int (*F_WRITESECTOR)(F_DRIVER *driver,
void *data,
unsigned long sector);
229 typedef int (*F_WRITEMULTIPLESECTOR)(F_DRIVER *driver,
void *data,
unsigned long sector,
int cnt);
230 typedef int (*F_READSECTOR)(F_DRIVER *driver,
void *data,
unsigned long sector);
231 typedef int (*F_READMULTIPLESECTOR)(F_DRIVER *driver,
void *data,
unsigned long sector,
int cnt);
232 typedef int (*F_GETPHY)(F_DRIVER *driver, F_PHY *phy);
233 typedef long (*F_GETSTATUS)(F_DRIVER *driver);
234 typedef void (*F_RELEASE)(F_DRIVER *driver);
236 typedef struct F_DRIVER
241 unsigned long user_data;
245 F_WRITESECTOR writesector;
246 F_WRITEMULTIPLESECTOR writemultiplesector;
247 F_READSECTOR readsector;
248 F_READMULTIPLESECTOR readmultiplesector;
250 F_GETSTATUS getstatus;
254 typedef F_DRIVER *(*F_DRIVERINIT)(
unsigned long driver_param);
257 #define F_AUTO_ASSIGN (unsigned long)(-1) 271 unsigned long secnum;
272 unsigned char system_indicator;
276 #define F_SYSIND_DOSFAT12 0x01 277 #define F_SYSIND_DOSFAT16UPTO32MB 0x04 278 #define F_SYSIND_DOSFAT16OVER32MB 0x06 279 #define F_SYSIND_DOSFAT32 0x0b 282 #define F_SYSIND_EXTWIN 0x0f 283 #define F_SYSIND_EXTDOS 0x05 293 unsigned long total_high;
294 unsigned long free_high;
295 unsigned long used_high;
296 unsigned long bad_high;
302 unsigned long filesize;
303 unsigned short createdate;
304 unsigned short createtime;
305 unsigned short modifieddate;
306 unsigned short modifiedtime;
307 unsigned short lastaccessdate;
320 #define FN_SEEK_SET SEEK_SET 322 #define FN_SEEK_SET 0 327 #define FN_SEEK_CUR SEEK_CUR 329 #define FN_SEEK_CUR 1 334 #define FN_SEEK_END SEEK_END 336 #define FN_SEEK_END 2 346 #define F_FILE FN_FILE 347 #define F_FIND FN_FIND 348 #define F_SPACE FN_SPACE 349 #define F_MAXPATH FN_MAXPATH 356 #define F_SEEK_SET FN_SEEK_SET 357 #define F_SEEK_END FN_SEEK_END 358 #define F_SEEK_CUR FN_SEEK_CUR 369 #define f_init fn_init 370 #define f_getversion fm_getversion 371 #define f_createdriver(driver, driver_init, driver_param) fm_createdriver(driver, driver_init, driver_param) 372 #define f_releasedriver(driver) fm_releasedriver(driver) 373 #define f_createpartition(driver, parnum, par) fm_createpartition(driver, parnum, par) 374 #define f_getpartition(driver, parnum, par) fm_getpartition(driver, parnum, par) 375 #define f_initvolume(drvnumber, driver_init, driver_param) fm_initvolume(drvnumber, driver_init, driver_param) 376 #define f_initvolumepartition(drvnumber, driver, partition) fm_initvolumepartition(drvnumber, driver, partition) 377 #define f_getlasterror fm_getlasterror 384 #define f_delvolume(drvnumber) fm_delvolume(drvnumber) 385 #define f_get_volume_count() fm_get_volume_count() 386 #define f_get_volume_list(buf) fm_get_volume_list(buf) 387 #define f_checkvolume(drvnumber) fm_checkvolume(drvnumber) 388 #define f_format(drivenum, fattype) fm_format(drivenum, fattype) 389 #define f_getcwd(buffer, maxlen) fm_getcwd(buffer, maxlen) 390 #define f_getdcwd(drivenum, buffer, maxlen) fm_getdcwd(drivenum, buffer, maxlen) 391 #define f_chdrive(drivenum) fm_chdrive(drivenum) 392 #define f_getdrive fm_getdrive 403 #define f_getfreespace(drivenum, pspace) fm_getfreespace(drivenum, pspace) 416 #define f_chdir(dirname) fm_chdir(dirname) 429 #define f_mkdir(dirname) fm_mkdir(dirname) 445 #define f_rmdir(dirname) fm_rmdir(dirname) 461 #define f_findfirst(filename, find) fm_findfirst(filename, find) 477 #define f_findnext(find) fm_findnext(find) 478 #define f_rename(filename, newname) fm_rename(filename, newname) 479 #define f_move(filename, newname) fm_move(filename, newname) 480 #define f_filelength(filename) fm_filelength(filename) 490 #define f_close(filehandle) fm_close(filehandle) 491 #define f_flush(filehandle) fm_flush(filehandle) 515 #define f_open(filename, mode) fm_open(filename, mode) 516 #define f_truncate(filename, length) fm_truncate(filename, length) 517 #define f_ftruncate(filehandle, length) fm_ftruncate(filehandle, length) 529 #define f_read(buf, size, size_st, filehandle) fm_read(buf, size, size_st, filehandle) 541 #define f_write(buf, size, size_st, filehandle) fm_write(buf, size, size_st, filehandle) 553 #define f_seek(filehandle, offset, whence) fm_seek(filehandle, offset, whence) 554 #define f_seteof(filehandle) fm_seteof(filehandle) 556 #define f_tell(filehandle) fm_tell(filehandle) 557 #define f_getc(filehandle) fm_getc(filehandle) 558 #define f_putc(ch, filehandle) fm_putc(ch, filehandle) 568 #define f_rewind(filehandle) fm_rewind(filehandle) 578 #define f_eof(filehandle) fm_eof(filehandle) 580 #define f_stat(filename, stat) fm_stat(filename, stat) 592 #define f_gettimedate(filename, pctime, pcdate) fm_gettimedate(filename, pctime, pcdate) 604 #define f_settimedate(filename, ctime, cdate) fm_settimedate(filename, ctime, cdate) 616 #define f_delete(filename) fm_delete(filename) 618 #define f_getattr(filename, attr) fm_getattr(filename, attr) 619 #define f_setattr(filename, attr) fm_setattr(filename, attr) 621 #define f_getlabel(drivenum, label, len) fm_getlabel(drivenum, label, len) 622 #define f_setlabel(drivenum, label) fm_setlabel(drivenum, label) 624 #define f_get_oem(drivenum, str, maxlen) fm_get_oem(drivenum, str, maxlen) 629 #define f_wgetcwd(buffer, maxlen) fm_wgetcwd(buffer, maxlen) 630 #define f_wgetdcwd(drivenum, buffer, maxlen) fm_wgetdcwd(drivenum, buffer, maxlen) 631 #define f_wchdir(dirname) fm_wchdir(dirname) 632 #define f_wmkdir(dirname) fm_wmkdir(dirname) 633 #define f_wrmdir(dirname) fm_wrmdir(dirname) 634 #define f_wfindfirst(filename, find) fm_wfindfirst(filename, find) 635 #define f_wfindnext(find) fm_wfindnext(find) 636 #define f_wrename(filename, newname) fm_wrename(filename, newname) 637 #define f_wmove(filename, newname) fm_wmove(filename, newname) 638 #define f_wfilelength(filename) fm_wfilelength(filename) 639 #define f_wopen(filename, mode) fm_wopen(filename, mode) 640 #define f_wtruncate(filename, length) fm_wtruncate(filename, length) 641 #define f_wstat(filename, stat) fm_wstat(filename, stat) 642 #define f_wgettimedate(filename, pctime, pcdate) fm_wgettimedate(filename, pctime, pcdate) 643 #define f_wsettimedate(filename, ctime, cdate) fm_wsettimedate(filename, ctime, cdate) 644 #define f_wdelete(filename) fm_wdelete(filename) 645 #define f_wgetattr(filename, attr) fm_wgetattr(filename, attr) 646 #define f_wsetattr(filename, attr) fm_wsetattr(filename, attr) 656 extern int fn_init(
void);
657 extern char *fn_getversion(
void);
659 extern int registerFFILE(F_FILE *file);
661 extern char *fm_getversion(
void);
662 extern int fm_initvolume(
int drvnumber, F_DRIVERINIT driver_init,
unsigned long driver_param);
663 extern int fm_initvolumepartition(
int drvnumber, F_DRIVER *driver,
int partition);
664 extern int fm_createpartition(F_DRIVER *driver,
int parnum, F_PARTITION *par);
665 extern int fm_createdriver(F_DRIVER **driver, F_DRIVERINIT driver_init,
unsigned long driver_param);
666 extern int fm_releasedriver(F_DRIVER *driver);
667 extern int fm_getpartition(F_DRIVER *driver,
int parnum, F_PARTITION *par);
668 extern int fm_delvolume(
int drvnumber);
669 extern int fm_checkvolume(
int drvnumber);
670 extern int fm_get_volume_count(
void);
671 extern int fm_get_volume_list(
int *buf);
672 extern int fm_format(
int drivenum,
long fattype);
673 extern int fm_getcwd(
char *buffer,
int maxlen);
674 extern int fm_getdcwd(
int drivenum,
char *buffer,
int maxlen);
675 extern int fm_chdrive(
int drivenum);
676 extern int fm_getdrive(
void);
677 extern int fm_getfreespace(
int drivenum, FN_SPACE *pspace);
678 extern int fm_getlasterror(
void);
680 extern int fm_chdir(
const char *dirname);
681 extern int fm_mkdir(
const char *dirname);
682 extern int fm_rmdir(
const char *dirname);
684 extern int fm_findfirst(
const char *filename, FN_FIND *find);
685 extern int fm_findnext(FN_FIND *find);
686 extern int fm_rename(
const char *filename,
const char *newname);
687 extern int fm_move(
const char *filename,
const char *newname);
688 extern long fm_filelength(
const char *filename);
690 extern int fm_close(FN_FILE *filehandle);
691 extern int fm_flush(FN_FILE *filehandle);
692 extern FN_FILE *fm_open(
const char *filename,
const char *mode);
693 extern FN_FILE *fm_truncate(
const char *filename,
unsigned long length);
694 extern int fm_ftruncate(FN_FILE *filehandle,
unsigned long length);
696 extern long fm_read(
void *buf,
long size,
long size_st, FN_FILE *filehandle);
697 extern long fm_write(
const void *buf,
long size,
long size_st, FN_FILE *filehandle);
699 extern int fm_seek(FN_FILE *filehandle,
long offset,
long whence);
701 extern long fm_tell(FN_FILE *filehandle);
702 extern int fm_getc(FN_FILE *filehandle);
703 extern int fm_putc(
int ch, FN_FILE *filehandle);
704 extern int fm_rewind(FN_FILE *filehandle);
705 extern int fm_eof(FN_FILE *filehandle);
706 extern int fm_seteof(FN_FILE *filehandle);
708 extern int fm_stat(
const char *filename, F_STAT *stat);
709 extern int fm_gettimedate(
const char *filename,
unsigned short *pctime,
unsigned short *pcdate);
710 extern int fm_settimedate(
const char *filename,
unsigned short ctime,
unsigned short cdate);
711 extern int fm_delete(
const char *filename);
713 extern int fm_getattr(
const char *filename,
unsigned char *attr);
714 extern int fm_setattr(
const char *filename,
unsigned char attr);
716 extern int fm_getlabel(
int drivenum,
char *label,
long len);
717 extern int fm_setlabel(
int drivenum,
const char *label);
719 extern int fm_get_oem(
int drivenum,
char *str,
long maxlen);
755 extern int fm_wgetcwd(wchar *buffer,
int maxlen);
756 extern int fm_wgetdcwd(
int drivenum, wchar *buffer,
int maxlen);
757 extern int fm_wchdir(
const wchar *dirname);
758 extern int fm_wmkdir(
const wchar *dirname);
759 extern int fm_wrmdir(
const wchar *dirname);
760 extern int fm_wfindfirst(
const wchar *filename, FN_WFIND *find);
761 extern int fm_wfindnext(FN_WFIND *find);
762 extern int fm_wrename(
const wchar *filename,
const wchar *newname);
763 extern int fm_wmove(
const wchar *filename,
const wchar *newname);
764 extern long fm_wfilelength(
const wchar *filename);
765 extern FN_FILE *fm_wopen(
const wchar *filename,
const wchar *mode);
766 extern FN_FILE *fm_wtruncate(
const wchar *filename,
unsigned long length);
767 extern int fm_wstat(
const wchar *filename, F_STAT *stat);
768 extern int fm_wgettimedate(
const wchar *filename,
unsigned short *pctime,
unsigned short *pcdate);
769 extern int fm_wsettimedate(
const wchar *filename,
unsigned short ctime,
unsigned short cdate);
770 extern int fm_wdelete(
const wchar *filename);
771 extern int fm_wgetattr(
const wchar *filename,
unsigned char *attr);
772 extern int fm_wsetattr(
const wchar *filename,
unsigned char attr);
NetBurner Real-Time Operating System API.
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.