* %GOTO QELBSL; /* 00900002 MACRO 01800002 &NAME IHAQEL 02700002 QEL DSECT 03600002 * * QUEUE ELEMENT * 04500002 ******************************************* 05400002 * 0(NQEL) * 06300002 * ADDRESS OF NEXT QEL * 07200002 * * 08100002 ******************************************* 09000002 * 4(PQEL) * 09900002 * ADDRESS OF PREVIOUS QEL * 10800002 * * 11700002 ******************************************* 12600002 * 8(TCB/LQEL) * 13500002 * ADDRESS OF TCB OR ADDRESS OF LIST QEL * 14400002 * (IF HIGH BIT ONE, LIST QEL ADDRESS) * 15300002 ******************************************* 16200002 *12(QFLGS)*13(LFLGS)*14(ASID) * 17100002 * Q-FLAGS * L-FLAGS * ADDRESS SPACE I.D. * 18000002 * * * * 18900002 *******************************************SIZE 1 19800002 *16(SVRB/ECB) * 20700002 * ADDRESS OF SVRB OR ADDRESS OF ECB * 21600002 * (IF HIGH BIT ONE, ECB ADDRESS) * 22500002 ******************************************* 23400002 *20(LCNT) *22(WCNT) * 24300002 * LIST COUNT * WAIT COUNT * 25200002 * * * 26100002 *******************************************SIZE 2 27000002 * NOTE: UCB WORD WILL BE ADDED TO QEL WHEN QELRESV=1 27900002 ******************************************* 28800002 *++(UCB) * 29700002 * UCB ADDRESS * 30600002 * * 31500002 ******************************************* 32400002 QELNQEL DS A ADDR OF NEXT QEL OR IF LAST QEL,ZERO 33300002 QELPQEL DS A ADDR OF PREVIOUS QEL OR ZERO 34200002 * IF THIS IS THE FIRST QEL 35100002 QELTCB DS A ADDR OF TCB FOR WHICH ENQ WAS ISSUED 36000002 QELLQEL EQU QELTCB ADDR OF THE LIST QEL ADDR WHICH 36900002 * CONTAINS THE TCB ADDR 37800002 QELXLIST EQU X'80' IF '0' , THIS IS THE TCB ADDR. 38700002 * IF '1' , THIS IS THE LIST QEL ADDR. 39600002 QELQFLGS DS X THESE FLAGS PERTAIN TO THE QEL 40500002 QELSHARE EQU X'80' IF '1' , SHARE 41400002 * IF '0' , EXCLUSIVE 42300002 QELMC EQU X'40' IF '1' , THIS IS AN MC QEL 43200002 QELLIST EQU X'20' IF '1' , THIS IS A LIST QEL 44100002 * A SINGLE REQUEST HAS 1 LIST QEL 45000002 QELRESV EQU X'10' IF '1', THIS IS A RESERVE QEL 45900002 QELAUTH EQU X'08' IF '1', INVOKER WAS @ZA17306 45950003 * AUTHORIZED @ZA17306 46000003 QELTCBFA EQU X'04' IF '1', TCBFA WAS ON WHEN @ZA32935 46050003 * THIS QEL WAS INITIALIZED @ZA32935 46100003 QELRMF EQU X'01' IF '1' SIGNIFIES TO RMF @ZA49034 46150003 * THAT SYSEVENT IS A RESULT @ZA49034 46200003 * OF RESERVE PROCESSING @ZA49034 46250003 ********** 46800002 * THE FOLLOWING FIELDS PERTAIN TO A SINGLE OR LIST REQUEST. 47700002 * QELLFLGS AND QELASID ARE PROPAGATED FOR EACH QEL OF THE LIST 48600002 ********** 49500002 QELLFLGS DS X THESE FLAGS PERTAIN TO THE REQUEST 50400002 * I.E. TO THE LIST IF A LIST REQUEST 51300002 QELPOST EQU X'80' THE ECB OR RB HAS BEEN POSTED 52200002 QELECBF EQU X'40' THIS IS AN ECB REQUEST 53100002 QELASID DS H THIS REQUESTS ASID. 54000002 QELSVRB DS A THIS IS THE ADDRESS OF THIS REQUESTS 54900002 * SVRB ADDRESS, THIS ADDRESS IS 55800002 * VALID WHEN THE QELWCNT IS NON-ZERO 56700002 QELECB EQU QELSVRB THIS IS THE ADDRESS OF THIS REQUESTS 57600002 * ECB ADDRESS, THIS ADDRESS IS 58500002 * VALID WHEN THE QELWTCNT IS NON-ZERO 59400002 QELXECB EQU X'80' IF '0' , THIS IS AN SVRB ADDR 60300002 * IF '1' , THIS IS AN ECB ADDR 61200002 QELLCNT DS H THIS IS A COUNT OF THE NUMBER OF 62100002 * ACTIVE QELS LEFT FOR THIS REQUEST 63000002 QELWCNT DS H THIS IS A COUNT OF THE NUMBER OF 63900002 * QELS 'WAITING' 64800002 * NOTE: A SINGLE REQUEST IS CONSIDERED A LIST REQUEST OF ONE, 65700003 * WHEN QELRESV=1, QEL EXTENDED(WORD) TO CONTAIN UCB ADDR 66100003 MEND , */ 66600002 *%QELBSL : ; 67500002 *DECLARE 68400002 * 1 QEL BASED, /* QUEUE ELEMENT */ 69300002 * 2 QELNQEL PTR(31), /* ADDRESS OF NEXT QEL OR ZERO */ 70200002 * 2 QELPQEL PTR(31), /* ADDR OF PREVIOUS QEL OR MINOR */ 71100002 * 2 QELTCB PTR(31), /* AD OF TCB OR AD OF LIST QEL */ 72000002 * 3 QELLQEL PTR(31), /* DITTO */ 72900002 * 4 QELXLIST BIT(1), /* IF '1', THIS AD IS LIST QEL AD */ 73800002 * 2 QELQFLGS CHAR(1), /* FLAGS PERTAINING TO THIS QEL */ 74700002 * 3 QELSHARE BIT(1), /* IF '1', SHARE IF '0', EXCL */ 75600002 * 3 QELMC BIT(1), /* IF '1', MC WAS REQUESTED */ 76500002 * 3 QELLIST BIT(1), /* IF '1', THIS IS THE LIST QEL */ 77400002 * 3 QELRESV BIT(1), /* IF '1', THIS IS A RESERVE QEL */ 78300002 * 3 QELAUTH BIT(1), /* IF '1', INVOKER WAS AUTHORIZED 78350003 @ZA17306*/ 79200003 * 3 QELTCBFA BIT(1), /* IF '1', TCBFA WAS ON WHEN THIS 80100003 QEL WAS INITIALIZED @ZA32935*/ 80150003 * 3 * BIT(1), /* RESERVED */ 81000002 * 3 QELRMF BIT(1), /* IF '1' SIGNIFIES TO RMF THAT 81050003 SYSEVENT IS A RESULT OF RESERVE 81100003 PROCESSING @ZA49034*/ 81150003 * 2 QELLFLGS CHAR(1), /* FLAGS PERTAINING TO THE LIST */ 82800002 * 3 QELPOST BIT(1), /* THE ECB OR RB WAS POSTED */ 83700002 * 3 QELECBF BIT(1), /* THIS IS AN ECB REQUEST */ 84600002 * 3 * BIT(1), /* RESERVED */ 85500002 * 3 * BIT(1), /* RESERVED */ 86400002 * 3 * BIT(1), /* RESERVED */ 87300002 * 3 * BIT(1), /* RESERVED */ 88200002 * 3 * BIT(1), /* RESERVED */ 89100002 * 3 * BIT(1), /* RESERVED */ 90000002 * 2 QELASID PTR(16), /* THIS REQUESTS ASID */ 90900002 * 2 QELSVRB PTR(31), /* SVRB AD OR ECB AD */ 91800002 * 3 QELECB PTR(31), /* DITTO */ 92700002 * 4 QELXECB BIT(1), /* DUAL WORD, '1' ECB, '0' SVRB */ 93600002 * 2 QELLCNT PTR(16), /* NUMBER OF ACTIVE QELS THIS LST */ 94500002 * 2 QELWCNT PTR(16); /* NUMBER OF QELS WAITING */ 95400002