Bare API
ramfs/ramfs.h
Functions
-
ramfs_fs_t *ramfs_init(void)
Initialize filesystem and return pointer.
- Returns:
ramfs_fs_t pointer or NULL on error
-
void ramfs_deinit(ramfs_fs_t *fs)
Tear down a filesystem.
- Parameters:
fs – [in] ramfs_fs_t pointer
-
ramfs_entry_t *ramfs_get_parent(ramfs_fs_t *fs, const char *path)
Get parent entry of path.
- Parameters:
fs – [in] ramfs_fs_t pointer
path – [in] path string
- Returns:
ramfs_entry_t or NULL if parent not found; note that the full path does not have to exist
-
ramfs_entry_t *ramfs_get_entry(ramfs_fs_t *fs, const char *path)
Get ramfs entry for path.
- Parameters:
fs – [in] ramfs_fs_t pointer
path – [in] path string
- Returns:
ramfs_entry_t or NULL if path was not found
-
char *ramfs_get_name(const ramfs_entry_t *entry)
Return entry name component.
- Parameters:
entry – [in] ramfs_entry_t pointer
- Returns:
name string, caller is expected to free
-
char *ramfs_get_path(const ramfs_entry_t *entry)
Get path for ramfs entry.
- Parameters:
entry – [in] ramfs_entry_t pointer
- Returns:
full path string or NULL if entry is NULL, caller is expected to free
-
int ramfs_is_dir(const ramfs_entry_t *entry)
Return if entry is a directory.
- Parameters:
entry – [in] ramfs_entry_t pointer
- Returns:
1 if directory, 0 otherwise
-
int ramfs_is_file(const ramfs_entry_t *entry)
Return if entry is a file.
- Parameters:
entry – [in] ramfs_entry_t pointer
- Returns:
1 if file, 0 otherwise
-
void ramfs_stat(ramfs_fs_t *fs, const ramfs_entry_t *entry, ramfs_stat_t *st)
Get information about a ramfs entry.
- Parameters:
fs – [in] ramfs_fs_t pointer
entry – [in] ramfs_entry_t pointer
st – [out] ramfs_stat_t structure
-
ramfs_entry_t *ramfs_create(ramfs_fs_t *fs, const char *path, int flags)
Create an empty file and return a file handle.
- Parameters:
fs – [in] ramfs_fs_t pointer
path – [in] full path to file
flags – [in] flags to pass to ramfs_open()
- Returns:
created entry or NULL on error
-
int ramfs_truncate(ramfs_fs_t *fs, ramfs_entry_t *entry, size_t size)
Truncate an existing file.
- Parameters:
fs – [in] ramfs_fs_t pointer
entry – [in] ramfs_entry_t pointer
length – [in] length to truncate (or grow) to
- Returns:
1 on success, 0 on failure
-
ramfs_fh_t *ramfs_open(ramfs_fs_t *fs, const ramfs_entry_t *entry, unsigned int flags)
Open a ramfs file object and return a file handle.
- Parameters:
fs – [in] ramfs_fs_t pointer
entry – [in] ramfs_entry_t pointer
flags – [in] open flags
- Returns:
opened file handle or NULL if entry is NULL
-
void ramfs_close(ramfs_fh_t *fh)
Close an open file entry.
- Parameters:
fh – [in] ramfs_fh_t pointer
-
ssize_t ramfs_read(ramfs_fh_t *fh, char *buf, size_t len)
Read data from an open file.
- Parameters:
fh – [in] ramfs_fh_t handle
buf – [out] buffer to read into
len – [in] maximum number of bytes to read
- Returns:
actual number of bytes read, zero if the end of file reached, or < 0 on error
-
ssize_t ramfs_write(ramfs_fh_t *fh, const char *buf, size_t len)
Write data to an open file.
- Parameters:
fh – [in] ramfs_fh_t handle
buf – [in] buffer to write from
len – [in] number of bytes to write
- Returns:
number of bytes written, or < 0 on error
-
ssize_t ramfs_seek(ramfs_fh_t *fh, off_t offset, int mode)
Seek to a position within a file.
- Parameters:
fh – [in] ramfs_fh_t handle
offset – [in] file position (relative or absolute)
mode – [in] SEEK_SET, SEEK_CUR, or SEEK_END
- Returns:
position in file, or -1 on error
-
size_t ramfs_tell(const ramfs_fh_t *fh)
Get the current file position in a file.
- Parameters:
fh – [in] ramfs_fh_t handle
- Returns:
current position in file
-
size_t ramfs_access(const ramfs_fh_t *fh, const void **buf)
Get raw memory for file.
- Parameters:
fh – [in] ramfs_fh_t handle
buf – [out] pointer pointer to buf
- Returns:
length of raw data
-
int ramfs_unlink(ramfs_entry_t *entry)
Free and delete a file on the filesystem.
- Parameters:
entry – [in] ramfs_entry_t pointer
- Returns:
0 on success, -1 on error
-
int ramfs_rename(ramfs_fs_t *fs, const char *src, const char *dst)
Rename a file.
- Parameters:
fs – [in] ramfs_fs_t pointer
src – [in] source file path
dst – [in] destination file path
- Returns:
0 on success, -1 on error
-
ramfs_dh_t *ramfs_opendir(ramfs_fs_t *fs, const ramfs_entry_t *entry)
Open a directory.
- Parameters:
fs – [in] ramfs_fs_t pointer
entry – [in] ramfs_entry_t pointer
- Returns:
directory handle or NULL on error
-
void ramfs_closedir(ramfs_dh_t *dh)
Close a directory.
- Parameters:
dh – [in] ramfs_dh_t directory handle
-
const ramfs_entry_t *ramfs_readdir(ramfs_dh_t *dh)
Read the next entry from an open directory handle.
- Parameters:
dh – [in] ramfs_dh_t directory handle
- Returns:
ramfs_entry_t pointer or NULL on end
-
void ramfs_seekdir(ramfs_dh_t *dh, long loc)
Seek to a given directory location.
- Parameters:
dh – [in] ramfs_dh_t directory handle
loc – [in] entry index to seek to
-
long ramfs_telldir(ramfs_dh_t *dh)
Return the current entry index.
- Parameters:
dh – [in] ramfs_dh_t directory handle
- Returns:
current directory index
-
ramfs_entry_t *ramfs_mkdir(ramfs_fs_t *fs, const char *name)
Make a directory.
- Parameters:
fs – [in] ramfs_fs_t pointer
path – [in] directory path
- Returns:
newly created entry handle
-
int ramfs_rmdir(ramfs_entry_t *entry)
Remove a directory. Directory must be empty.
- Parameters:
entry – directory entry handle
- Returns:
0 on success, -1 on failure
-
void ramfs_rmtree(ramfs_entry_t *entry)
Delete and free a directory tree.
- Parameters:
entry – root entry to remove
Enums
Typedefs
-
typedef struct ramfs_fs_t ramfs_fs_t
A ramfs filesystem handle.
-
typedef struct ramfs_entry_t ramfs_entry_t
A ramfs filesystem entry.
Structs
-
struct ramfs_stat_t
Structure filled by the ramfs_stat function.
-
struct ramfs_dh_t
A ramfs directory handle.
-
struct ramfs_fh_t
A ramfs file handle.