Break devctl() up into smaller syscalls

This commit is contained in:
2025-10-14 21:35:10 +02:00
parent 0c3250e8d6
commit fa6c194163
20 changed files with 199 additions and 164 deletions

View File

@ -4,7 +4,7 @@
#include <sysdefs/syscall.h>
#include <sysdefs/fs.h>
#include <sysdefs/proc.h>
#include <sysdefs/devctl.h>
#include <sysdefs/dev.h>
#include <uprintf.h>
void debugprint(const char *string) {
@ -23,10 +23,6 @@ int32_t schedrelease(void) {
return syscall(SYS_SCHEDRELEASE, 0, 0, 0, 0, 0, 0);
}
int32_t devctl(Dev_t *devh, uint64_t cmd, uint8_t *buffer, size_t len, uint64_t extra) {
return syscall(SYS_DEVCTL, (uint64_t)devh, cmd, (uint64_t)buffer, (uint64_t)len, (uint64_t)extra, 0);
}
int32_t rand(void) {
return syscall(SYS_RAND, 0, 0, 0, 0, 0, 0);
}
@ -122,3 +118,19 @@ int32_t fs_fetchdirent(char *path, FsDirent *direntbuf, size_t idx) {
int32_t fs_mkdir(char *path) {
return syscall(SYS_FS_MKDIR, (uint64_t)path, 0, 0, 0, 0, 0);
}
int32_t dev_gethandle(Dev_t *dev, char *name) {
return syscall(SYS_DEV_GETHANDLE, (uint64_t)dev, (uint64_t)name, 0, 0, 0, 0);
}
int32_t dev_listsize(void) {
return syscall(SYS_DEV_LISTSIZE, 0, 0, 0, 0, 0, 0);
}
int32_t dev_stat(DevStat *devstatbuf, size_t idx) {
return syscall(SYS_DEV_STAT, (uint64_t)devstatbuf, (uint64_t)idx, 0, 0, 0, 0);
}
int32_t dev_cmd(Dev_t *dev, uint64_t cmd, void *buf, size_t len, void *extra) {
return syscall(SYS_DEV_CMD, (uint64_t)dev, (uint64_t)cmd, (uint64_t)buf, (uint64_t)len, (uint64_t)extra, 0);
}

View File

@ -4,7 +4,7 @@
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#include <sysdefs/devctl.h>
#include <sysdefs/dev.h>
#include <sysdefs/proc.h>
#include <sysdefs/fs.h>
@ -12,7 +12,6 @@ void debugprint(const char *string);
int32_t mman_map(uint8_t *addr, size_t size, uint64_t prot, uint64_t flags, uint8_t **out);
int32_t mman_unmap(uint8_t *addr);
int32_t schedrelease(void);
int32_t devctl(Dev_t *devh, uint64_t cmd, uint8_t *buffer, size_t len, uint64_t extra);
int32_t rand(void);
int32_t vfsmount(char *mountpoint, char *fstype, Dev_t *dev, bool format);
int32_t vfsunmount(char *mountpoint);
@ -37,5 +36,9 @@ int32_t fs_read(int32_t fsh, uint8_t *const buffer, size_t len, size_t off);
int32_t fs_stat(char *path, FsStat *statbuf);
int32_t fs_fetchdirent(char *path, FsDirent *direntbuf, size_t idx);
int32_t fs_mkdir(char *path);
int32_t dev_gethandle(Dev_t *dev, char *name);
int32_t dev_listsize(void);
int32_t dev_stat(DevStat *devstatbuf, size_t idx);
int32_t dev_cmd(Dev_t *dev, uint64_t cmd, void *buf, size_t len, void *extra);
#endif // ULIB_SYSTEM_SYSTEM_H_