syscall: add lots of syscalls
This commit is contained in:
30
syscall/config.c
Normal file
30
syscall/config.c
Normal file
@@ -0,0 +1,30 @@
|
||||
#include <kernel/sched.h>
|
||||
#include <kernel/syscall.h>
|
||||
#include <kernel/vm-region.h>
|
||||
|
||||
kern_status_t sys_kern_config_get(kern_config_key_t key, void *ptr, size_t len)
|
||||
{
|
||||
struct task *self = current_task();
|
||||
|
||||
switch (key) {
|
||||
case KERN_CFG_PAGE_SIZE:
|
||||
if (!validate_access_w(self, ptr, sizeof(uintptr_t))) {
|
||||
return KERN_MEMORY_FAULT;
|
||||
}
|
||||
|
||||
*(uint32_t *)ptr = VM_PAGE_SIZE;
|
||||
return KERN_OK;
|
||||
default:
|
||||
return KERN_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
return KERN_UNSUPPORTED;
|
||||
}
|
||||
|
||||
kern_status_t sys_kern_config_set(
|
||||
kern_config_key_t key,
|
||||
const void *ptr,
|
||||
size_t len)
|
||||
{
|
||||
return KERN_ACCESS_DENIED;
|
||||
}
|
||||
Reference in New Issue
Block a user