Files
ToastyFS/inc/ToastyFS.h
T
2025-11-16 02:10:59 +01:00

57 lines
1.7 KiB
C

#ifndef TOASTYFS_INCLUDED
#define TOASTYFS_INCLUDED
#include <stdint.h>
#include <stdbool.h>
#ifdef _WIN32
#include <winsock2.h>
#else
#include <poll.h>
#endif
typedef struct ToastyFS ToastyFS;
typedef struct {
char name[128]; // TODO: Implement a proper name length
bool is_dir;
} ToastyFS_Entity;
typedef enum {
TOASTYFS_RESULT_EMPTY,
TOASTYFS_RESULT_CREATE_ERROR,
TOASTYFS_RESULT_CREATE_SUCCESS,
TOASTYFS_RESULT_DELETE_ERROR,
TOASTYFS_RESULT_DELETE_SUCCESS,
TOASTYFS_RESULT_LIST_ERROR,
TOASTYFS_RESULT_LIST_SUCCESS,
TOASTYFS_RESULT_READ_ERROR,
TOASTYFS_RESULT_READ_SUCCESS,
TOASTYFS_RESULT_WRITE_ERROR,
TOASTYFS_RESULT_WRITE_SUCCESS,
} ToastyFS_ResultType;
typedef struct {
ToastyFS_ResultType type;
int num_entities;
ToastyFS_Entity *entities;
} ToastyFS_Result;
ToastyFS *toastyfs_init(char *addr, uint16_t port);
void toastyfs_free(ToastyFS *tfs);
void toastyfs_wait(ToastyFS *tfs, int opidx, ToastyFS_Result *result, int timeout);
bool toastyfs_isdone(ToastyFS *tfs, int opidx, ToastyFS_Result *result);
int toastyfs_process_events(ToastyFS *tfs, void **contexts, struct pollfd *polled, int num_polled);
int toastyfs_submit_create (ToastyFS *tfs, char *path, int path_len, bool is_dir, unsigned int chunk_size);
int toastyfs_submit_delete (ToastyFS *tfs, char *path, int path_len);
int toastyfs_submit_list (ToastyFS *tfs, char *path, int path_len);
int toastyfs_submit_read (ToastyFS *tfs, char *path, int path_len, int off, void *dst, int len);
int toastyfs_submit_write (ToastyFS *tfs, char *path, int path_len, int off, void *src, int len);
void toastyfs_result_free(ToastyFS_Result *result);
#endif // TOASTYFS_INCLUDED