31 lines
589 B
C
31 lines
589 B
C
|
|
#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;
|
||
|
|
}
|