*%;/* 00605002 MACRO 00610002 IGGUSL 01000002 .* /* START OF SPECIFICATIONS **** 01065002 .* 01070002 .*01 MODULE-NAME = IGGUSL 01075002 .* 01085002 .*01 COPYRIGHT = NONE 01090002 .* 01095002 .*01 STATUS = CHANGE LEVEL 01 01100002 .* 01105002 .*01 DESCRIPTIVE-NAME = UNSCHEDULED LIST FORMAT 01120002 .* 01125002 .*01 FUNCTION = FORMATS THE LIST CONTAINING IOBS WAITING FOR BUFFERS 01130002 .* 01135002 .*01 NOTES = NONE 01140002 .* 01145002 .*02 DEPENDENCIES = NA 01150002 .* 01155002 .*02 PERFORMANCE = NA 01160002 .* 01165002 .*02 RESTRICTIONS = NA 01170002 .* 01175002 .*02 REGISTER-CONVENTIONS = NA 01180002 .* 01185002 .*02 PATCH-LABEL = NA 01190002 .* 01195002 .*01 MODULE-TYPE = MACRO 01200002 .* 01225002 .*02 MACRO-SIZE = NA 01230002 .* 01235002 .*02 EXTERNAL-REFERENCES = NA 01255002 .* 01320002 .*01INNER-MACROS = NONE 01325002 .* 01335002 .*01SYSTEM-MACROS = NONE 01340002 .* 01350002 .*01 CHANGE-ACTIVITY = SEE BELOW 01351002 .* 01352002 .* VS2 RELEASE 2 01353002 .* 01355002 .**** END OF SPECIFICATIONS ***/ 01360002 * /* MACCOMP Y-2 SC1D7/SJD48 */ 01365002 * /* MACSTAT Y-2 73122/021160 */ 01370002 */********************************************************************/ 01500002 */* THE FOLLOWING DSECT FORMATS A BDAM UNSCHEDULED LIST USED WHEN */ 02000002 */* DYNAMIC BUFFERING IS SPECIFIED IN THE DCB AND THE ADDRESS SPACE */ 02500002 */* = VIRTUAL. ITS ADDRESS IS STORED IN DCBDYNB. THE LIST CONSISTS */ 03000002 */* OF A 16-BYTE HEADER AREA AND 12 OR MORE 4-BYTE FIELDS, EACH OF */ 03500002 */* WHICH MAY CONTAIN THE ADDRESS OF AN IOB WAITING FOR A BUFFER. */ 04000002 */* THE LIST IS A WRAP AROUND LIST. THE FIRST IOB IS NOT NECESSARILY*/ 04500002 */* IN THE TOP SLOT, BUT THE NEXT IOB TO GET A FREED BUFFER. */ 05000002 */********************************************************************/ 05500002 *%GOTO USLPLS2; /* Y02072*/ 05550002 USL DSECT UNSCHEDULED LIST 06000002 USLSIZE DS H SIZE OF CURRENT LIST IN BYTES 06500002 USLSZFST EQU 64 SIZE OF FIRST COPY OF USL 07000002 DS H UNUSED 07500002 USLBFRQT DS 0A PTR TO ADDR OF IOB ON TOP OF BUF Q 08000002 USLFLAGS DS BL1 FLAG INDICATING IF THIS CURRENT LIST 08500002 USLCURNT EQU X'80' IF ON, THIS IS THE CURRENT LIST 09000002 USLIOB1 DS AL3 3 BYTE ADDR OF IOB ON TOP OF BUF Q 09500002 USLBFRQB DS 0A PTR TO ADDR OF LAST IOB ON BUF Q 10000002 DS XL1 UNUSED 10500002 USLIOB2 DS AL3 3 BYTE ADDR OF LAST IOB ON BUF Q 11000002 USLCHAIN DS A PTR TO PRIOR LIST COPY 11500002 USLSLOT1 DS A TOP SLOT ON QUEUE 12000002 * * * * * * * * * * * * 12500002 USLSLOT DSECT FORMAT OF AN IOB ADDRESS FIELD 13000002 * REPRESENTING 1 SLOT IN THE USL 13500002 USLIOBA DS 0A IF USED, IOB ADDR ON BOUNDARY 14000002 USLSLTFL DS BL1 FLAGS 14500002 USLENDL EQU X'80' IF ON, SLOT IS LAST IN THE USL 15000002 USLINUSE EQU X'40' IF ON, SLOT IS BEING USED 15500002 USLIOBAA DS AL3 IF SLOT IS USED, IOB ADDR 16000002 USLNXT EQU * NEXT SLOT IN LIST 16500002 MEND 17000002 *%USLPLS2: ; /* Y02072*/ 17050002 *DCL 1 USL CHAR(64) BDY(WORD) BASED, /* BEGINNING OF USL Y02072*/ 17100002 * 2 USLSIZE CHAR(2), /* SIZE OF THIS USL Y02072*/ 17150002 * 2 * CHAR(2), 17200002 * 2 USLBFRQT PTR(31), /* PTR TO ADDR OF IOB Y02072*/ 17210002 * 3 USLFLAGS FIXED(8), /* CURRENT LIST FLAG Y02072*/ 17220002 * 3 USLIOB1 PTR(24), /* ADDR OF IOB ON TOP Y02072*/ 17230002 * 2 USLBFRQB PTR(31), /* PTR TO LAST IOB Y02072*/ 17240002 * 3 * FIXED(8), 17242002 * 3 USLIOB2 PTR(24), /* ADDR OF LAST IOB Y02072*/ 17244002 * 2 USLCHAIN PTR(31), /* PTR TO PRIOR COPY Y02072*/ 17246002 * 2 USLSLOT1 PTR(31), /* TOP SLOT ON QUEUE Y02072*/ 17248002 * 2 * CHAR(44); /* REMAINDER OF LIST Y02072*/ 17249002 *DCL USLSZFST FIXED(8) CONSTANT(64); /* SIZE OF FIRST USL Y02072*/ 17250002 *DCL USLCURNT FIXED(8) CONSTANT(128); /* FLAG - CURRENT LIST Y02072*/ 17300002