1 /* BEGIN INCLUDE FILE gtss_mcfc.incl.pl1 */
 2 /*
 3   Created: (Wardd Multics)  08/01/79 1454.6 mst Wed
 4 */
 5 /* Changed: Dave Ward, Mel Wilson       11/14/79 providing concurrency lock for names area
 6 */
 7 
 8 /** Data structures used to regulate gcos
 9    simulator "callers" of files (multiple caller file control - mcfc).
10 
11    Given: gcos file (D => Multics directory, E => entry,
12    U => Multics unique file id)
13    h=mod(U,size(start_list))
14    start_list(h) => start of chain for list of files
15                     (file_entry's) and a lock word to
16                     regulate use of the chain, corresponding
17                     values for list of available entries.
18 */
19 
20 dcl 1 mcfc                    aligned based(gtss_ext_$mcfc.files_ptr)
21 ,     2 version               fixed bin
22 
23 ,     2 start_list            (0:1020)
24 ,       3 files
25 ,         4 lock              bit(36)
26 ,         4 first             fixed bin(24)
27 ,       3 avail               like mcfc.start_list.files
28 
29 ,     2 file_entry            (8000)
30 ,       3 link                fixed bin(24)
31 ,       3 nameo               offset(names)
32 ,       3 namel               fixed bin
33 ,       3 unique_id           bit(36)
34 ,       3 file_lock           bit(36)
35 ,       3 number_callers      fixed bin(24)
36 ,       3 delete bit unal
37 ,       3 fill bit (17) unal
38 ,       3 number_who_could_not_call fixed bin (18) unsigned unal
39 ;
40 
41 dcl caller_ptr                ptr;
42 dcl 1 caller                  (0:1999)aligned based(caller_ptr)
43 ,     2 lock_id               (0:99)bit(36)
44 ,     2 gcos_access           (0:99)bit(6)unal
45 ;
46 
47 dcl 1 mcfc_names aligned based (gtss_ext_$mcfc.names_ptr),
48     2 names_lock bit (36),
49     2 pad bit (36),
50     2 names area (261118);
51 
52 /*   END INCLUDE FILE gtss_mcfc.incl.pl1 */