Add getnucred system call. Contributed by Thomas Cort
This commit is contained in:
parent
17a0731f28
commit
ecc8a52f82
@ -876,6 +876,9 @@
|
|||||||
#define PM_ENDPT m1_i1
|
#define PM_ENDPT m1_i1
|
||||||
#define PM_PENDPT m1_i2
|
#define PM_PENDPT m1_i2
|
||||||
|
|
||||||
|
#define PM_NUID m2_i1
|
||||||
|
#define PM_NGID m2_i2
|
||||||
|
|
||||||
/* Field names for GETSYSINFO_UP (PM). */
|
/* Field names for GETSYSINFO_UP (PM). */
|
||||||
#define SIU_WHAT m2_i1
|
#define SIU_WHAT m2_i1
|
||||||
#define SIU_LEN m2_i2
|
#define SIU_LEN m2_i2
|
||||||
|
@ -13,6 +13,7 @@ SRCS+= \
|
|||||||
_getdents.c \
|
_getdents.c \
|
||||||
_getdma.c \
|
_getdma.c \
|
||||||
_getnpid.c \
|
_getnpid.c \
|
||||||
|
_getnucred.c \
|
||||||
_getnuid.c \
|
_getnuid.c \
|
||||||
_getngid.c \
|
_getngid.c \
|
||||||
_getnprocnr.c \
|
_getnprocnr.c \
|
||||||
|
29
lib/libc/other/_getnucred.c
Normal file
29
lib/libc/other/_getnucred.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#include <lib.h>
|
||||||
|
#define getnucred _getnucred
|
||||||
|
#include <errno.h>
|
||||||
|
#include <sys/ucred.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
PUBLIC int getnucred(endpoint_t proc_ep, struct ucred *ucred)
|
||||||
|
{
|
||||||
|
message m;
|
||||||
|
pid_t pid;
|
||||||
|
|
||||||
|
if (ucred == NULL) {
|
||||||
|
errno = EFAULT;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
m.m1_i1 = proc_ep; /* search for this process */
|
||||||
|
|
||||||
|
pid = _syscall(PM_PROC_NR, GETEPINFO, &m);
|
||||||
|
if (pid < 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
ucred->pid = pid;
|
||||||
|
ucred->uid = m.PM_NUID;
|
||||||
|
ucred->gid = m.PM_NGID;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -46,6 +46,7 @@ SRCS+= \
|
|||||||
getgroups.S \
|
getgroups.S \
|
||||||
getitimer.S \
|
getitimer.S \
|
||||||
getnpid.S \
|
getnpid.S \
|
||||||
|
getnucred.S \
|
||||||
getnuid.S \
|
getnuid.S \
|
||||||
getngid.S \
|
getngid.S \
|
||||||
getnprocnr.S \
|
getnprocnr.S \
|
||||||
|
7
lib/libc/syscall/getnucred.S
Normal file
7
lib/libc/syscall/getnucred.S
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
.text
|
||||||
|
.extern __getnucred
|
||||||
|
.globl _getnucred
|
||||||
|
.balign 2
|
||||||
|
|
||||||
|
_getnucred:
|
||||||
|
jmp __getnucred
|
Loading…
x
Reference in New Issue
Block a user