1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 10:37:45 +00:00

Kernel: More PID/TID typing

This commit is contained in:
Ben Wiederhake 2020-08-09 01:08:24 +02:00 committed by Andreas Kling
parent 7bdf54c837
commit bee08a4b9f
21 changed files with 67 additions and 60 deletions

View file

@ -60,13 +60,13 @@ int profiling_disable(pid_t pid)
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int set_thread_boost(int tid, int amount)
int set_thread_boost(pid_t tid, int amount)
{
int rc = syscall(SC_set_thread_boost, tid, amount);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
int set_process_boost(int tid, int amount)
int set_process_boost(pid_t tid, int amount)
{
int rc = syscall(SC_set_process_boost, tid, amount);
__RETURN_WITH_ERRNO(rc, rc, -1);
@ -136,5 +136,4 @@ int get_stack_bounds(uintptr_t* user_stack_base, size_t* user_stack_size)
int rc = syscall(SC_get_stack_bounds, user_stack_base, user_stack_size);
__RETURN_WITH_ERRNO(rc, rc, -1);
}
}

View file

@ -52,7 +52,7 @@ int profiling_disable(pid_t);
#define THREAD_PRIORITY_HIGH 50
#define THREAD_PRIORITY_MAX 99
int set_thread_boost(int tid, int amount);
int set_thread_boost(pid_t tid, int amount);
int set_process_boost(pid_t, int amount);
#define FUTEX_WAIT 1

View file

@ -31,7 +31,7 @@
extern "C" {
int ptrace(int request, pid_t pid, void* addr, int data)
int ptrace(int request, pid_t tid, void* addr, int data)
{
// PT_PEEK needs special handling since the syscall wrapper
@ -49,7 +49,7 @@ int ptrace(int request, pid_t pid, void* addr, int data)
Syscall::SC_ptrace_params params {
request,
pid,
tid,
reinterpret_cast<u8*>(addr),
data
};

View file

@ -40,6 +40,9 @@ __BEGIN_DECLS
#define PT_POKE 8
#define PT_SETREGS 9
int ptrace(int request, pid_t pid, void* addr, int data);
// FIXME: PID/TID ISSUE
// Affects the entirety of LibDebug and Userland/strace.cpp.
// See also Kernel/Ptrace.cpp
int ptrace(int request, pid_t tid, void* addr, int data);
__END_DECLS

View file

@ -33,7 +33,7 @@
namespace Core {
struct ThreadStatistics {
int tid;
pid_t tid;
unsigned times_scheduled;
unsigned ticks;
unsigned syscall_count;

View file

@ -44,7 +44,7 @@ public:
void unlock();
private:
Atomic<int> m_holder { 0 };
Atomic<pid_t> m_holder { 0 };
u32 m_level { 0 };
};
@ -65,14 +65,14 @@ private:
ALWAYS_INLINE void Lock::lock()
{
int tid = gettid();
pid_t tid = gettid();
if (m_holder == tid) {
++m_level;
return;
}
for (;;) {
int expected = 0;
if (m_holder.compare_exchange_strong(expected, tid, AK::memory_order_acq_rel)) {
if (m_holder.compare_exchange_strong(expected, tid, AK::memory_order_acq_rel)) {
m_level = 1;
return;
}