From 3a8e788bef68346e2d92785f09f33557988d4d33 Mon Sep 17 00:00:00 2001 From: aiju Date: Sun, 7 Aug 2011 19:14:26 +0200 Subject: 5e: added semacquire/semrelease --- sys/src/cmd/5e/sys.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'sys/src/cmd/5e') diff --git a/sys/src/cmd/5e/sys.c b/sys/src/cmd/5e/sys.c index 38fd0c076..25e333a2f 100644 --- a/sys/src/cmd/5e/sys.c +++ b/sys/src/cmd/5e/sys.c @@ -614,6 +614,36 @@ sysalarm(void) P->R[0] = alarm(msec); } +static void +syssemacquire(void) +{ + u32int addr, block; + long *addrt; + + addr = arg(0); + block = arg(1); + if(systrace) + fprint(2, "semacquire(%#ux, %ud)\n", addr, block); + addrt = vaddrnol(addr, 4); + P->R[0] = noteerr(semacquire(addrt, block), 0); +} + +static void +syssemrelease(void) +{ + u32int addr, count; + long *addrt; + Segment *seg; + + addr = arg(0); + count = arg(1); + if(systrace) + fprint(2, "semrelease(%#ux, %ud)\n", addr, count); + addrt = vaddr(addr, 4, &seg); + P->R[0] = noteerr(semrelease(addrt, count), 0); + segunlock(seg); +} + void syscall(void) { @@ -648,6 +678,8 @@ syscall(void) [MOUNT] sysmount, [REMOVE] sysremove, [ALARM] sysalarm, + [SEMACQUIRE] syssemacquire, + [SEMRELEASE] syssemrelease, }; n = P->R[0]; -- cgit v1.2.3