mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 13:47:35 +00:00
LibGUI+Kernel: Add a GLock class (userspace mutex.)
It's basically a userspace port of the kernel's Lock class. Added gettid() and donate() syscalls to support the timeslice donation feature we already enjoyed in the kernel.
This commit is contained in:
parent
108b663618
commit
500df578fe
10 changed files with 176 additions and 12 deletions
|
@ -70,4 +70,5 @@
|
|||
#define ETIMEDOUT 67
|
||||
#define EPROTOTYPE 68
|
||||
#define EINPROGRESS 69
|
||||
#define EMAXERRNO 70
|
||||
#define ENOTHREAD 70
|
||||
#define EMAXERRNO 71
|
||||
|
|
|
@ -312,6 +312,7 @@ const char* sys_errlist[] = {
|
|||
"Timed out",
|
||||
"Wrong protocol type",
|
||||
"Operation in progress",
|
||||
"No such thread",
|
||||
"The highest errno +1 :^)",
|
||||
};
|
||||
|
||||
|
|
|
@ -421,4 +421,16 @@ int ftruncate(int fd, off_t length)
|
|||
ASSERT_NOT_REACHED();
|
||||
}
|
||||
|
||||
int gettid()
|
||||
{
|
||||
int rc = syscall(SC_gettid);
|
||||
__RETURN_WITH_ERRNO(rc, rc, -1);
|
||||
}
|
||||
|
||||
int donate(int tid)
|
||||
{
|
||||
int rc = syscall(SC_donate, tid);
|
||||
__RETURN_WITH_ERRNO(rc, rc, -1);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -14,6 +14,8 @@ __BEGIN_DECLS
|
|||
|
||||
extern char** environ;
|
||||
|
||||
int gettid();
|
||||
int donate(int tid);
|
||||
int create_thread(int(*)(void*), void*);
|
||||
int create_shared_buffer(pid_t peer_pid, int, void** buffer);
|
||||
void* get_shared_buffer(int shared_buffer_id);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue