*/********************************************************************* 00300002
*                                                                     * 00350002
*   THIS MAPPING MACRO DESCRIBES THE CONTROL BLOCK PASSED TO THE I/O  * 00400002
*   MANAGER BY USERS SUCH AS RECORD MANAGEMENT AND ASM.  IT CONTAINS  * 00410002
*   POINTERS TO OTHER CONTROL BLOCKS, FLAGS FOR I/O MANAGER USE, AND  * 00450002
*   A SIXTEEN WORD SAVE AREA.  POINTERS TO THE FIRST BUFC AND CPA ARE * 00500002
*   INSERTED BY I/O MGR AFTER THEY HAVE BEEN VERIFIED.                * 00550002
*                                                                     * 00650002
*   THE IOMB IS USED IN CONJUNCTION WITH AN IOSB AND AN SRB FOR I/O   * 00700002
*   PURPOSES IN PLACE OF THE IOB USED BY OTHER IOS DRIVERS.  THE IOMB * 00750002
*   POINTS TO THE IOSB, WHICH POINTS TO THE SRB.                      * 00760002
*                                                                     * 00810002
*    09/18/74          LEVEL=01                                       * 00850037
*    08/15/75          LEVEL=02           CHANGE FLAG=@Z40GSDT        * 00860004
*                                                                     * 00900002
**********************************************************************/ 00950002
* %      GO TO IOMBPLS;             /* GO TO THE PLS VERSION         */ 00960002
         MACRO                                                          00970002
         IDAIOMB                                                        00980002
IOMB     DSECT                                                          00990002
         SPACE 1                                                        01000002
         DS    0F                                                       01050002
IOMBID   DS    XL4                  IOMB IDENTIFIER                     01100002
IOMBUFC  DS    F                    POINTER TO THE FIRST BUFC           01150002
IOMCPA   DS    F                    POINTER TO THE FIRST CPA            01200002
IOMPLH   DS    F                    POINTER TO THE PLH                  01250002
IOMAMB   DS    F                    POINTER TO THE AMB                  01300002
IOMIQE   DS    F                    POINTER TO THE IQE                  01350002
IOMECBPT DS    F                    POINTER TO THE ECB                  01400002
IOMVSL   DS    F                    POINTER TO THE VIRTUAL SUBAREA LIST 01450002
IOMPGAD  DS    F                    ADDR OF CALLER TO RECEIVE CONTROL   01500002
*                                   ON COMPLETION OF I/O OPERATION      01510002
*                                   (ZEROED FOR RECORD MANAGEMENT)      01520002
IOMIOSB  DS    F                    POINTER TO THE IOSB                 01550002
IOMFLAGS DS    0XL3                 INTERNAL FLAGS                      01600002
IOMFL    DS    XL2                  FLAGS TO BE RESET AFTER I/O         01650002
IOMAPEND EQU   X'C0'                ABNORMAL END AND NORMAL END ENTERED 01700002
IOMNE    EQU   X'80'                NORMAL END ENTERED                  01750002
IOMAE    EQU   X'40'                ABNORMAL END ENTERED                01800002
IOMPURGE EQU   X'20'                PURGE IN PROGRESS                   01850002
IOMCBERR EQU   X'08'                CONTROL BLOCK VALIDITY ERROR        01950002
IOMADERR EQU   X'04'                ERROR CONVERTING VPL TO IDAL        02000002
IOMPGFIX EQU   X'02'                PAGES FIXED                         02050002
IOMCSW   EQU   X'01'                CSW ADDRESS NOT VALID               02100002
*                                   SECOND BYTE OF IOMFL AND IOMFLAGS   02102002
IOMDDR   EQU   X'80'                DYNAMIC DEVICE RECONFIGURATION      02110002
IOMCPRB  EQU   X'40'                CALLER IN PROBLEM STATE    @ZA09130 02130037
IOMEEXIT EQU   X'08'                END APPENDAGE EXIT BIT     @ZA02276 02160037
IOMIRBSW EQU   X'04'                ASYNCH PROCESSING SCHED    @ZA02276 02210037
         SPACE 1                                                        02250002
*                                   THIRD BYTE OF IOMFLAGS              02260002
IOMSTIND DS    XL1                  ONE BYTE OF STATUS INDICATORS       02300002
IOMAMUSE EQU   X'80'                IOMB CURRENTLY IN USE               02350002
IOMEOVW  EQU   X'40'                EOV WAITING FOR IOMB                02400002
IOMEOVTS EQU   X'20'                EOV HAS SET IOMLOCK                 02450002
IOMEOVXC EQU   X'10'                END OF VOLUME INDICATOR             02500002
IOMLLOCK EQU   X'08'                LOCAL LOCK HELD                     02510002
IOMSLOC  EQU   X'04'                SALLOC HELD                @Y30SDLC 02520037
IOMSRBM  EQU   X'02'                USER IN SRB MODE           @Y30SDLP 02530037
IOMSR    EQU   X'01'                SUSPEND/RESUME INDICATOR   @Z40GSDT 02540004
IOMCKEY  DS    XL1                  USER KEY SAVED FOR APPENDAGE USE    02550002
IOMPFERR DS    XL1                  RETURN CODE FROM PAGEFIX            02600002
IOMLOCK  DS    XL1                  END OF VOLUME LOCK                  02650002
IOMNMOD  DS    H                    NUMBER OF MODULES TO BE FIXED       02700002
IOMNBUF  DS    H                    NUMBER OF BUFFERS                   02750002
IOMNSEG  DS    H                    NUMBER OF CHANNEL PROGRAM SEGMENTS  02800002
IOMSAVER DS    0CL64                16 WORD SAVE AND WORK AREA          02850002
IOMSAVE0 DS    F                                                        02900002
IOMSAVE1 DS    F                                                        02950002
IOMSAVE2 DS    F                                                        03000002
IOMSAVE3 DS    F                                                        03050002
IOMSAVE4 DS    F                                                        03100002
IOMSAVE5 DS    F                                                        03150002
IOMSAVE6 DS    F                                                        03200002
IOMSAVE7 DS    F                                                        03250002
IOMSAVE8 DS    F                                                        03300002
IOMSAVE9 DS    F                                                        03350002
IOMSAVEA DS    F                                                        03400002
IOMSAVEB DS    F                                                        03450002
IOMSAVEC DS    F                                                        03500002
IOMSAVED DS    F                                                        03550002
IOMSAVEE DS    F                                                        03600002
IOMSAVEF DS    F                                                        03650002
IOMNXT1  DS    F                    POINTER TO NEXT IOMB ON CHAIN       03700002
IOMUFLD  DS    F                    USER FIELD-PTR TO IDAIOMBX FOR RM   03710002
IOMSRBP  DS    F                    ADDRESS OF SUSPENDED RB    @Z40GSDT 03720004
IOMSTCB  DS    F                    TCB FOR SUSPENDED RB       @Z40GSDT 03730004
         MEND                                                           03750002
         EJECT                                                          03800002
* /*      IOMB DECLARATION                                           */ 07000002
* /*                                                                 */ 07050002
*%IOMBPLS: ;                                                            07060002
* /*                                                                 */ 07150002
*     DCL 1 IDAIOMB BASED BDY(WORD),                                    07200002
*           2 IOMBID     CHAR(4),   /* IOMB IDENTIFIER               */ 07250002
*           2 IOMBUFC    PTR(31),   /* FIRST BUFC ADDRESS            */ 07300002
*           2 IOMCPA     PTR(31),   /* 1ST CPA IN CHAIN              */ 07350002
*           2 IOMPLH     PTR(31),   /* PLH ADDRESS                   */ 07400002
*           2 IOMAMB     PTR(31),   /* AMB ADDRESS                   */ 07450002
*           2 IOMIQE     PTR(31),   /* IQE ADDRESS                   */ 07500002
*           2 IOMECBPT   PTR(31),   /* ECB ADDRESS                   */ 07550002
*           2 IOMVSL     PTR(31),   /* VIRTUAL SUBAREA LIST PTR      */ 07600002
*           2 IOMPGAD    PTR(31),   /* ADDR OF CALLER TO GET CONTROL    07650002
*                                      ON COMPLETION OF I/O OPERATION   07660002
*                                      (ZEROED FOR RECORD MGMT)      */ 07670002
*           2 IOMIOSB    PTR(31),   /* IOSB ADDRESS                  */ 07700002
*           2 IOMFLAGS   BIT(24),   /* INTERNAL FLAGS                */ 07750002
*             3 IOMFL    BIT(16),   /* FLAGS TO BE RESET AFTER I/O   */ 07800002
*               4 IOMAPEND BIT(2),  /* APPENDAGE FLAGS               */ 07850002
*                 5 IOMNE  BIT(1),  /* NE APPENDAGE COMPLETED        */ 07900002
*                 5 IOMAE  BIT(1),  /* AE APPENDAGE COMPLETED        */ 07950002
*               4 IOMPURGE BIT(1),  /* PURGE IN PROGRESS             */ 08000002
*               4 *        BIT(1),  /* RESERVED                      */ 08050002
*               4 IOMCBERR BIT(1),  /* CONTROL BLOCK VALIDITY ERROR  */ 08100002
*               4 IOMADERR BIT(1),  /* ERROR CONVERTING VPL TO IDAL  */ 08150002
*               4 IOMPGFIX BIT(1),  /* PAGES FIXED                   */ 08200002
*               4 IOMCSW   BIT(1),  /* CSW ADDRESS NOT VALID         */ 08250002
*               4 IOMDDR   BIT(1),  /* DYNAMIC DEVICE RECONFIGURATION*/ 08300002
*               4 IOMCPRB  BIT(1),  /* PROBLEM STATE CALLER  @ZA09130*/ 08310037
*               4 *        BIT(2),  /* RESERVED              @ZA09130*/ 08315037
*               4 IOMEEXIT BIT(1),  /* END APPENDAGE EXIT    @ZA02276*/ 08320037
*               4 IOMIRBSW BIT(1),  /* ASYNCH PROCESSING SCH @ZA02276*/ 08330037
*               4 *        BIT(2),  /* RESERVED              @ZA02276*/ 08340037
*             3 IOMSTIND   BIT(8),  /* STATUS INDICATORS             */ 08400002
*               4 IOMAMUSE BIT(1),  /* IOMB CURRENTLY IN USE         */ 08450002
*               4 IOMEOVW  BIT(1),  /* EOV WAITING FOR IOMB          */ 08500002
*               4 IOMEOVTS BIT(1),  /* EOV HAS SET IOMLOCK           */ 08550002
*               4 IOMEOVXC BIT(1),  /* END OF VOLUME INDICATOR       */ 08600002
*               4 IOMLLOCK BIT(1),  /* LOCAL LOCK HELD               */ 08610002
*               4 IOMSLOC  BIT(1),  /* SALLOC HELD           @Y30SDLC*/ 08620037
*               4 IOMSRBM  BIT(1),  /* USER IN SRB MODE      @Y30SDLP*/ 08630037
*               4 IOMSR    BIT(1),  /* SUSPEND/RESUME IND    @Z40GSDT*/ 08680004
*           2 IOMCKEY    CHAR(1),   /* USER KEY FOR APPENDAGE USE    */ 08700002
*           2 IOMPFERR   CHAR(1),   /* RETURN CODE FROM PAGE FIX     */ 08750002
*           2 IOMLOCK    CHAR(1),   /* END-OF-VOLUME LOCK            */ 08800002
*           2 IOMNMOD    PTR(16),   /* NUMBER OF MODULES TO BE FIXED */ 08850002
*           2 IOMNBUF    PTR(16),   /* NUMBER OF BUFFERS             */ 08900002
*           2 IOMNSEG    PTR(16),   /* NUMBER OF CHANNEL PGM SEGMENTS*/ 08950002
*           2 IOMSAVER   BDY(WORD), /* 16 WORD SAVE AND WORK AREA    */ 09000002
*             3 IOMSAVE0 PTR(31),                                       09050002
*             3 IOMSAVE1 PTR(31),                                       09100002
*             3 IOMSAVE2 PTR(31),                                       09150002
*             3 IOMSAVE3 PTR(31),                                       09200002
*             3 IOMSAVE4 PTR(31),                                       09250002
*             3 IOMSAVE5 PTR(31),                                       09300002
*             3 IOMSAVE6 PTR(31),                                       09350002
*             3 IOMSAVE7 PTR(31),                                       09400002
*             3 IOMSAVE8 PTR(31),                                       09450002
*             3 IOMSAVE9 PTR(31),                                       09500002
*             3 IOMSAVEA PTR(31),                                       09550002
*             3 IOMSAVEB PTR(31),                                       09600002
*             3 IOMSAVEC PTR(31),                                       09650002
*             3 IOMSAVED PTR(31),                                       09700002
*             3 IOMSAVEE PTR(31),                                       09750002
*             3 IOMSAVEF PTR(31),                                       09800002
*           2 IOMNXT1    PTR(31),   /* POINTER TO NEXT IOMB ON CHAIN */ 09850002
*           2 IOMUFLD    PTR(31),   /* USER FIELD   -                   09860004
*                                      PTR TO IDAIOMBX FOR REC MGMT  */ 09900002
*           2 IOMSRBP    PTR(31),   /* ADDR OF SUSPENDED RB  @Z40GSDT*/ 09950004
*           2 IOMSTCB    PTR(31);   /* TCB FOR SUSPENDED RB  @Z40GSDT*/ 10000004
