1
2
3
4
5
6
7
8
9
10
11
12 dcl dir_lock_seg$ external static;
13
14 dcl dir_lock_segp pointer;
15
16 dcl 1 dir_lock_seg based (dir_lock_segp) aligned,
17 2 header aligned like dir_lock_seg_header,
18 2 dir_locks (0:dir_lock_seg.header.n_dir_locks) aligned like dir_lock,
19 2 readers (0:dir_lock_seg.header.n_dir_locks, dir_lock_seg.header.max_readers) bit (36) aligned;
20
21 declare (dir_lock_all_locksp, dir_lock_all_readersp)
22 pointer;
23
24 declare 1 dir_lock_all_dir_locks (0:dir_lock_seg.header.n_dir_locks) aligned like dir_lock based (dir_lock_all_locksp);
25 declare dir_lock_all_readers (0:dir_lock_seg.header.n_dir_locks, dir_lock_seg.header.max_readers) bit (36)
26 aligned based (dir_lock_all_readersp);
27
28 declare DIR_LOCK_SEG_EVENT char (4) aligned init ("drls") int static options (constant);
29
30 declare 1 dir_lock_seg_header aligned based,
31 2 seg_lock aligned like lock,
32 2 n_dir_locks fixed bin,
33 2 highest_in_use fixed bin,
34 2 max_readers fixed bin,
35 2 pad_even bit (36) aligned,
36 2 readers_ptr pointer,
37 2 locks_ptr pointer,
38 2 meters aligned,
39 3 find_calls fixed bin (35),
40 3 find_failures fixed bin (35),
41 3 max_in_use fixed bin (35),
42 3 pad_meters fixed bin (35),
43 2 pad (16) bit (36) aligned;
44
45 declare dir_lockp pointer;
46 declare 1 dir_lock aligned based (dir_lockp),
47 2 uid bit (36) aligned,
48 2 flags aligned,
49 3 notify_sw bit (1) unaligned,
50 3 salvage_sw bit (1) unaligned,
51 3 pad bit (34) unaligned,
52 2 lock_count fixed bin (17),
53
54
55 2 write_locker bit (36) aligned;
56
57 declare dir_read_lockers_ptr pointer;
58 declare dir_read_lockers (dir_lock_seg.header.max_readers) bit (36) aligned based (dir_read_lockers_ptr);
59
60