1 /* START OF: kst.incl.pl1 * * * * * */ 2 3 /* 4 Modified March 1976 by R. Bratt 5 Modified November 1984 to remove hdr, Keith Loepere. */ 6 7 8 /****^ HISTORY COMMENTS: 9 1) change(86-08-08,GDixon), approve(86-08-08,MCR7388), 10 audit(86-09-02,Farley), install(86-09-08,MR12.0-1150): 11 Add warning on use of kste.entryp. 12 END HISTORY COMMENTS */ 13 14 15 dcl pds$kstp ext ptr, 16 (kstp, kstep) ptr; 17 18 dcl 1 kst aligned based (kstp), /* KST header declaration */ 19 2 lowseg fixed bin (17), /* lowest segment number described by kst */ 20 2 highseg fixed bin (17), /* highest segment number described by kst */ 21 2 highest_used_segno fixed bin (17), /* highest segment number yet used */ 22 2 lvs fixed bin (8), /* number of private LVs this process is connected to */ 23 2 time_of_bootload fixed bin (71), /* bootload time during prelinking */ 24 2 garbage_collections fixed bin (17) unaligned, /* KST garbage collections */ 25 2 entries_collected fixed bin (17) unaligned, /* KST entries recovered by garbage collection */ 26 2 free_list bit (18) unaligned, /* relative pointer to first free kste */ 27 2 prelinked_ring (7) bit (1) unaligned, /* rings prelinked in process */ 28 2 template bit (1) unaligned, /* this is a template kst if set */ 29 2 allow_256K_connect bit (1) unaligned, /* can use 256K segments */ 30 2 unused_2 bit (9) unaligned, 31 2 uid_hash_bucket (0 : 127) bit (18) unaligned, /* hash buckets */ 32 2 kst_entry (0 refer (kst.lowseg):0 refer (kst.highseg)) aligned like kste, /* kst entries */ 33 2 lv (1:256) bit (36), /* private logical volume connection list */ 34 2 end_of_kst bit (36); 35 36 dcl 1 kste based (kstep) aligned, /* KST entry declaration */ 37 2 fp bit (18) unaligned, /* forward rel pointer */ 38 2 segno fixed bin (17) unaligned, /* segment number of this kste */ 39 2 usage_count (0:7) fixed bin (8) unaligned, /* outstanding initiates/ring */ 40 2 entryp ptr unaligned, /* branch pointer */ 41 /* See WARNING below for requirements to use entryp. */ 42 2 uid bit (36) aligned, /* unique identifier */ 43 2 access_information unaligned, 44 3 dtbm bit (36), /* date time branch modified */ 45 3 extended_access bit (33), /* extended access from the branch */ 46 3 access bit (3), /* rew */ 47 3 ex_rb (3) bit (3), /* ring brackets from branch */ 48 2 pad1 bit (3) unaligned, 49 2 flags unaligned, 50 3 dirsw bit (1), /* directory switch */ 51 3 allow_write bit (1), /* set if initiated with write permission */ 52 3 priv_init bit (1), /* privileged initiation */ 53 3 tms bit (1), /* transparent modification switch */ 54 3 tus bit (1), /* transparent usage switch */ 55 3 tpd bit (1), /* transparent paging device switch */ 56 3 audit bit (1), /* audit switch */ 57 3 explicit_deact_ok bit (1), /* set if I am willing to have a user force deactivate */ 58 3 pad bit (3), 59 2 infcount fixed bin (12) unaligned; /* _^Hi_^Hf dirsw _^Ht_^Hh_^He_^Hn inferior count _^He_^Hl_^Hs_^He lv index */ 60 61 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 63 /* */ 64 /* WARNING: Before using kste.entryp to get a pointer to the directory */ 65 /* entry associated with the kst entry, you must first validate its value */ 66 /* by calling sum$getbranch or sum$getbranch_root_my. This call also locks */ 67 /* the containing directory. The containing directory must remain locked */ 68 /* during the entire period when kste.entryp and the directory entry are */ 69 /* being referenced. Once the directory is unlocked, kste.entryp can no */ 70 /* longer be used to get a pointer to the entry within the unlocked */ 71 /* directory since the dir entry could have been moved within the directory */ 72 /* by another processor. */ 73 /* */ 74 /* If you only need a pointer to the directory containing the associated */ 75 /* dir entry (but not to the dir entry itself), you can use: */ 76 /* pointer (kste.entryp, 0) */ 77 /* without calling sum to lock the directory and validate entryp. GDixon */ 78 /* */ 79 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 80 81 /* END OF: kst.incl.pl1 * * * * * */