1 /* BEGIN INCLUDE FILE ... mseg_operation.incl.pl1 */
 2 
 3 /* format: style3,idind30,linecom */
 4 
 5 /**** Created 1985-04-16, BIM: from Pandolf's  mseg_access_operation */
 6 
 7 /**** NOTES:
 8       The caller of mseg_ must set mseg_operation.access_operation to record
 9       the type of access checking it has performed and which mseg_ should
10       perform when needed (i.e., for those entrypoints which operate on
11       messages like mseg_$read_message).
12 
13       mseg_operation.operation is reserved explicitly for use by mseg_ and
14       its underlying modules.
15 
16       You must also include entry_access_info, mseg_message_info, and
17       mbx_wakeup_state along with this include file. */
18 
19 dcl       mseg_operation_ptr            pointer;
20 dcl       MSEG_OPERATION_VERSION_1      fixed bin internal static options (constant) init (1);
21 dcl       MSEG_TYPE_MBX                 fixed bin init (1) internal static options (constant);
22 dcl       MSEG_TYPE_MS                  fixed bin init (2) internal static options (constant);
23 
24 dcl       1 mseg_operation              based (mseg_operation_ptr) aligned,
25             2 version                   fixed binary,       /* current version is MSEG_OPERATION_VERSION_1 */
26             2 type                      fixed binary,       /* MBX or MS */
27             2 access_operation          fixed binary,       /* type of access checks required for the operation */
28             2 operation                 bit (36) aligned,   /* for use by mseg_ and underlying modules */
29             2 caller                    aligned,            /* always collected in gate target */
30               3 validation_level        fixed bin (3),
31               3 privileges              bit (18) aligned,   /* factored for speed */
32               3 pad_align_double        fixed bin (71),     /* just to force alignment */
33               3 authorization           bit (72) aligned,   /* must be 2word aligned */
34               3 max_authorization       bit (72) aligned,
35               3 group_id                char (32) unaligned,
36             2 flags                     aligned,
37               3 mseg_pathname_valid     bit (1) unaligned,
38               3 mseg_ptr_valid          bit (1) unaligned,
39               3 mseg_index_valid        bit (1) unaligned,
40               3 access_info_valid       bit (1) unaligned,
41               3 md_ptr_valid            bit (1) unaligned,
42               3 message_info_valid      bit (1) unaligned,  /* note -- for some operations not all fields are used */
43               3 wakeup_state_valid      bit (1) unaligned,
44               3 suppress_access_checks  bit (1) unaligned,  /* set by privileged interfaces, suppresses ALL access checking */
45               3 call_admin_gate         bit (1) unaligned,  /* we is in ring 1, boss */
46               3 only_own_access         bit (1) unaligned,  /* the user had o rather than r/d */
47               3 add_message_info_all_valid
48                                         bit (1) unaligned,  /* Believe ALL the fields in message info on an add */
49               3 pad                     bit (24) unaligned,
50             2 dir_name                  char (168) unaligned,
51             2 entryname                 char (32) unaligned,
52             2 mseg_ptr                  pointer,
53             2 md_ptr                    pointer,            /* message descriptor */
54             2 mseg_index                fixed bin,
55             2 access_info               aligned like entry_access_info,
56             2 message_info              aligned like mseg_message_info,
57             2 wakeup_state              aligned like mseg_wakeup_state;
58 
59 /* END INCLUDE FILE ... mseg_operation.incl.pl1 */