NetBurner 3.1
fsf.h
Go to the documentation of this file.
1 /*NB_REVISION*/
2 
20 #ifndef _FSF_H_
21 #define _FSF_H_
22 
23 /****************************************************************************
24  *
25  * Copyright (c) 2003 by HCC Embedded
26  *
27  * This software is copyrighted by and is the sole property of
28  * HCC. All rights, title, ownership, or other interests
29  * in the software remain the property of HCC. This
30  * software may only be used in accordance with the corresponding
31  * license agreement. Any unauthorized use, duplication, transmission,
32  * distribution, or disclosure of this software is expressly forbidden.
33  *
34  * This Copyright notice may not be removed or modified without prior
35  * written consent of HCC.
36  *
37  * HCC reserves the right to modify this software without notice.
38  *
39  * HCC Embedded
40  * Budapest 1132
41  * Victor Hugo Utca 11-15
42  * Hungary
43  *
44  * Tel: +36 (1) 450 1302
45  * Fax: +36 (1) 450 1303
46  * http: www.hcc-embedded.com
47  * email: info@hcc-embedded.com
48  *
49  ***************************************************************************/
50 
51 #ifdef __cplusplus
52 extern "C"
53 {
54 #endif
55 
56 #include <file/fsm.h>
57 #include <file/fwerr.h>
58 #include <file/port_s.h>
59 #include <file/udefs.h>
60 
61  /* //////////////////////////////////////////////////////////////////////////////////// */
62  /* */
63  /* Init Functions */
64  /* */
65  /* //////////////////////////////////////////////////////////////////////////////////// */
66 
67  extern char *fg_getversion(void);
68  extern void fg_init(void);
69  extern int fg_mountdrive(int drivenum, void *buffer, long buffsize, FS_DRVMOUNT mountfunc, FS_PHYGETID phyfunc);
70  extern int fg_unmountdrive(int drvnum);
71  extern int fg_format(FS_MULTI *fm, int drivenum);
72  extern int fg_getfreespace(FS_MULTI *fm, int drivenum, FS_SPACE *space);
73  extern int fg_get_drive_list(int *buf);
74  extern int fg_get_drive_count(void);
75 
76  /* //////////////////////////////////////////////////////////////////////////////////// */
77  /* */
78  /* Directory handler functions */
79  /* */
80  /* //////////////////////////////////////////////////////////////////////////////////// */
81 
82  extern int fg_getdrive(FS_MULTI *fm);
83  extern int fg_chdrive(FS_MULTI *fm, int drivenum);
84 
85  extern int fg_getcwd(FS_MULTI *fm, char *buffer, int maxlen);
86  extern int fg_getdcwd(FS_MULTI *fm, int drivenum, char *buffer, int maxlen);
87 
88  extern int fg_mkdir(FS_MULTI *fm, const char *dirname);
89  extern int fg_chdir(FS_MULTI *fm, const char *dirname);
90  extern int fg_rmdir(FS_MULTI *fm, const char *dirname);
91 
92  extern int fg_setlabel(FS_MULTI *fm, int drivenum, const char *label);
93  extern int fg_getlabel(FS_MULTI *fm, int drivenum, char *label, long len);
94 
95  /* //////////////////////////////////////////////////////////////////////////////////// */
96  /* */
97  /* files functions */
98  /* */
99  /* //////////////////////////////////////////////////////////////////////////////////// */
100 
101  extern int fg_rename(FS_MULTI *fm, const char *filename, const char *newname);
102  extern int fg_move(FS_MULTI *fm, const char *filename, const char *newname);
103  extern int fg_delete(FS_MULTI *fm, const char *filename);
104 
105  extern long fg_filelength(FS_MULTI *fm, const char *filename);
106 
107  extern int fg_findfirst(FS_MULTI *fm, const char *filename, FS_FIND *find);
108  extern int fg_findnext(FS_MULTI *fm, FS_FIND *find);
109 
110  /* //////////////////////////////////////////////////////////////////////////////////// */
111  /* */
112  /* file read/write functions */
113  /* */
114  /* //////////////////////////////////////////////////////////////////////////////////// */
115 
116  extern int registerFSFILE(FS_FILE *file);
117 
118  extern FS_FILE *fg_open(FS_MULTI *fm, const char *filename, const char *mode);
119  extern int fg_close(FS_MULTI *fm, FS_FILE *filehandle);
120  extern long fg_write(FS_MULTI *fm, const void *buf, long size, long size_st, FS_FILE *filehandle);
121  extern long fg_read(FS_MULTI *fm, void *buf, long size, long size_st, FS_FILE *filehandle);
122  extern int fg_seek(FS_MULTI *fm, FS_FILE *filehandle, long offset, long whence);
123  extern long fg_tell(FS_MULTI *fm, FS_FILE *filehandle);
124  extern int fg_eof(FS_MULTI *fm, FS_FILE *filehandle);
125  extern int fg_rewind(FS_MULTI *fm, FS_FILE *filehandle);
126  extern int fg_putc(FS_MULTI *fm, int ch, FS_FILE *filehandle);
127  extern int fg_getc(FS_MULTI *fm, FS_FILE *filehandle);
128  extern int fg_flush(FS_MULTI *fm, FS_FILE *filehandle);
129  extern int fg_seteof(FS_MULTI *fm, FS_FILE *filehandle);
130 
131  extern int fg_settimedate(FS_MULTI *fm, const char *filename, unsigned short ctime, unsigned short cdate);
132  extern int fg_gettimedate(FS_MULTI *fm, const char *filename, unsigned short *ctime, unsigned short *cdate);
133  extern int fg_getpermission(FS_MULTI *fm, const char *filename, unsigned long *psecure);
134  extern int fg_setpermission(FS_MULTI *fm, const char *filename, unsigned long secure);
135 
136  extern FS_FILE *fg_truncate(FS_MULTI *fm, const char *filename, unsigned long length);
137 
144 /* Beginning of file */
145 #ifdef SEEK_SET
146 #define FS_SEEK_SET SEEK_SET
147 #else
148 #define FS_SEEK_SET 0
149 #endif
150 
151 /* Current position of file pointer */
152 #ifdef SEEK_CUR
153 #define FS_SEEK_CUR SEEK_CUR
154 #else
155 #define FS_SEEK_CUR 1
156 #endif
157 
158 /* End of file */
159 #ifdef SEEK_END
160 #define FS_SEEK_END SEEK_END
161 #else
162 #define FS_SEEK_END 2
163 #endif
164 
166 #ifdef HCC_UNICODE
167  extern int fg_wgetcwd(FS_MULTI *fm, W_CHAR *buffer, int maxlen);
168  extern int fg_wgetdcwd(FS_MULTI *fm, int drivenum, W_CHAR *buffer, int maxlen);
169  extern int fg_wmkdir(FS_MULTI *fm, const W_CHAR *dirname);
170  extern int fg_wchdir(FS_MULTI *fm, const W_CHAR *dirname);
171  extern int fg_wrmdir(FS_MULTI *fm, const W_CHAR *dirname);
172  extern int fg_wrename(FS_MULTI *fm, const W_CHAR *filename, const W_CHAR *newname);
173  extern int fg_wmove(FS_MULTI *fm, const W_CHAR *filename, const W_CHAR *newname);
174  extern int fg_wdelete(FS_MULTI *fm, const W_CHAR *filename);
175  extern long fg_wfilelength(FS_MULTI *fm, const W_CHAR *filename);
176  extern int fg_wfindfirst(FS_MULTI *fm, const W_CHAR *filename, FS_WFIND *find);
177  extern int fg_wfindnext(FS_MULTI *fm, FS_WFIND *find);
178  extern FS_FILE *fg_wopen(FS_MULTI *fm, const W_CHAR *filename, const W_CHAR *mode);
179  extern int fg_wsettimedate(FS_MULTI *fm, const W_CHAR *filename, unsigned short ctime, unsigned short cdate);
180  extern int fg_wgettimedate(FS_MULTI *fm, const W_CHAR *filename, unsigned short *ctime, unsigned short *cdate);
181  extern int fg_wgetpermission(FS_MULTI *fm, const W_CHAR *filename, unsigned long *psecure);
182  extern int fg_wsetpermission(FS_MULTI *fm, const W_CHAR *filename, unsigned long secure);
183  extern FS_FILE *fg_wtruncate(FS_MULTI *fm, const W_CHAR *filename, unsigned long length);
184 #endif
185 
186  /* //////////////////////////////////////////////////////////////////////////////////// */
187  /* */
188  /* internal common functions for secure parts */
189  /* */
190  /* //////////////////////////////////////////////////////////////////////////////////// */
191 
192  extern int _fg_flush(FS_VOLUMEINFO *vi);
193  extern int _fg_getvolumeinfo(FS_MULTI *fm, int drivenum, FS_VOLUMEINFO **pvi);
194  extern int _fg_findpath(FS_VOLUMEINFO *vi, FS_NAME *fsname);
195  extern int _fg_findfile(FS_VOLUMEINFO *vi, W_CHAR *name, unsigned short dirnum, unsigned short *pdirnum);
196  extern int _fg_addentry(FS_VOLUMEINFO *vi, FS_NAME *fsname, FS_DIRENTRY **pde);
197  extern int _fg_find(FS_VOLUMEINFO *vi, FS_NAME *fsname, FS_DIRENTRY **pde, unsigned short *pdirnum);
198  extern int _fg_findfilewc(FS_VOLUMEINFO *vi, W_CHAR *name, unsigned short dirnum, unsigned short *pdirnum, unsigned short startpos);
199  extern void _fg_setdiscsectors(FS_VOLUMEINFO *vi, unsigned short sector);
200  extern int _fg_getsector(FS_VOLUMEINFO *vi, long secnum, void *data, long offset, long datalen);
201  extern void _fg_removedename(FS_VOLUMEINFO *vi, FS_DIRENTRY *de);
202  extern int _fg_setdename(W_CHAR *s, FS_VOLUMEINFO *vi, FS_DIRENTRY *de);
203  extern void _fg_getdename(W_CHAR *s, FS_VOLUMEINFO *vi, FS_DIRENTRY *de);
204  extern int _fg_namecheckwc(const W_CHAR *name, const W_CHAR *s);
205  extern int _fg_copychainintomirror(FS_VOLUMEINFO *vi, FS_FILEINT *f, FS_DIRENTRY *de);
206  extern void _fg_cleanupfile(FS_VOLUMEINFO *vi, FS_FILEINT *f);
207  extern int _fg_fseek(FS_VOLUMEINFO *vi, FS_MULTI *fm, FS_FILEINT *f, long offset);
208  extern int _fg_checkfilelock(FS_VOLUMEINFO *vi, FS_DIRENTRY *de, long m_mode);
209 
210  extern FS_FILESYSTEM fg_filesystem;
211 
212 #include "fsmf.h"
213 
214 #define fs_getversion fsm_getversion
215 #define fs_init fsm_init
216 #define fs_mountdrive(drivenum, buffer, buffsize, mountfunc, phyfunc) fsm_mountdrive(drivenum, buffer, buffsize, mountfunc, phyfunc)
217 #define fs_unmountdrive(drvnum) fsm_unmountdrive(drvnum)
218 #define fs_format(drivenum) fsm_format(drivenum)
219 
229 #define fs_getfreespace(drivenum, space) fsm_getfreespace(drivenum, space)
230 #define fs_releaseFS(ID) fsm_releaseFS(ID)
231 #define fs_get_drive_list(buf) fsm_get_drive_list(buf)
232 #define fs_get_drive_count fsm_get_drive_count
233 #define fs_getdrive fsm_getdrive
234 #define fs_chdrive(drivenum) fsm_chdrive(drivenum)
235 #define fs_getcwd(buffer, maxlen) fsm_getcwd(buffer, maxlen)
236 #define fs_getdcwd(drivenum, buffer, maxlen) fsm_getdcwd(drivenum, buffer, maxlen)
237 
249 #define fs_mkdir(dirname) fsm_mkdir(dirname)
250 
262 #define fs_chdir(dirname) fsm_chdir(dirname)
263 
278 #define fs_rmdir(dirname) fsm_rmdir(dirname)
279 #define fs_setlabel(drivenum, label) fsm_setlabel(drivenum, label)
280 #define fs_getlabel(drivenum, label, len) fsm_getlabel(drivenum, label, len)
281 #define fs_rename(filename, newname) fsm_rename(filename, newname)
282 #define fs_move(filename, newname) fsm_move(filename, newname)
283 
294 #define fs_delete(filename) fsm_delete(filename)
295 #define fs_filelength(filename) fsm_filelength(filename)
296 
311 #define fs_findfirst(filename, find) fsm_findfirst(filename, find)
312 
327 #define fs_findnext(find) fsm_findnext(find)
328 
351 #define fs_open(filename, mode) fsm_open(filename, mode)
352 
361 #define fs_close(filehandle) fsm_close(filehandle)
362 
373 #define fs_write(buf, size, size_st, filehandle) fsm_write(buf, size, size_st, filehandle)
374 
385 #define fs_read(buf, size, size_st, filehandle) fsm_read(buf, size, size_st, filehandle)
386 
397 #define fs_seek(filehandle, offset, whence) fsm_seek(filehandle, offset, whence)
398 #define fs_tell(filehandle) fsm_tell(filehandle)
399 
408 #define fs_eof(filehandle) fsm_eof(filehandle)
409 #define fs_seteof(filehandle) fsm_seteof(filehandle)
410 
419 #define fs_rewind(filehandle) fsm_rewind(filehandle)
420 #define fs_putc(ch, filehandle) fsm_putc(ch, filehandle)
421 #define fs_getc(filehandle) fsm_getc(filehandle)
422 #define fs_flush(filehandle) fsm_flush(filehandle)
423 
434 #define fs_settimedate(filename, ctime, cdate) fsm_settimedate(filename, ctime, cdate)
435 
446 #define fs_gettimedate(filename, pctime, pcdate) fsm_gettimedate(filename, pctime, pcdate)
447 
448 #define fs_getpermission(filename, psecure) fsm_getpermission(filename, psecure)
449 #define fs_setpermission(filename, secure) fsm_setpermission(filename, secure)
450 #define fs_truncate(filename, length) fsm_truncate(filename, length)
451 
452 #ifdef HCC_UNICODE
453 #define fs_wgetcwd(buffer, maxlen) fsm_wgetcwd(buffer, maxlen)
454 #define fs_wgetdcwd(drivenum, buffer, maxlen) fsm_wgetdcwd(drivenum, buffer, maxlen)
455 #define fs_wmkdir(dirname) fsm_wmkdir(dirname)
456 #define fs_wchdir(dirname) fsm_wchdir(dirname)
457 #define fs_wrmdir(dirname) fsm_wrmdir(dirname)
458 #define fs_wrename(filename, newname) fsm_wrename(filename, newname)
459 #define fs_wmove(filename, newname) fsm_wmove(filename, newname)
460 #define fs_wdelete(filename) fsm_wdelete(filename)
461 #define fs_wfilelength(filename) fsm_wfilelength(filename)
462 #define fs_wfindfirst(filename, find) fsm_wfindfirst(filename, find)
463 #define fs_wfindnext(find) fsm_wfindnext(find)
464 #define fs_wopen(filename, mode) fsm_wopen(filename, mode)
465 #define fs_wsettimedate(filename, ctime, cdate) fsm_wsettimedate(filename, ctime, cdate)
466 #define fs_wgettimedate(filename, ctime, cdate) fsm_wgettimedate(filename, ctime, cdate)
467 #define fs_wgetpermission(filename, psecure) fsm_wgetpermission(filename, psecure)
468 #define fs_wsetpermission(filename, secure) fsm_wsetpermission(filename, secure)
469 #define fs_wtruncate(filename, length) fsm_wtruncate(filename, length)
470 #endif
471 
472 #ifdef __cplusplus
473 }
474 #endif
475 
476 /****************************************************************************
477  *
478  * End of fsf.h
479  *
480  ***************************************************************************/
481 
482 #endif /* _FSF_H_ */
483