Initial revision
This commit is contained in:
43
mach/sun2/libsys/lockf.c
Normal file
43
mach/sun2/libsys/lockf.c
Normal file
@@ -0,0 +1,43 @@
|
||||
#include <errno.h>
|
||||
lockf(fildes, mode, size)
|
||||
long size;
|
||||
{
|
||||
struct {
|
||||
short type, whence; long start, end; short pid;
|
||||
} x;
|
||||
int i = 8;
|
||||
extern int errno;
|
||||
|
||||
x.type = 2;
|
||||
x.whence = 1;
|
||||
x.start = 0;
|
||||
x.end = size;
|
||||
switch(mode) {
|
||||
case 0:
|
||||
x.type = 3;
|
||||
break;
|
||||
case 1:
|
||||
i = 9;
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
if (fcntl(fildes,7,&x) == -1) {
|
||||
return -1;
|
||||
}
|
||||
if (x.type == 3) {
|
||||
return 0;
|
||||
}
|
||||
errno = EACCES;
|
||||
return -1;
|
||||
default:
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (fcntl(fildes,i,&x) == -1) {
|
||||
if (errno = 79) {
|
||||
errno = 78;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user