ladybird/Libraries/LibC/serenity.cpp
Andreas Kling 610f3ad12f Kernel: Add a basic thread boosting mechanism
This patch introduces a syscall:

    int set_thread_boost(int tid, int amount)

You can use this to add a permanent boost value to the effective thread
priority of any thread with your UID (or any thread in the system if
you are the superuser.)

This is quite crude, but opens up some interesting opportunities. :^)
2019-12-30 19:23:13 +01:00

45 lines
1 KiB
C++

#include <Kernel/Syscall.h>
#include <errno.h>
#include <serenity.h>
extern "C" {
int module_load(const char* path, size_t path_length)
{
int rc = syscall(SC_module_load, path, path_length);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int module_unload(const char* name, size_t name_length)
{
int rc = syscall(SC_module_unload, name, name_length);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int profiling_enable(pid_t pid)
{
int rc = syscall(SC_profiling_enable, pid);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int profiling_disable(pid_t pid)
{
int rc = syscall(SC_profiling_disable, pid);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int set_thread_boost(int tid, int amount)
{
int rc = syscall(SC_set_thread_boost, tid, amount);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int futex(int32_t* userspace_address, int futex_op, int32_t value, const struct timespec* timeout)
{
Syscall::SC_futex_params params { userspace_address, futex_op, value, timeout };
int rc = syscall(SC_futex, &params);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
}