|
|
1.1 root 1: /*
2: * Definitions of inlines, and macro replacements
3: * for them if UNFAST (latter only scantily tested).
4: */
5:
6: #ifndef UNFAST
7:
8: #define plock(ip) \
9: { \
10: while ((ip)->i_flag & ILOCK) { \
11: (ip)->i_flag |= IWANT; \
12: sleep((caddr_t)(ip), PINOD); \
13: } \
14: (ip)->i_flag |= ILOCK; \
15: }
16:
17: #define prele(ip) \
18: { \
19: (ip)->i_flag &= ~ILOCK; \
20: if ((ip)->i_flag&IWANT) { \
21: (ip)->i_flag &= ~IWANT; \
22: wakeup((caddr_t)(ip)); \
23: } \
24: }
25:
26: #define GETF(fp, fd) { \
27: if ((unsigned)(fd) >= NOFILE || ((fp) = u.u_ofile[fd]) == NULL) { \
28: u.u_error = EBADF; \
29: return; \
30: } \
31: }
32:
33: #define IUPDAT(ip, t1, t2, waitfor) { \
34: if (ip->i_flag&(IUPD|IACC|ICHG)) \
35: iupdat(ip, t1, t2, waitfor); \
36: }
37: #define ISSIG(p) ((p)->p_sig && \
38: ((p)->p_flag&STRC || ((p)->p_sig &~ (p)->p_ignsig)) && issig())
39: #else
40:
41: #define GETF(fp, fd) { \
42: (fp) = getf(fd); \
43: if ((fp) == NULL) \
44: return; \
45: }
46:
47: #define IUPDAT(ip, t1, t2, waitfor) iupdat(ip, t1, t2, waitfor)
48:
49: #define ISSIG(p) issig(p)
50: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.