22 #include "../../gfx.h"
24 #if GFX_USE_GFILE || defined(__DOXYGEN__)
35 typedef struct gfileList gfileList;
37 extern GFILE *gfileStdIn;
38 extern GFILE *gfileStdErr;
39 extern GFILE *gfileStdOut;
254 #if GFILE_NEED_FILELISTS || defined(__DOXYGEN__)
304 #if (GFILE_NEED_CHIBIOSFS && GFX_USE_OS_CHIBIOS) || defined(__DOXYGEN__)
320 #define gfileOpenBaseFileStream(f,m) gfileOpenChibiOSFileStream(f,m)
323 #if GFILE_NEED_MEMFS || defined(__DOXYGEN__)
342 #if GFILE_NEED_STRINGS || defined(__DOXYGEN__)
366 #if GFILE_NEED_PRINTG || defined(__DOXYGEN__)
369 int vfnprintg(
GFILE *f,
int maxlen,
const char *fmt, va_list arg);
370 int fnprintg(
GFILE *f,
int maxlen,
const char *fmt, ...);
371 #define vfprintg(f,m,a) vfnprintg(f,0,m,a)
372 #define fprintg(f,m,...) fnprintg(f,0,m,__VA_ARGS__)
373 #define vprintg(m,a) vfnprintg(gfileStdOut,0,m,a)
374 #define printg(m,...) fnprintg(gfileStdOut,0,m,__VA_ARGS__)
376 #if GFILE_NEED_STRINGS
377 int vsnprintg(
char *buf,
int maxlen,
const char *fmt, va_list arg);
378 int snprintg(
char *buf,
int maxlen,
const char *fmt, ...);
379 #define vsprintg(s,m,a) vsnprintg(s,0,m,a)
380 #define sprintg(s,m,...) snprintg(s,0,m,__VA_ARGS__)
384 #if GFILE_NEED_SCANG || defined(__DOXYGEN__)
387 int vfscang(
GFILE *f,
const char *fmt, va_list arg);
388 int fscang(
GFILE *f,
const char *fmt, ...);
389 #define vscang(f,a) vfscang(gfileStdIn,f,a)
390 #define scang(f,...) fscang(gfileStdIn,f,__VA_ARGS__)
392 #if GFILE_NEED_STRINGS
393 int vsscang(
const char *buf,
const char *fmt, va_list arg);
394 int sscang(
const char *buf,
const char *fmt, ...);
398 #if GFILE_NEED_STDIO && !defined(GFILE_NEED_STDIO_MUST_BE_OFF)
400 size_t gstdioRead(
void * ptr,
size_t size,
size_t count,
GFILE *f);
401 size_t gstdioWrite(
const void * ptr,
size_t size,
size_t count,
GFILE *f);
402 int gstdioGetpos(
GFILE *f,
long *pos);
403 int gstdioSeek(
GFILE *f,
size_t offset,
int origin);
409 #define stdin gfileStdIn
410 #define stdout gfileStdOut
411 #define stderr gfileStdErr
412 #define FOPEN_MAX GFILE_MAX_GFILES
413 #define TMP_MAX GFILE_MAX_GFILES
414 #define FILENAME_MAX 256
415 #define L_tmpnam FILENAME_MAX
416 #define P_tmpdir "/tmp/"
418 #define fopen(n,m) gfileOpen(n,m)
419 #define fclose(f) gfileClose(f)
420 #define fread(p,sz,cnt,f) gstdioRead(p,sz,cnt,f)
421 #define fwrite(p,sz,cnt,f) gstdioWrite(p,sz,cnt,f)
422 #define fseek(f,ofs,org) gstdioSeek(f,ofs,org)
423 #define remove(n) (!gfileDelete(n))
424 #define rename(o,n) (!gfileRename(o,n))
425 #define fflush(f) (0)
426 #define ftell(f) gfileGetPos(f)
427 #define fpos_t gFileSize
428 #define fgetpos(f,pos) gstdioGetpos(f,pos)
429 #define fsetpos(f, pos) (!gfileSetPos(f, *pos))
430 #define rewind(f) gfileSetPos(f, 0);
431 #define feof(f) gfileEOF(f)
432 #define vfprintf(f,m,a) vfnprintg(f,0,m,a)
433 #define fprintf(f,m,...) fnprintg(f,0,m,__VA_ARGS__)
434 #define vprintf(m,a) vfnprintg(gfileStdOut,0,m,a)
435 #define printf(m,...) fnprintg(gfileStdOut,0,m,__VA_ARGS__)
436 #define vsnprintf(s,n,m,a) vsnprintg(s,n,m,a)
437 #define snprintf(s,n,m,...) snprintg(s,n,m,__VA_ARGS__)
438 #define vsprintf(s,m,a) vsnprintg(s,0,m,a)
439 #define sprintf(s,m,...) snprintg(s,0,m,__VA_ARGS__)
GFILE * gfileOpenString(char *str, const char *mode)
Open file from a null terminated C string.
gBool gfileUnmount(char fs, const char *drive)
Unmount a logical drive (aka partition)
GFILE * gfileOpen(const char *fname, const char *mode)
Open file.
gBool gfileSetPos(GFILE *f, gFileSize pos)
Set the position of the read/write cursor.
gBool gfileMount(char fs, const char *drive)
Mount a logical drive (aka partition)
gBool gfileDelete(const char *fname)
Delete file.
gMemSize gfileRead(GFILE *f, void *buf, gMemSize len)
Read from file.
GFILE * gfileOpenChibiOSFileStream(void *FileStreamPtr, const char *mode)
Open file from a ChibiOS FileStream.
gBool gfileSync(GFILE *f)
Syncs the file object (flushes the buffer)
gBool gfileExists(const char *fname)
Check if file exists.
gfileList * gfileOpenFileList(char fs, const char *path, gBool dirs)
Open a file list.
void gfileClose(GFILE *f)
Close file.
const char * gfileReadFileList(gfileList *pfl)
Get the next file in a file list.
struct GFILE GFILE
A file pointer.
gFileSize gfileGetPos(GFILE *f)
Get the current position of the read/write cursor.
gMemSize gfileWrite(GFILE *f, const void *buf, gMemSize len)
Write to file.
void gfileCloseFileList(gfileList *pfl)
Close a file list.
gBool gfileRename(const char *oldname, const char *newname)
Rename file.
gFileSize gfileGetFilesize(const char *fname)
Get the size of a file.
gFileSize gfileGetSize(GFILE *f)
Get the size of file.
GFILE * gfileOpenMemory(void *memptr, const char *mode)
Open file from a memory pointer.
gBool gfileEOF(GFILE *f)
Check for EOF.