mirror of
https://github.com/ish-app/ish.git
synced 2026-01-25 14:06:40 +00:00
91 lines
1.8 KiB
C
91 lines
1.8 KiB
C
#include "kernel/calls.h"
|
|
|
|
dword_t sys_getpid() {
|
|
STRACE("getpid()");
|
|
return current->tgid;
|
|
}
|
|
dword_t sys_gettid() {
|
|
STRACE("gettid()");
|
|
return current->pid;
|
|
}
|
|
dword_t sys_getppid() {
|
|
STRACE("getppid()");
|
|
pid_t_ ppid;
|
|
lock(&pids_lock);
|
|
if (current->parent != NULL)
|
|
ppid = current->parent->pid;
|
|
else
|
|
ppid = 0;
|
|
unlock(&pids_lock);
|
|
return ppid;
|
|
}
|
|
dword_t sys_getpgid(dword_t pid) {
|
|
STRACE("getpgid(%d)", pid);
|
|
if (pid != 0)
|
|
return _EPERM;
|
|
return current->pgid;
|
|
}
|
|
dword_t sys_getpgrp() {
|
|
STRACE("getpgrp()");
|
|
return current->pgid;
|
|
}
|
|
|
|
dword_t sys_getuid32() {
|
|
STRACE("getuid32()");
|
|
return current->uid;
|
|
}
|
|
dword_t sys_getuid() {
|
|
STRACE("getuid()");
|
|
return current->uid & 0xffff;
|
|
}
|
|
|
|
dword_t sys_geteuid32() {
|
|
STRACE("geteuid32()");
|
|
return current->euid;
|
|
}
|
|
dword_t sys_geteuid() {
|
|
STRACE("geteuid()");
|
|
return current->euid & 0xffff;
|
|
}
|
|
|
|
dword_t sys_setresuid(uid_t_ ruid, uid_t_ euid, uid_t_ suid) {
|
|
STRACE("setresuid(%d, %d, %d)", ruid, euid, suid);
|
|
if (ruid != -1)
|
|
current->uid = ruid;
|
|
if (euid != -1)
|
|
current->euid = euid;
|
|
if (suid != -1)
|
|
current->suid = suid;
|
|
return 0;
|
|
}
|
|
|
|
dword_t sys_getgid32() {
|
|
STRACE("getgid32()");
|
|
return current->gid;
|
|
}
|
|
dword_t sys_getgid() {
|
|
STRACE("getgid()");
|
|
return current->gid & 0xffff;
|
|
}
|
|
|
|
dword_t sys_getegid32() {
|
|
STRACE("getegid32()");
|
|
return current->egid;
|
|
}
|
|
dword_t sys_getegid() {
|
|
STRACE("getegid()");
|
|
return current->egid & 0xffff;
|
|
}
|
|
|
|
dword_t sys_setresgid(uid_t_ rgid, uid_t_ egid, uid_t_ sgid) {
|
|
STRACE("setresgid(%d, %d, %d)", rgid, egid, sgid);
|
|
if (rgid != -1)
|
|
current->gid = rgid;
|
|
if (egid != -1)
|
|
current->egid = egid;
|
|
if (sgid != -1)
|
|
current->sgid = sgid;
|
|
return 0;
|
|
}
|
|
|