|
|
1.1 root 1: /* (-lgl
2: * COHERENT Version 3.2.2
3: * Copyright (c) 1982, 1992 by Mark Williams Company.
4: * All rights reserved. May not be copied without permission.
5: -lgl) */
6: /*
7: * /usr/include/sys/rlock.h
8: * Record locking.
9: */
10:
11: #ifndef __SYS_RLOCK_H__
12: #define __SYS_RLOCK_H__
13:
14: #include <sys/ksynch.h>
15:
16: /*
17: * Internal record lock.
18: * Active locks are attached to inode.
19: */
20: typedef struct rlock {
21: struct rlock *rl_next; /* link, must be first */
22: int rl_type; /* 0==read, 1==write */
23: long rl_start;
24: long rl_end; /* -1 is EOF */
25: PROC *rl_proc; /* owner's process */
26: } RLOCK;
27:
28: /* Pending record lock. */
29: typedef struct prlock {
30: struct prlock *prl_next; /* link, must be first */
31: RLOCK *prl_rls; /* active locks on desired inode */
32: RLOCK *prl_rl; /* desired lock */
33: } PRLOCK;
34:
35: extern RLOCK *freerl; /* list of free record locks */
36: extern PRLOCK *pendrl; /* list of all pending locks */
37: extern GATE rlgate; /* only one proc changes locks at a time */
38:
39: #endif
40:
41: /* end of sys/rlock.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.