*%;/* 00605002 MACRO 00610002 IGGRDX 01000002 .* /* START OF SPECIFICATIONS **** 01065002 .* 01070002 .*01 MODULE-NAME = IGGRDX 01075002 .* 01080002 .*01 COPYRIGHT = NONE 01085002 .* 01090002 .*01 STATUS = CHANGE LEVEL 01 01095002 .* 01100002 .*01 DESCRIPTIVE-NAME = READX EXCLUSIVE LIST FORMAT 01115002 .* 01120002 .*01 FUNCTION = FORMATS THE LIST CONTAINING IOBS WAITING FOR EXCLUSIVE 01125002 .* CONTROL OF BLOCKS WHOSE IDS(UCB+CCHHR) ARE IDENTIFIED 01126002 .* IN THE SAME READ EXCLUSIVE LIST ENTRY AND ARE AT THAT 01127002 .* TIME UNDER THE CONTROL OF ANOTHER REQUEST. 01128002 .* 01130002 .*01 NOTES = NONE 01135002 .* 01140002 .*02 DEPENDENCIES = NA 01145002 .* 01150002 .*02 PERFORMANCE = NA 01155002 .* 01160002 .*02 RESTRICTIONS = NA 01165002 .* 01170002 .*02 REGISTER-CONVENTIONS = NA 01175002 .* 01180002 .*02 PATCH-LABEL = NA 01185002 .* 01190002 .*01 MODULE-TYPE = MACRO 01195002 .* 01210002 .*02 MACRO-SIZE = NA 01215002 .* 01220002 .*02 EXTERNAL-REFERENCES = NA 01225002 .* 01230002 .*01INNER-MACROS = NONE 01235002 .* 01240002 .*01SYSTEM-MACROS = NONE 01245002 .* 01250002 .*01 CHANGE-ACTIVITY = SEE BELOW 01251002 .* 01252002 .* VS2 RELEASE 2 01253002 .* 01255002 .**** END OF SPECIFICATIONS ***/ 01260002 * /* MACCOMP Y-2 SC1D7/SJD48 Y02072*/ 01265002 * /* MACSTAT Y-2 73122/021160 Y02072*/ 01270002 */********************************************************************/ 01500002 */*THE FOLLOWING DSECT FORMATS A BDAM READ EXCLUSIVE LIST SEGMENT, */ 02000002 */*WITH NINE 16-BYTE ENTRIES,EACH ENTRY ASSOCIATED WITH A BLOCK UNDER*/ 02005002 */*EXCLUSIVE CONTROL.EACH ENTRY CONTAINS AN 8-BYTE BLOCK ID (UCB ADDR*/ 02010002 */*+CCHHR) AND THE FIRST AND LAST IOB ADDRESS IN A CHAIN OF IOBS */ 02015002 */*WAITING FOR EXCLUSIVE CONTROL OF THE BLOCK. EACH IOB CONTAINS THE */ 02016002 */*ADDR OF THE NEXT WAITING IOB IN FIELD,IOBDQPTR.THE LIST IS MADE UP*/ 02016202 */*OF 152-BYTE SEGMENTS(9 ENTRIES/SEG) CHAINED TOGETHER. NEW SEGMENTS*/ 02025002 */*ARE GOTTEN DYNAMICALLY WHEN THE PREVIOUS SEGMENT IS FULL. THE ADDR*/ 02030002 */*OF THE NEXT SEGMENT IS STORED IN THE SECOND WORD OF THE PREVIOUS */ 02035002 */*SEGMENT. */ 02040002 */********************************************************************/ 04000002 *%GOTO RDXPLS2; /* Y02072*/ 04050002 RDXLIST DSECT 04500002 RDXRSV01 DS XL4 UNUSED Y02072 05000002 RDXMAXCT EQU X'09' NUMBER OF ENTRIES PER SEGMENT 06000002 RDXNEXT DS A POINTER TO NEXT SEGMENT IF ONE 07000002 * EXISTS, OTHERWISE ZEROES 07500002 RDXENT EQU * READX ENTRY (SEE BELOW) 08000002 RDXLSTLG EQU 152 LENGTH OF LIST SEGMENT Y02072 08500002 * * * * * * * * * * * * * * * * * * 09000002 * FORMAT OF ONE ENTRY IN THE LIST 09001002 * * * * * * * * * * * * * * * * * * 09005002 RDXENTRY DSECT 09500002 RDXNQARG DS XL8 UCB/CCHHR FOR BLOCK Y02072 09550002 RDXIOBUQ DS A ADDR OF FIRST IOB ON Y02072 09600002 * UNPOSTED QUEUE (OR 0 ) Y02072 09650002 RDXUQND DS A ADDR LAST IOB ON QUEUE Y02072 09700002 RDXENTLN EQU *-RDXENTRY LENGTH OF EACH ENTRY Y02072 09750002 MEND 12000002 *%RDXPLS2: ; /* Y02072*/ 12050002 *DCL 1 RDXLIST CHAR(152) BDY(WORD) BASED,/* READ EXCLUSIVE LIST DSECT*/ 12100002 * 2 RDXRSV01 CHAR(4) BDY(WORD), /* UNUSED */ 12150002 * 2 RDXNEXT PTR(31), /* ADDRESS OF NEXT SEGMENT */ 12200002 * 2 RDXENT CHAR(16); /* ENTRY IN READX LIST, DES- 12250002 * CRIBED BELOW IN RDXENTRY */ 12260002 *DCL RDXMAXCT FIXED(8) CONSTANT(9), /* NUMBER OF ENTRIES/SEGMENT */ 12300002 * RDXLSTLG FIXED(8) CONSTANT(152); /* LENGTH OF 1 READX SEGMENT */ 12350002 */* */ 12360002 */* THE FOLLOWING FORMATS ONE ENTRY IN THE READ EXCLUSIVE LIST */ 12400002 */* */ 12450002 *DCL 1 RDXENTRY CHAR(16) BDY(WORD) BASED, /* FORMAT OF 1 ENTRY */ 12500002 * 2 RDXNQARG CHAR(8), /* ENQ/DEQ MINOR QNAME- 12550002 * UCB + CCHHR OF BLOCK */ 12560002 * 2 RDXIOBUQ PTR(31), /* ADDR OF FIRST IOB ON 12600002 * UNPOSTED QUEUE (OR ZERO) */ 12610002 * 2 RDXUQND PTR(31); /* ADDR OF LAST IOB ON QUEUE */ 12650002