diff options
author | Ian Moffett <ian@osmora.org> | 2024-03-07 17:28:52 -0500 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2024-03-07 18:24:51 -0500 |
commit | f5e48e94a2f4d4bbd6e5628c7f2afafc6dbcc459 (patch) | |
tree | 93b156621dc0303816b37f60ba88051b702d92f6 /lib/mlibc/sysdeps/managarm/generic/sched.cpp | |
parent | bd5969fc876a10b18613302db7087ef3c40f18e1 (diff) |
build: Build mlibc + add distclean target
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'lib/mlibc/sysdeps/managarm/generic/sched.cpp')
-rw-r--r-- | lib/mlibc/sysdeps/managarm/generic/sched.cpp | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/lib/mlibc/sysdeps/managarm/generic/sched.cpp b/lib/mlibc/sysdeps/managarm/generic/sched.cpp deleted file mode 100644 index bce8db8..0000000 --- a/lib/mlibc/sysdeps/managarm/generic/sched.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include <bits/ensure.h> -#include <unistd.h> - -#include <hel.h> -#include <hel-syscalls.h> -#include <mlibc/debug.hpp> -#include <mlibc/allocator.hpp> -#include <mlibc/posix-pipe.hpp> -#include <mlibc/posix-sysdeps.hpp> - -#include <posix.frigg_bragi.hpp> - -namespace mlibc { - -int sys_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask) { - return sys_getthreadaffinity(pid, cpusetsize, mask); -} - -int sys_getthreadaffinity(pid_t tid, size_t cpusetsize, cpu_set_t *mask) { - SignalGuard sguard; - - managarm::posix::GetAffinityRequest<MemoryAllocator> req(getSysdepsAllocator()); - - req.set_pid(tid); - req.set_size(cpusetsize); - - auto [offer, send_head, recv_resp, recv_data] = - exchangeMsgsSync( - getPosixLane(), - helix_ng::offer( - helix_ng::sendBragiHeadOnly(req, getSysdepsAllocator()), - helix_ng::recvInline(), - helix_ng::recvBuffer(mask, cpusetsize) - ) - ); - - HEL_CHECK(offer.error()); - HEL_CHECK(send_head.error()); - HEL_CHECK(recv_resp.error()); - - managarm::posix::SvrResponse<MemoryAllocator> resp(getSysdepsAllocator()); - resp.ParseFromArray(recv_resp.data(), recv_resp.length()); - - if(resp.error() == managarm::posix::Errors::ILLEGAL_ARGUMENTS) { - return EINVAL; - } else if(resp.error() != managarm::posix::Errors::SUCCESS) { - mlibc::infoLogger() << "mlibc: got unexpected error from posix in sys_getaffinity!" << frg::endlog; - return EIEIO; - } - HEL_CHECK(recv_data.error()); - - return 0; -} - -int sys_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *mask) { - return sys_setthreadaffinity(pid, cpusetsize, mask); -} - -int sys_setthreadaffinity(pid_t tid, size_t cpusetsize, const cpu_set_t *mask) { - SignalGuard sguard; - - frg::vector<uint8_t, MemoryAllocator> affinity_mask(getSysdepsAllocator()); - affinity_mask.resize(cpusetsize); - memcpy(affinity_mask.data(), mask, cpusetsize); - managarm::posix::SetAffinityRequest<MemoryAllocator> req(getSysdepsAllocator()); - - req.set_pid(tid); - req.set_mask(affinity_mask); - - auto [offer, send_head, send_tail, recv_resp] = - exchangeMsgsSync( - getPosixLane(), - helix_ng::offer( - helix_ng::sendBragiHeadTail(req, getSysdepsAllocator()), - helix_ng::recvInline() - ) - ); - - HEL_CHECK(offer.error()); - HEL_CHECK(send_head.error()); - HEL_CHECK(send_tail.error()); - HEL_CHECK(recv_resp.error()); - - managarm::posix::SvrResponse<MemoryAllocator> resp(getSysdepsAllocator()); - resp.ParseFromArray(recv_resp.data(), recv_resp.length()); - - if(resp.error() == managarm::posix::Errors::ILLEGAL_ARGUMENTS) { - return EINVAL; - } else if(resp.error() != managarm::posix::Errors::SUCCESS) { - mlibc::infoLogger() << "mlibc: got unexpected error from posix in sys_getaffinity!" << frg::endlog; - return EIEIO; - } - - return 0; -} - -int sys_getcpu(int *cpu) { - HEL_CHECK(helGetCurrentCpu(cpu)); - return 0; -} - -} |