Nice wrappers around ioctl() syscall

This commit is contained in:
2025-09-05 23:00:57 +02:00
parent d399922de6
commit c31c00e8cd
3 changed files with 44 additions and 9 deletions

24
ulib/system/ioctl.c Normal file
View File

@ -0,0 +1,24 @@
#include <stdint.h>
#include <stddef.h>
#include <system/ioctl.h>
#include <sysdefs/ioctl.h>
#include <system/system.h>
int32_t ioctl_openfile(const char *path, uint64_t flags) {
IOCtlOF cfg = { .path = path, .flags = flags };
return ioctl(IOCTL_NOHANDLE, IOCTL_OPENF, &cfg);
}
int32_t ioctl_writefile(int32_t ioh, const uint8_t *const buffer, size_t len, size_t off) {
IOCtlWF cfg = { .buffer = buffer, .len = len, .off = off };
return ioctl(ioh, IOCTL_WRITE, &cfg);
}
int32_t ioctl_readfile(int32_t ioh, uint8_t *const buffer, size_t len, size_t off) {
IOCtlRF cfg = { .buffer = buffer, .len = len, off = off };
return ioctl(ioh, IOCTL_READ, &cfg);
}
int32_t ioctl_closefile(int32_t ioh) {
return ioctl(ioh, IOCTL_CLOSEF, NULL);
}

12
ulib/system/ioctl.h Normal file
View File

@ -0,0 +1,12 @@
#ifndef ULIB_SYSTEM_IOCTL_H_
#define ULIB_SYSTEM_IOCTL_H_
#include <stdint.h>
#include <stddef.h>
int32_t ioctl_openfile(const char *path, uint64_t flags);
int32_t ioctl_writefile(int32_t ioh, const uint8_t *const buffer, size_t len, size_t off);
int32_t ioctl_readfile(int32_t ioh, uint8_t *const buffer, size_t len, size_t off);
int32_t ioctl_closefile(int32_t ioh);
#endif // ULIB_SYSTEM_IOCTL_H_