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