[orbis-kernel] stub kern.rng_pseudo

This commit is contained in:
DH 2023-10-18 01:11:23 +03:00
parent 4f3495117c
commit 8d9869eb7d

View file

@ -20,6 +20,7 @@ orbis::SysResult orbis::sys___sysctl(Thread *thread, ptr<sint> name,
sched_cpusetsize,
proc_ptc,
cpu_mode,
rng_pseudo,
};
enum sysctl_hw {
@ -100,6 +101,14 @@ orbis::SysResult orbis::sys___sysctl(Thread *thread, ptr<sint> name,
dest[count++] = kern;
dest[count++] = sdk_version;
} else if (searchName == "kern.rng_pseudo") {
if (*oldlenp < 2 * sizeof(uint32_t)) {
std::fprintf(stderr, " %s error\n", searchName.data());
return ErrorCode::INVAL;
}
dest[count++] = kern;
dest[count++] = rng_pseudo;
} else if (searchName == "kern.sched.cpusetsize") {
if (*oldlenp < 2 * sizeof(uint32_t)) {
std::fprintf(stderr, " %s error\n", searchName.data());
@ -189,6 +198,15 @@ orbis::SysResult orbis::sys___sysctl(Thread *thread, ptr<sint> name,
*(std::uint32_t *)old = 4;
break;
case sysctl_kern::rng_pseudo:
if (*oldlenp != 0x40 || new_ != nullptr || newlen != 0) {
return ErrorCode::INVAL;
}
std::memset(old, 0, 0x40);
break;
case sysctl_kern::kern_37: {
struct kern37_value {
std::uint64_t size;