diff options
Diffstat (limited to 'src/libc/compat.c')
-rw-r--r-- | src/libc/compat.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libc/compat.c b/src/libc/compat.c new file mode 100644 index 0000000..3ec47f9 --- /dev/null +++ b/src/libc/compat.c @@ -0,0 +1,20 @@ +#include <camellia/syscalls.h> +#include <stdio.h> +#include <camellia/compat.h> + +#define eprintf(fmt, ...) fprintf(stderr, "user/lib/compat: "fmt"\n" __VA_OPT__(,) __VA_ARGS__) + +static hid_t h = -1; +long c0_fs_wait(char *buf, long len, struct ufs_request *res) { + if (h != -1) { + eprintf("didn't respond to request!"); + c0_fs_respond(NULL, -1, 0); + } + h = _sys_fs_wait(buf, len, res); + return h >= 0 ? 0 : -1; +} +long c0_fs_respond(void *buf, long ret, int flags) { + ret = _sys_fs_respond(h, buf, ret, flags); + h = -1; + return ret; +} |