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 */