*%; /* 00050002 MACRO 00100002 &NAME IRARMQH &DSECT=YES, USE OTHER OPRNDS IF DSECT=NO SPECD *00150002 &QUE= QUEUE (HEADER BLOCK) IDENTIFIER 00200002 .* 00250002 GBLB &IRAQHCM IRARMQH COMMENTARY PRINT CONTROL 00300002 AIF (&IRAQHCM).RMQHAL1 BYPASS DUPLICATE IRARMQH INTRO 00350002 IEZBITS INVOKE STANDARD BIT DECLARATIONS 00400002 * */ 00450002 * /* */ 00500002 * /* MACCOMP Z-4 SC1CX/PKD16 */ 00550040 * /* MACSTAT Z-4 75007/Z40PBSS */ 00580040 * /* *************************************************************** */ 00650002 * /* */ 00700002 * /* MACRO NAME - IRARMQH */ 00750002 * /* */ 00800002 * /* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER QUEUE HEADER BLK */ 00850002 * /* */ 00900002 * /* COPYRIGHT - NONE */ 00950002 * /* */ 01000002 * /* STATUS - OS/VS2 RELEASE 4, 10/05/73, LEVEL=1 */ 01050040 * /* */ 01100002 * /* FUNCTION - THE RMQH SERVES AS A DUMMY MEMBER ON THE SYSTEM */ 01150002 * /* RESOURCES MANAGER QUEUE IT DESCRIBES. IT IS USED */ 01200002 * /* AS A STARTING POINT TO SEARCH THAT QUEUE, AND IT */ 01250002 * /* SIMPLIFIES DOUBLE-CHAINING IF THE QUEUE IS EMPTY. */ 01300002 * /* */ 01350002 * /* METHOD OF ACCESS - THE ADDRESSES OF THE VARIOUS RMQH BLOCKS */ 01400002 * /* ARE CONTAINED IN THE RESPECTIVE -RMCTXXQE- FIELDS OF */ 01450002 * /* THE SYSTEM RESOURCES MANAGER CONTROL TABLE. */ 01500002 * /* */ 01550002 * /* *************************************************************** */ 01600002 * %GOTO RMQHPLS2; /* 01650002 &IRAQHCM SETB 1 IRARMQH COMMENTARY WAS PRINTED 01700002 AGO .RMQHAL1 */ 01750002 * /* *************************************************************** */ 01800002 * /* */ 01850002 * /* INVOCATION PARAMETERS AND/OR KEYWORDS = */ 01900002 * /* */ 01950002 * /* BAL - DSECT=NO IF DSECT IS NOT TO BE PRODUCED. */ 02000002 * /* - OTHERWISE, QUE='IDQE' TO SPECIFY THE QUEUE ID, */ 02050002 * /* WHERE 'ID' ARE TWO SUPPLIED CHARACTERS, AND */ 02100002 * /* 'QE' ARE THE CHARACTERS 'Q' AND 'E'. */ 02150002 * /* */ 02200002 * /* IF DSECT=NO IS NOT CODED, USING ON RMQH WILL GIVE */ 02250002 * /* ADDRESSABILITY TO ALL SYMBOLS. */ 02300002 * /* */ 02350002 * /* IF DSECT=NO IS CODED, THE IRARMQH MACRO WILL GENER */ 02400002 * /* 'DC' INSTRUCTIONS, SO THAT THE MACRO MAY BE USED TO */ 02450002 * /* ASSEMBLE INITIAL RMQH FIELD VALUES INTO THE IRARMCNS */ 02500002 * /* MODULE, WHICH CONTAINS THE VARIOUS RMQH BLOCKS. */ 02550002 * /* */ 02600002 * /* PLS - %RMQHLEVL='USERLEVL' IF THE RMQH MAPPING IS TO BE */ 02650002 * /* CONCATENATED WITH A PREVIOUS DECLARATION, WITH THE */ 02700002 * /* RMQH BEING ASSIGNED THE INDICATED STRUCTURE LEVEL. */ 02750002 * /* - %RMQH9999=',' IF THE STRUCTURE SHOULD NOT BE CLOSED. */ 02800002 * /* */ 02850002 * /* TO ACCESS AS A STANDALONE STRUCTURE DCL RMQHPTR PTR. */ 02900002 * /* */ 02950002 * /* CHANGE ACTIVITY = */ 03000002 * /* */ 03050002 * /* A000000-999999 Y02133*/ 03100002 * /* *************************************************************** */ 03150002 * /* 03200002 .RMQHAL1 ANOP 03250002 SPACE 1 03300002 AIF ('&DSECT' EQ 'NO').RMQHAL2 03350002 RMQH DSECT 03400002 RMQHNAME DS CL4 - QUEUE IDENTIFICATION 03450002 RMQHFWD DS A - QUEUE FORWARD POINTER 03500002 RMQHBCK DS A - QUEUE BCKWARD POINTER 03550002 RMQHQVL DS F - QUEUE ENTRY ORDERING VALUE 03600002 RMQHFLG DS 0CL4 - QUEUE ENTRY DESCRIPTOR FLAGS 03650002 RMQHQFL DS BL1 - QUEUE TRANSITION FLAGS 03700002 RMQHGOB EQU BIT2 - TRANSITIONING BETWEEN QUEUES 03750002 RMQHSFL DS BL1 - QUEUE CONTINUATION FLAGS 03800002 RMQHSCN EQU BIT7 - QUEUE TERMINATION MARK 03850002 RMQHYFL DS BL1 - QUEUE ENTRY TYPE FLAGS 03900002 RMQHAFL DS BL1 - QUEUE ENTRY PROCESSING FLAGS 04000002 RMQHLST DS A - QUEUE LAST USED ENTRY POINTER 04050002 RMQHEND DS 0D - END OF RMQH 04100002 RMQHLEN EQU RMQHEND-RMQH - LENGTH OF RMQH 04150002 AGO .RMQHAL4 04200002 .RMQHAL2 ANOP 04250002 DS 0D 04300002 IRA&QUE EQU * 04350002 AIF ('&NAME' EQ '').RMQHAL3 04400002 &NAME EQU * 04450002 .RMQHAL3 ANOP 04500002 SPACE 1 04550002 DS 0CL24 - QUEUE HEADER BLOCK 04600002 DC C'&QUE' - QUEUE IDENTIFICATION 04650002 DC A(IRA&QUE) - QUEUE FORWARD POINTER 04700002 DC A(IRA&QUE) - QUEUE BCKWARD POINTER 04750002 DC X'FFFFFFFF' - QUEUE ENTRY ORDERING VALUE 04800002 DC X'00010000' - QUEUE ENTRY DESC FLAGS @Z40BPCH 04850040 DC A(IRA&QUE) - QUEUE LAST USED ENTRY POINTER 04900002 .RMQHAL4 ANOP 04950002 MEND 05000002 * */ 05050002 *%RMQHPLS2: ; 05100002 * %IF RMQH9999 ^= ',' /* DOES STRUCTURE CONTINUE */ 05150002 * %THEN %RMQH9999 = ';'; /* NO, END DECLARE STATEMENT */ 05200002 * %IF RMQHLEVL ^= '' /* IS STRUCTURE CONCATENATED */ 05250002 * %THEN %GOTO RMQHPLS3; /* YES, OMIT DECLARE STATEMENT */ 05300002 * DCL 05350002 * 1 RMQH BASED(RMQHPTR) BDY(DWORD), 05400002 * %GOTO RMQHPLS4; /* SKIP USER-GIVEN LEVEL */ 05450002 *%RMQHPLS3: RMQHDUM = RMQHLEVL||' RMQH'; /* PICK UP GIVEN LEVEL */ 05500002 * RMQHDUM BDY(DWORD), 05550002 *%RMQHPLS4: ; 05600002 * 10 RMQHNAME CHAR(4), /* QUEUE IDENTIFICATION */ 05650002 * 10 RMQHFWD PTR(31), /* QUEUE FORWARD POINTER */ 05700002 * 10 RMQHBCK PTR(31), /* QUEUE BCKWARD POINTER */ 05750002 * 10 RMQHQVL FIXED UNSIGNED, /* QUEUE ENTRY ORDERING VALUE */ 05800002 * 10 RMQHFLG BIT(32) BDY(WORD), /* QUE ENTRY DESCRIPTR FLAGS */ 05850002 * 12 RMQHQFL BIT(8), /* QUEUE TRANSITION FLAGS */ 05900002 * 14 RMQHQR0 BIT(2), /* RESERVED */ 05950002 * 14 RMQHGOB BIT(1), /* TRANSITIONING BETWEEN QUEUES */ 06000002 * 14 RMQHQR3 BIT(5), /* RESERVED */ 06050002 * 12 RMQHSFL BIT(8), /* QUEUE CONTINUATION FLAGS */ 06100002 * 14 RMQHSR0 BIT(7), /* RESERVED */ 06150002 * 14 RMQHSCN BIT(1), /* QUEUE TERMINATOR MARK */ 06200002 * 12 RMQHYFL BIT(8), /* QUEUE ENTRY TYPE FLAGS */ 06250002 * 12 RMQHAFL BIT(8), /* QUEUE ENTRY PROCESS FLAGS */ 06400002 * 10 RMQHLST PTR(31), /* QUE LAST USED ENTRY POINTER */ 06450002 * 10 RMQHEND CHAR(0) BDY(DWORD) /* END OF RMQH */ 06500002 * RMQH9999 06550002 * %RMQHLEN = 'LENGTH(RMQH)'; /* SYMBOLIC FOR LENGTH OF RMQH */ 06600002