ish/kernel/misc.c
2019-05-01 09:45:10 -07:00

49 lines
1.2 KiB
C

#include "kernel/calls.h"
#define PRCTL_SET_KEEPCAPS_ 8
int_t sys_prctl(dword_t option, uint_t UNUSED(arg2), uint_t UNUSED(arg3), uint_t UNUSED(arg4), uint_t UNUSED(arg5)) {
switch (option) {
case PRCTL_SET_KEEPCAPS_:
// stub
return 0;
default:
STRACE("prctl(%#x)", option);
return _EINVAL;
}
}
int_t sys_arch_prctl(int_t code, addr_t addr) {
STRACE("arch_prctl(%#x, %#x)", code, addr);
return _EINVAL;
}
#define REBOOT_MAGIC1 0xfee1dead
#define REBOOT_MAGIC2 672274793
#define REBOOT_MAGIC2A 85072278
#define REBOOT_MAGIC2B 369367448
#define REBOOT_MAGIC2C 537993216
#define REBOOT_CMD_CAD_OFF 0
#define REBOOT_CMD_CAD_ON 0x89abcdef
int_t sys_reboot(int_t magic, int_t magic2, int_t cmd) {
STRACE("reboot(%#x, %d, %d)", magic, magic2, cmd);
if (!superuser())
return _EPERM;
if (magic != (int) REBOOT_MAGIC1 ||
(magic2 != REBOOT_MAGIC2 &&
magic2 != REBOOT_MAGIC2A &&
magic2 != REBOOT_MAGIC2B &&
magic2 != REBOOT_MAGIC2C))
return _EINVAL;
switch (cmd) {
case REBOOT_CMD_CAD_ON:
case REBOOT_CMD_CAD_OFF:
return 0;
default:
return _EPERM;
}
}