mongoose/src/fs.h

28 lines
1013 B
C
Raw Normal View History

2021-07-24 03:44:00 +01:00
#pragma once
#include "arch.h"
2021-07-28 21:11:07 +01:00
enum { MG_FS_READ = 1, MG_FS_WRITE = 2, MG_FS_DIR = 4 };
// Filesystem API functions
2021-09-15 07:43:48 +01:00
// stat() returns MG_FS_* flags and populates file size and modification time
// list() calls fn() for every directory entry, allowing to list a directory
2021-07-28 21:11:07 +01:00
struct mg_fs {
2021-07-29 14:21:20 +01:00
int (*stat)(const char *path, size_t *size, time_t *mtime);
2021-07-28 21:11:07 +01:00
void (*list)(const char *path, void (*fn)(const char *, void *), void *);
2021-09-15 07:43:48 +01:00
struct mg_fd *(*open)(const char *path, int flags); // Open file
void (*close)(struct mg_fd *fd); // Close file
size_t (*read)(void *fd, void *buf, size_t len); // Read file
size_t (*write)(void *fd, const void *buf, size_t len); // Write file
size_t (*seek)(void *fd, size_t offset); // Set file position
2021-07-28 21:11:07 +01:00
};
// File descriptor
struct mg_fd {
void *fd;
struct mg_fs *fs;
};
extern struct mg_fs mg_fs_posix; // POSIX open/close/read/write/seek
extern struct mg_fs mg_fs_packed; // Packed FS, see examples/complete