1 /* START OF: mbuild_Tlist_dcls_.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 2 3 4 /****^ HISTORY COMMENTS: 5 1) change(2019-08-17,GDixon), approve(2019-10-23,MCR10069), 6 audit(2020-01-20,Swenson), install(2020-01-20,MR12.6g-0035): 7 mbuild subsystem threaded-list software and declarations. See: MTB-1003 8 END HISTORY COMMENTS */ 9 10 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 /* */ 12 /* NOTES on Threaded Lists: */ 13 /* The structures declared below are connected in two cardinality types: */ 14 /* - one-to-one: COMPILE.sourceP <----> SEG(source).compileP */ 15 /* - one-to-many: SEG(source_archive).inArch_Tb <--->> SEG(source).inArch_Td */ 16 /* */ 17 /* mbuild uses threaded lists (Tlists) to do one-to-many connections between related */ 18 /* structures. */ 19 /* - A Tlist_base structure anchors the head/tail of a list. */ 20 /* - A Tlist_data structure threads between adjacent structures of the list, or */ 21 /* between a structure and the list head or tail anchor points. */ 22 /* */ 23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 dcl 1 Tlist_base aligned based, /* Structure anchoring the threaded list of items. */ 26 2 headP ptr, /* pointer to first item in the list. */ 27 2 tailP ptr, /* pointer to last item in the list. */ 28 2 holderP ptr; /* pointer to structure holding this Tlist_base. */ 29 30 dcl 1 Tlist_data aligned based, /* Structure contained in items threaded together. */ 31 2 prevP ptr, /* pointer to prev element on the list. */ 32 2 nextP ptr, /* pointer to next element on the list. */ 33 2 itemP ptr, /* pointer to structure holding this substructure. */ 34 2 baseP ptr; /* pointer to list base (head/tail pointers). */ 35 36 dcl 1 Tlist_initial_base aligned int static options(constant), 37 2 (headP, tailP, holderP) ptr init(null()); /* Initial value for a Tlist_base item. */ 38 39 dcl 1 Tlist_initial_data aligned int static options(constant), 40 2 (prevP, nextP, itemP, baseP) ptr init(null()); /* Initial value for a Tlist_data item. */ 41 42 /* END OF: mbuild_Tlist_dcls_.incl.pl1 * * * * * * * * * * * * * * * * * * * */