1 /* BEGIN INCLUDE FILE mdbm_scope_requests.incl.pl1 - - Jim Gray 80-12-10 */
 2 
 3 /* this include file contains overlays for the fixed bin (17)
 4    permit/prevent scope mode encoding that set/dl_fscope and all lower
 5    routines use in interface communications.
 6    Note that is fixed bin(17) aligned, as recieved from
 7    mrds_dsl_set_scope, thus the overlay is for a full 36 bit word.
 8    The scope modes are encoded as a sum of the individual permissions,
 9    with 1 => read_attr, 2 => append_tuple, 4 => delete_tuple, 8 => modify_attr,
10    thus individual bits in the fixed bin word can be used for each mode
11    These were known as r-s-m-d modes by old mrds users. */
12 
13 declare 1 common based,                                     /* common layout of bits for scope modes */
14         2 mbz1 bit (32) unal,                               /* unused upper part of word */
15         2 modify_attr bit (1) unal,                         /* mode sum has an 8 */
16         2 delete_tuple bit (1) unal,                        /* mode sum has a 4 */
17         2 append_tuple bit (1) unal,                        /* mode sum has a 2 */
18         2 read_attr bit (1) unal ;                          /* mode sum has a 1 */
19 
20 declare 1 permit_requests like common based (permit_requests_ptr) ; /* permit modes in scope call */
21 
22 declare 1 prevent_requests like common based (prevent_requests_ptr) ; /* prevent modes in scope call */
23 
24 declare (permit_requests_ptr, prevent_requests_ptr) ptr ;
25 
26 /* the following structure is used to describe in detail,
27    what scope conflict existed between a users requested
28    permit/prevent modes in a set/dl_scope call and the
29    actual usage of a file/relation currently with active scope in the database
30    Note that for delete_scope, the conflict check is that the requested deletion
31    be a subset of the users currently set scope.
32    For set_scope, the conflict check is that a permit does not conflict with
33    another users prevent, and that the requested prevent does not
34    conflict with an existing other users permit already granted. */
35 
36 declare 1 conflict_detail based (conflict_detail_ptr),
37         2 permits like common,                              /* conflicts in permit part of requests */
38         2 prevents like common ;                            /* conflicts in prevent part of requests */
39 
40 declare  conflict_detail_ptr ptr ;
41 
42 /* END INCLUDE FILE mdbm_scope_requests.incl.pl1 */