mgba/src/util/vfs.h

35 lines
926 B
C
Raw Normal View History

2014-07-17 06:55:09 +00:00
#ifndef VFS_H
#define VFS_H
#include "common.h"
2014-07-16 09:08:54 +00:00
#include "memory.h"
struct VFile {
bool (*close)(struct VFile* vf);
2014-07-16 10:02:16 +00:00
off_t (*seek)(struct VFile* vf, off_t offset, int whence);
ssize_t (*read)(struct VFile* vf, void* buffer, size_t size);
ssize_t (*readline)(struct VFile* vf, char* buffer, size_t size);
ssize_t (*write)(struct VFile* vf, void* buffer, size_t size);
2014-07-16 09:08:54 +00:00
void* (*map)(struct VFile* vf, size_t size, int flags);
void (*unmap)(struct VFile* vf, void* memory, size_t size);
void (*truncate)(struct VFile* vf, size_t size);
};
2014-07-17 06:55:09 +00:00
struct VDirEntry {
const char* (*name)(struct VDirEntry* vde);
};
struct VDir {
bool (*close)(struct VDir* vd);
struct VDirEntry* (*listNext)(struct VDir* vd);
struct VFile* (*openFile)(struct VDir* vd, const char* name, int mode);
};
struct VFile* VFileOpen(const char* path, int flags);
struct VFile* VFileFromFD(int fd);
2014-07-17 06:55:09 +00:00
struct VDir* VDirOpen(const char* path);
#endif