forked from Bananymous/banan-os
Kernel: Add SYS_GET_{,E}{UID,GID}
This commit is contained in:
@@ -32,6 +32,10 @@ __BEGIN_DECLS
|
||||
#define SYS_SET_EGID 25
|
||||
#define SYS_SET_REUID 26
|
||||
#define SYS_SET_REGID 27
|
||||
#define SYS_GET_UID 28
|
||||
#define SYS_GET_GID 29
|
||||
#define SYS_GET_EUID 30
|
||||
#define SYS_GET_EGID 31
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
||||
@@ -213,6 +213,26 @@ long syscall(long syscall, ...)
|
||||
ret = Kernel::syscall(SYS_SET_REGID, rgid, egid);
|
||||
break;
|
||||
}
|
||||
case SYS_GET_UID:
|
||||
{
|
||||
ret = Kernel::syscall(SYS_GET_UID);
|
||||
break;
|
||||
}
|
||||
case SYS_GET_GID:
|
||||
{
|
||||
ret = Kernel::syscall(SYS_GET_GID);
|
||||
break;
|
||||
}
|
||||
case SYS_GET_EUID:
|
||||
{
|
||||
ret = Kernel::syscall(SYS_GET_EUID);
|
||||
break;
|
||||
}
|
||||
case SYS_GET_EGID:
|
||||
{
|
||||
ret = Kernel::syscall(SYS_GET_EGID);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
puts("LibC: Unhandeled syscall");
|
||||
ret = -ENOSYS;
|
||||
@@ -322,6 +342,26 @@ unsigned int sleep(unsigned int seconds)
|
||||
return syscall(SYS_SLEEP, seconds);
|
||||
}
|
||||
|
||||
uid_t getuid(void)
|
||||
{
|
||||
return syscall(SYS_GET_UID);
|
||||
}
|
||||
|
||||
gid_t getgid(void)
|
||||
{
|
||||
return syscall(SYS_GET_GID);
|
||||
}
|
||||
|
||||
uid_t geteuid(void)
|
||||
{
|
||||
return syscall(SYS_GET_EUID);
|
||||
}
|
||||
|
||||
gid_t getegid(void)
|
||||
{
|
||||
return syscall(SYS_GET_EGID);
|
||||
}
|
||||
|
||||
int seteuid(uid_t uid)
|
||||
{
|
||||
return syscall(SYS_SET_EUID, uid);
|
||||
|
||||
Reference in New Issue
Block a user