BPXYIOCC — Ioctl command definitions

BPXYIOCC is composed only of EQUates. DSECT= is allowed but ignored.

  
         BPXYIOCC   ,
** BPXYIOCC: Ioctl Command Constant Definitions                         
**  Used By: Ioctl syscalls                                             
*   Ioctl command constants - Range 1-255 reserved for OpenMVS          
*  Authorized/Tcpip CMD values                                          
IOCC#TCI             EQU   5000 Cmd for Tcpip Initialization            
IOCC#TCC             EQU   5001 Cmd for Complete Tcpip Initialization   
IOCC#TCS             EQU   5002 Cmd for Tcpip Path Sever                
IOCC#TCR             EQU   5003 Cmd for Tcpip Reply/Post call           
IOCC#TCG             EQU   5004 Cmd for Tcpip SiGnal call         @p3a  
IOCC#TCCE            EQU   5006 Cmd for Tcpip End Registration    @D5A  
SIOCMSDELRT          EQU   5007 Cmd for Delete Route                    
*                                         (Pre-Router wrap)       @D5A  
SIOCMSADDRT          EQU   5008 Cmd for Add Route                       
*                                         (Pre-Router wrap)       @D5A  
SIOCMSSIFADDR        EQU   5009 Cmd for Set Interface address           
*                                         (Pre-Router wrap)       @D5A  
SIOCMSSIFFLAGS       EQU   5010 Cmd for Set Interface Flags             
*                                         (Pre-Router wrap)       @D5A  
SIOCMSSIFDSTADDR     EQU   5011 Cmd for Set point-to-point interface    
*                                 address (Pre-Router wrap)       @D5A  
SIOCMSSIFBRDADDR     EQU   5012 Cmd for Set Broadcast address           
*                                         (Pre-Router wrap)       @D5A  
SIOCMSSIFNETMASK     EQU   5013 Cmd for Set interface network           
*                                 mask for an Internet address          
*                                         (Pre-Router wrap)       @D5A  
SIOCMSSIFMETRIC      EQU   5014 Cmd for Set Interface routing metric    
*                                         (Pre-Router wrap)       @D5A  
SIOCMSRBRTTABLE      EQU   5015 Cmd for Set Routing table required      
*                                         required request              
*                                         (Pre-Router wrap)       @D5A  
SIOMSMETRIC1RT       EQU   5016 Cmd for Set metric1                     
*                                         (Pre-Router wrap)       @D5A  
SIOCMSICMPREDIRECT   EQU   5017 Cmd for Propagating ICMP redirects      
*                                         (Pre-Router wrap)       @D5A  
SIOCSETTKN           EQU   X'8008139A' 5018 Set Tcp/Ip master Tkn @P6A  
*                                                                       
SIOCMSADDRT6         EQU   X'8044F604'     Add IPV6 Route         @DDA  
*                                                                       
SIOCMSDELRT6         EQU   X'8044F605'     Delete IPV6 Route      @DDA  
*                                                                       
SIOCGRT6TABLE        EQU   X'C014F606' Get IPV6 Network Routing         
*                                         Table                   @DDA  
SIOCGRT6TABLE64      EQU   X'C018F606' Get IPV6 Network Routing         
*                                         Table  64-BIT           @PFC  
SIOCMSRBRT6TABLE     EQU   X'8000F607' Rebuild IPV6 Route Tables  @DDA  
*                                                                       
SIOCGHOMEIF6         EQU   X'C014F608'  Get IPV6 Home Interface         
*                                         Configuration           @PBC  
SIOCGHOMEIF664       EQU   X'C018F608'  Get IPV6 Home Interface         
*                                         Configuration 64-Bit    @PFC  
SIOCMSRBHOMEIF6      EQU   X'8000F609' Rebuild IPV6 Home Interface@PBC  
*                                                                       
SIOCMSCHGRT6METRIC   EQU   X'8044F60A' Change IPV6 route's metric @PDA  
*                                                                       
SIOCMSMODHOMEIF6     EQU   X'8008F60B' Modify IPV6 Home Interface @DHA  
*                                                                       
SIOCMSADDRT6V2       EQU   X'8058F60C' Add IPV6 route version 2   @PGA  
*                                                                       
SIOCMSDELRT6V2       EQU   X'8058F60D' Del IPV6 route version 2   @PGA  
*                                                                       
SIOCMSCHGRT6METRICV2 EQU   X'8058F60E' Change IPV6 route's metric @PGA  
*                                                                       
* Connection type and security credentials on TCPIP sockets.      @DRA  
*   Refer to: Comm Svr: IP Programmer's Guide and References.     @DRA  
SIOCGPARTNERINFO     EQU   X'C000F612'  Get Info                  @DRA  
SIOCSPARTNERINFO     EQU   X'8004F613'  Set Optimization          @DRA  
*  Ioctl Command Constants - terminal control                           
TIOCGWINSZ           EQU   X'4008A368'  get window size           @D3A  
TIOCSWINSZ           EQU   X'8008A367'  set window size           @D3A  
TIOCNOTIFY           EQU   X'8001A364'  notify master by packet   @P7A  
*  Constants for argument when TIOCNOTIFY is specified            @P7A  
IOCC#PWBEGIN         EQU   1            Begin secure data         @P7A  
IOCC#PWEND           EQU   2            End   secure data         @P7A  
*                                                                     
* Ioctl command constants - for Router query                      @D5A  
SIOCGRTTABLE         EQU   X'C008C980'  Gets Network Routing Tab  @D5A  
SIOCGRTTABLE64       EQU   X'C00CC980'  Get NRT for 64-Bit C Pgm  @PCA  
*                                                                       
SIOCSETRTTD          EQU   X'8008C981'  Set Socket to be attached to    
*                                         1 TD                    @D5A  
*                                                                       
SIOCMSMODHOMEIF      EQU   X'8008C983'  Modify Home Interface     @DHA  
*                                                                       
SIOCMSMODHOMEIFV2    EQU   X'8016C984'  Modify Home Interface V2  @PIA  
*                                                                       
SIOCMSADDRTV2        EQU   X'8054C985'  Cmd for Add Route V2      @PIA  
*                                                                       
SIOCMSDELRTV2        EQU   X'8054C986'  Cmd for Delete Route V2   @PIA  
*                                                                       
SIOMSMETRIC1RTV2     EQU   X'8054C987'  Cmd for Set Metric1 V2    @PIA  
*                                                                       
FIONBIO              EQU   X'8004A77E'  set/reset nonblock I/O          
FIONREAD             EQU   X'4004A77F'  get number of readable bytes    
*                                     available                         
FIONWRITE            EQU   X'4004A78A'  get number of writeable bytes   
*                                     available                   @DIA  
FIOASYNC             EQU   X'8004A77D'  set/clear async I/O       @D5A  
FIOSETOWN            EQU   X'8004A77C'  set owner                 @D5A  
FIOGETOWN            EQU   X'4004A77B'  get owner                 @D5A  
SECIGET              EQU   X'4010E401'  get security information        
SECIGET_T            EQU   X'4028E403'  Get peer task security    @DIA  
SIOCTIEDESTHRD       EQU   X'8004E404'  Tie descriptor to thread  @DIA  
SIOCSECENVR          EQU   X'C012A78B'  SET/GET Client Security   @DLA  
*                                        Environment              @DLA  
SIOCADDRT            EQU   X'8030A70A'  IBM use only, Add routing       
*                                     table entry                       
SIOCATMARK           EQU   X'4004A707'  Is current location pointing    
*                                     to out-of-band data?              
SIOCSPGRP            EQU   X'8004A708'  Set process group         @DDA 
SIOCGPGRP            EQU   X'4004A709'  Get process group         @DDA 
SIOCDELRT            EQU   X'8030A70B'  IBM use only, Delete routing    
*                                     table entry                       
SIOMETRIC1RT         EQU   X'8030A70C'  IBM use only, Set metric1 @D5A  
SIOCSIFADDR          EQU   X'8020A70C'  Set Network interface addr@D5A  
SIOCGIFADDR          EQU   X'C020A70D'  Get Network interface address   
SIOCGIFBRDADDR       EQU   X'C020A712'  Get Network interface           
*                                     Broadcast Address                 
SIOCSIFBRDADDR       EQU   X'8020A713'  Sets Network interface          
*                                     Broadcast Address           @D5A  
SIOCGIFCONF          EQU   X'C008A714'  Get Network interface Config    
SIOCGIFCONF64        EQU   X'C00CA714'    for 64-Bit C Pgms             
SIOCGIFCONF6         EQU   X'C018A722'  Get IPv6 Network IfConf  @DJA   
*                                                                       
SIOCGIFMTU           EQU   X'C020A726'  Get MTU Size             @DQA   
*                                                                       
SIOCGIFDSTADDR       EQU   X'C020A70F'  Get Network interface           
*                                     Destination Address               
SIOCGIFFLAGS         EQU   X'C020A711'  Get Network interface Flags     
SIOCGIFMETRIC        EQU   X'C020A717'  IBM use only, Gets Network      
*                                     Interface Routing Metric          
SIOCGIFNETMASK       EQU   X'C020A715'  Get Network interface           
*                                     Network Mask                      
SIOCSIFNETMASK       EQU   X'8020A716'  Set Network interface           
*                                     Network Mask                @D5A  
SIOCSIFDSTADDR       EQU   X'8020A70E'  IBM use only, Sets Network      
*                                     Interface Destination Address     
SIOCSIFFLAGS         EQU   X'8020A710'  IBM use only, Sets Network      
*                                     Interface Flags                   
SIOCSIFMETRIC        EQU   X'8020A718'  IBM use only, Sets Network      
*                                     Interface Routing Metric          
SIOCSARP             EQU   X'8024A71E'  IBM use only, Sets ARP          
*                                     Entry                      @D5A   
SIOCGARP             EQU   X'C024A71F'  IBM use only, Gets ARP          
*                                     Entry                      @D5A   
SIOCDARP             EQU   X'8024A720'  IBM use only, Deletes ARP       
*                                     Entry                      @D5A   
SIOCSHIWAT           EQU   X'8004A700'  Set High Water Mark             
*                                         (Not Supported)        @D5A   
SIOCGHIWAT           EQU   X'4004A701'  Get High Water Mark             
*                                         (Not Supported)        @D5A   
SIOCSLOWAT           EQU   X'8004A702'  Set Low Water Mark              
*                                         (Not Supported)        @D5A   
SIOCGLOWAT           EQU   X'4004A703'  Get Low Water Mark              
*                                         (Not Supported)        @D5A   
FIOFCTLNBIO          EQU   X'0000E402'  change blocking/nonblocking     
*               STREAMS                                                 
IOCC#ILINK           EQU   X'4004E21A'  I_LINK                   @D9A   
*               DFS ACLs                                                
IOCC#EDITACL         EQU   X'2000C100'  Edit ACL                 @P5A   
*               RACF ACLs                                               
SETFACL              EQU   X'0000D301'  SET FILE ACL             @DBA   
IOCC#SETFACL         EQU   X'0000D301'  SET FILE ACL             @DCA   
GETFACL              EQU   X'0000D302'  GET FILE ACL             @DBA   
IOCC#GETFACL         EQU   X'0000D302'  GET FILE ACL             @DCA   
*                                                                     
*   Get Port of Entry for Multilevel Security                     @DDA 
*   Get Port of Entry Attributes for a Socket Resource            @DDA 
SIOCGSOCKPOEATTRS    EQU   X'4000D305'                           @DDA   
*   Get Port of Entry Attributes for a non-Socket Resource        @DGA 
SIOCGFDPOEATTRS      EQU   X'4000D306'                           @DDA   
*   Get Multilevel Security info for a Socket Resource           @DKA   
SIOCGSOCKMLSINFO     EQU   X'4000D307'                           @DKA   
*  Constants for argument when FIONBIO is specified                     
IOCC#BLOCK           EQU   X'00000000'  Allow blocking to occur         
IOCC#NONBLOCK        EQU   X'00000001'  Do not allow blocking to occur  
*  Constants for argument when SIOCTIEDESTHRD is specified        @DIA 
SIOC#TIESD           EQU   X'00000001'  Tie descriptor to thread  @DIA 
SIOC#UNTIESD         EQU   X'00000000'  UnTie descriptor from thrd@DIA 
*  Constants for argument when SIOCSECENVR is specified           @DLA 
SIOC#SETENVR         EQU   X'00000001'  SET Security Environment  @DLA 
SIOC#GETENVR         EQU   X'00000002'  GET Security Envrionment  @DLA 
*                                                                      
********************************************************************** 
*                                                                    *
*                        I P v 6                              @DDA *
*                                                                    * 
********************************************************************** 
*        IPv6 Ioctls                                                    
SIOCGIFVERSION       EQU   X'4000F601'  Get Interface Ver   Out         
SIOCGSRCIPADDR       EQU   X'C000F602'  Get Source Addr   InOut         
SIOCGIFNAMEINDEX     EQU   X'4000F603'  Get If Name/Index   Out         
                                                                        
*********************************************************************** 
*                                                                     * 
* Get and Set ip_msfilter                                             * 
*                                                                     * 
****************************************************************** @DMA 
* Get and Set ip_msfilter (IPv4 only)                              @DMA 
SIOCGIPMSFILTER      EQU   X'C000A724'                             @DMA 
SIOCSIPMSFILTER      EQU   X'8000A725'                             @DMA 
*********************************************************************** 
*                                                                     * 
* Get and Set group_filter                                            * 
*                                                                     * 
****************************************************************** @DMA 
* Get and Set group_filter (IPv6 or IPv4)                          @DMA 
SIOCGMSFILTER        EQU   X'C000F610'                             @DMA 
SIOCSMSFILTER        EQU   X'8000F611'                             @DMA 
                                                                        
*********************************************************************** 
* Packet mode or Extended Packet mode data record control data.   @D7C* 
*                                                                     * 
* Returned on master read when no control information is pending.     * 
* In packet mode one byte is returned.  In extended packet mode, four * 
* bytes are returned.  Data follows the control data.                 * 
*********************************************************************** 
TIOC_DATA            EQU   X'00'        Data packet                @D3A 
*********************************************************************** 
* Packet mode control byte - returned on master read()            @D7C* 
*                                                                     * 
* A single control byte is returned in packet mode.  In extended      * 
* packet mode, four bytes are returned, with the non-extended bits    * 
* in the fourth byte.  The equates below can be used against the      * 
* fourth byte (with TM, OI and NI) or against all four bytes (with    * 
* OC, NC, etc.).                                                      * 
*********************************************************************** 
TIOCPKT_FLUSHREAD    EQU   X'01'        Input was flushed          @D3A 
TIOCPKT_FLUSHWRITE   EQU   X'02'        Output was flushed         @D3A 
TIOCPKT_STOP         EQU   X'04'        Stop output                @D3A 
TIOCPKT_START        EQU   X'08'        Start output               @D3A 
TIOCPKT_NOSTOP       EQU   X'10'        STOP/START not standard    @D3A 
TIOCPKT_DOSTOP       EQU   X'20'        STOP/START standard        @D3A 
*********************************************************************** 
* Extended Packet mode control byte - returned on master read()   @D7C* 
*********************************************************************** 
TIOCXPKT_PASSTHRU    EQU   X'00000100'  3270 Passthrough mode     @D7C  
TIOCXPKT_NOPASSTHRU  EQU   X'00000200'  Not 3270 Passthrough mode @D7C  
TIOCXPKT_ECHO        EQU   X'00000400'  ECHO set on               @D7A  
TIOCXPKT_NOECHO      EQU   X'00000800'  ECHO set off              @D7A  
TIOCXPKT_CHCP        EQU   X'00001000'  Code page change          @D7A  
TIOCXPKT_PWBEGIN     EQU   X'00002000'  Begin secure data         @P7A  
TIOCXPKT_PWEND       EQU   X'00004000'  End   secure data         @P7A  
**********************************************************************  
* Get Pathname                                                    @DOA  
IOCC#GETPATHNAME     EQU   17           Absolute name             @DOA  
IOCC#GETPATHNAMEREL  EQU   19           Relative name             @DOA  
**********************************************************************  
* UPDTOFTE                                                        @D8C  
**********************************************************************  
IOCC#UPDTOFTE        EQU   20         UPDATE OFTE CMD             @D8A  
*                                                                 @DDA  
         AIF   ('&DSECT' EQ 'NO').B411                        @DDA  
IOCUOFTE             DSECT ,          ARGUMENT BUFFER             @DDA  
         AGO   .C411                                              @DDA  
.B411    ANOP  ,                                                  @DDA  
IOCUOFTE             DS    0F         ARGUMENT BUFFER             @DDA  
.C411    ANOP  ,                                                  @DDA  
*                                                                 @DDA  
IOCUOCMD             DS     F         SUBCMD                      @D8A  
IOCUO#READ           EQU    1           READ                      @D8A  
IOCUO#WRITE          EQU    2           WRITE                     @D8A  
IOCUO#CS             EQU    3           COMPARE & SWAP        @D8A  
IOCUOVALUEBUFF       DS     0F        VALUE TO/FROM STATE AREA    @D8A  
IOCUOVOFFSET         DS     F            OFFSET  (>=0)         @D8A  
IOCUOVLEN            DS     F            LENGTH  (>0)          @D8A  
IOCUOVDATA           DS     0C           DATA                     @D8A  
*                                                                 @DDA  
         AIF   ('&DSECT' EQ 'NO').B412                        @DDA  
IOCUOCSBUFF          DSECT ,          COMPARE VALUE FOR CS SUBCMD @DDA  
         AGO   .C412                                              @DDA  
.B412    ANOP  ,                                                  @DDA  
IOCUOCSBUFF          DS    0F         COMPARE VALUE FOR CS SUBCMD @DDA  
.C412    ANOP  ,                                                  @DDA  
*                                                                 @DDA  
IOCUOCSOFFSET        DS     CL4          OFFSET (BYTE BDY)        @D8A  
IOCUOCSLEN           DS     CL4          LENGTH (BYTE BDY)        @D8A  
IOCUOCSDATA          DS     0C           DATA                     @D8A  
*                                                                       
IOCC#REGFILEINT      EQU   21         REGISTER FILE INTR          @DAA  
IOCC#FASTPATH        EQU   22         Set FastPath Ops            @P9A  
*                                                                       
IOCC#DEVCONSOLE      EQU   23         /dev/console behavior       @DEA  
IOCC#DEVCONSUPPRESS  EQU   1          /dev/console - set suppress @DEA  
IOCC#DEVCONUNSUPPRS  EQU   0          /dev/console -   unsuppress @DEA  
*                                                                       
IOCC#DEVFD           EQU   27         /dev/fd behavior            @DFA  
*                     LFS/Cinet Level Ioctls                      @DDA  
IOCC#GETSTACKS       EQU   24         Get Stack Names             @DDA  
IOCC#DIRIOCTL        EQU   25         Directed Ioctl              @DDA  
IOCC#GRTRSELECT      EQU   26         Get PreRtr Select           @DDA  
*                                                                       
*********************************************************************** 
*                                                                 @DDA* 
*   Iocc#GetStacks -                                                  *
*      Get the names of the stacks that are attached to a socket.     *
*                                                                     * 
*********************************************************************** 
*                                                                       
         AIF   ('&DSECT' EQ 'NO').B413                        @DDA  
IOCSTACKINFO         DSECT ,                                      @DDA  
         AGO   .C413                                              @DDA  
.B413    ANOP  ,                                                  @DDA  
IOCSTACKINFO         DS    0F                                     @DDA  
.C413    ANOP  ,                                                  @DDA  
IOCSTACKINFOHEADER   DS    CL8                                          
                     ORG   IOCSTACKINFOHEADER                           
IOCSTACKINFOFLAGS    DS    X             Flags                          
IOCSTACKCINET        EQU   X'80'         Cinet socket                   
                     DS    CL3                                          
IOCSTACKENTRIES      DS    F             Number of Names returned       
                     ORG                                                
IOCSTACKNAMES        DS    CL16          Array of stack names           
*********************************************************************** 
*   Array of IOCSTACKNAMES                                            * 
*********************************************************************** 
*                                                                       
         AIF   ('&DSECT' EQ 'NO').B414                        @DDA  
IOCSTACKNAMESD       DSECT ,                                      @DDA  
         AGO   .C414                                              @DDA  
.B414    ANOP  ,                                                  @DDA  
IOCSTACKNAMESD       DS    0F                                     @DDA  
.C414    ANOP  ,                                                  @DDA  
IOCSTACKNAME         DS    CL8           Stack name                     
IOCSTACKTDINDEX      DS    X             Cinet Stack TdIndex            
IOCSTACKFLAGS        DS    X             Flags                          
IOCSTACK_ACTIVE          EQU  X'80'      Active                         
IOCSTACK_IPV6_SUPPORT    EQU  X'40'      IPv6 is supported              
IOCSTACK_IPV6_INTERFACES EQU  X'20'      IPv6 Home Interfaces           
IOCSTACK_IPV4_INTERFACES EQU  X'10'      IPv4 Home Interfaces           
                     DS    CL6                                          
                                                                        
*********************************************************************** 
*                                                                 @DDA* 
*   Iocc#DirIoctl  - Directed Ioctl                                   * 
*      Passes the imbedded ioctl to the specified stack.              * 
*                                                                     * 
*********************************************************************** 
*                                                                       
         AIF   ('&DSECT' EQ 'NO').B415                        @DDA  
IOCDIRIOCTL          DSECT ,                                      @DDA  
         AGO   .C415                                              @DDA  
.B415    ANOP  ,                                                  @DDA  
IOCDIRIOCTL          DS    0F                                     @DDA  
.C415    ANOP  ,                                                  @DDA  
IOCDIRHDR            DS    CL16                                         
                     ORG   IOCDIRHDR                                    
IOCDIRNAME           DS    CL8    Target Stack Name                     
IOCDIRCMD            DS    XL4    Imbedded ioctl Command                
IOCDIRARGLEN         DS    F      Imbedded ioctl Argument Length        
                     ORG                                                
IOCDIRARG            DS    C      Imbedded ioctl Argument               
                                                                        
*********************************************************************** 
*                                                                 @DDA* 
*   Iocc#GRtrSelect - Get Cinet PreRouter's selected stack for each   * 
*          of an array of specified destination IP addresses.         * 
*                                                                     * 
*********************************************************************** 
*                                                                       
         AIF   ('&DSECT' EQ 'NO').B416                        @DDA  
IOCRTRSELECT         DSECT ,                                      @DDA  
         AGO   .C416                                              @DDA  
.B416    ANOP  ,                                                  @DDA  
IOCRTRSELECT         DS    0F                                     @DDA  
.C416    ANOP  ,                                                  @DDA  
IOCRTRIPADDR         DS    CL16     Input IP Address                    
IOCRTRSTACK          DS    CL8      Output Selected Stack Name          
                     ORG   IOCRTRSTACK                                  
IOCRTRERRTEST        DS    CL1      Error if = 0                        
                     DS    CL1                                          
IOCRTRERRNO          DS    XL2      Error RC (Errno)                    
IOCRTRRSN            DS    XL4      Error Rsn (ErrnoJr)                 
                     ORG                                                
                                                                        
IOCRTRERROR          EQU   X'00'  IocRtrErrTest value to test for error 
                                                                        
*********************************************************************** 
*                                                                 @DDA* 
*   SiocGIfNameIndex - Get Interface Name/Index Table                 * 
*                                                                     * 
*********************************************************************** 
*                                                                       
         AIF   ('&DSECT' EQ 'NO').B418                        @DDA  
IF_NAMEINDEXENTRY    DSECT ,                                      @DDA  
         AGO   .C418                                              @DDA  
.B418    ANOP  ,                                                  @DDA  
IF_NAMEINDEXENTRY    DS    0F                                     @DDA  
.C418    ANOP  ,                                                  @DDA  
IF_NIINDEX           DS    F         Interface Index                    
                     ORG   IF_NIINDEX                                   
IF_NITDINDEX         DS    H         CInet Td Index                     
IF_NIIFINDEX         DS    H         Stack Interface Index              
                     ORG                                                
IF_NINAME            DS    CL16      Interface Name, blank padded       
IF_NIEXT             DS    CL4                                          
                     ORG   IF_NIEXT                                     
IF_NINAMETERM        DS    CL1       Null for C for Name len=16         
IF_NIFLAGS           DS    X         Name Index Flags             @PKA  
IF_NIOSM             EQU   X'80'     1 = OSM Interface            @PKA  
                     DS    CL2       Reserved                     @PKC  
                     ORG                                                
IF_NAMEINDEXENTRYL   EQU   *-IF_NAMEINDEXENTRY                    @DDA  
                                                                        
         AIF   ('&DSECT' EQ 'NO').B417                        @DDA  
IF_NAMEINDEX         DSECT ,                                      @DDA  
         AGO   .C417                                              @DDA  
.B417    ANOP  ,                                                  @DDA  
IF_NAMEINDEX         DS    0F                                     @DDA  
.C417    ANOP  ,                                                  @DDA  
IF_NIHEADER          DS    2F                                           
                     ORG   IF_NIHEADER                                  
IF_NITOTALIF         DS    F      Total Active Interfaces on System     
IF_NIENTRIES         DS    F      Number of entries returned            
                     ORG                                                
IF_NITABLE           DS    CL(IF_NAMEINDEXENTRYL)                       
                                                                        
*********************************************************************** 
*                                                                @DDA * 
*   SiocGSockPoeAttrs - Socket Port of Entry Attributes               * 
*                                                                     * 
*********************************************************************** 
*                                                                       
         AIF   ('&DSECT' EQ 'NO').B419                        @DDA  
IOCPOEATTR           DSECT ,                                      @DDA  
         AGO   .C419                                              @DDA  
.B419    ANOP  ,                                                  @DDA  
IOCPOEATTR           DS    0F                                     @DDA  
.C419    ANOP  ,                                                  @DDA  
IOCPOEPEERIPADDR     DS    CL16          Peer IP Address                
                     ORG   IOCPOEPEERIPADDR                             
IOCPOEPEERIPV6PREFIX DS    CL12                                         
IOCPOEPEERIPV4ADDR   DS    F                                            
                     ORG                                                
IOCPOETERMID         DS    CL8           TERMINAL Profile Name          
IOCPOELABEL          DS    CL8           Security Label                 
IOCPOEPROFILE        DS    CL64          SERVAUTH Resource Name         
                                                                        
*********************************************************************** 
*                                                                @DKA * 
*   SiocGSockMLSINFO  - Socket Multilevel Security Information        * 
*     IocPoeProfile returns full resource name                        * 
*     IocMlsProfile returns actual profile name in use                * 
*                                                                     * 
*********************************************************************** 
*                                                                       
         AIF   ('&DSECT' EQ 'NO').B420                        @DKA  
IOCMLSINFO           DSECT ,                                      @DKA  
         AGO   .C420                                              @DKA  
.B420    ANOP  ,                                                  @DKA  
IOCMLSINFO           DS    0F                                     @DKA  
.C420    ANOP  ,                                                  @DKA  
IOCMLSMVSNAME        DS    CL8           MVS System Name          @DKA  
IOCMLSSTKNAME        DS    CL8           Stack Job Name           @DKA  
IOCMLSNAZNAME        DS    CL8           NetAccess Zone Name      @DKA  
IOCMLSUSRNAME        DS    CL8           Caller UserID            @DKA  
IOCMLSUSRLBL         DS    CL8           Caller Security Label    @DKA  
IOCMLSSTKLBL         DS    CL8           Stack  Security Label    @DKA  
IOCMLSNAZLBL         DS    CL8           Zone   Security Label    @DKA  
IOCMLSCONLBL         DS    CL8           Connct Security Label    @DKA  
IOCMLSPROFILE        DS    CL64          SERVAUTH Profile Name    @DKA  
                                                                        
*---------------------------------------------------------------------* 
*     Multicast Source Filter Structures from RFC 3678                * 
*                                                                     * 
*   *** These require the inclusion of BPXYSOCK ***                   * 
*----------------------------------------------------------------- @DMA 
*                                                                  @DMA 
         AIF   ('&MCAST' EQ 'NO').NOMCAST                      @DNA 
*                                                                  @DMA 
* SiocGIPMSFilter  - Get a list of multicast source addresses      @DMA 
* SiocSIPMSFilter  - Set a list of multicast source addresses      @DMA 
*                                                                  @DMA 
         AIF   ('&DSECT' EQ 'NO').B421                         @DMA 
IP_MSFILTER DSECT ,                                                @DMA 
         AGO   .C421                                               @DMA 
.B421    ANOP  ,                                                   @DMA 
IP_MSFILTER DS 0F                                                  @DMA 
.C421    ANOP  ,                                                   @DMA 
IMSF_HEADER DS 0C                 Header                           @DMA 
IMSF_MULTIADDR DS CL4             IP Multicast address of group    @DMA 
IMSF_INTERFACE DS CL4             Local IP addr of interface       @DMA 
IMSF_FMODE DS CL4                 Filter mode                      @DMA 
IMSF_NUMSRC DS CL4                Number of sources in src_list    @DMA 
IMSF_HEADER_LEN EQU *-IP_MSFILTER                                  @DMA 
IMSF_SLIST DS 0CL(L'IMSF_SRCADDR) Start of source list             @DMA 
*                                                                  @DMA 
         AIF   ('&DSECT' EQ 'NO').B422                         @DMA 
IMSF_SRCENTRY DSECT ,                                              @DMA 
         AGO   .C422                                               @DMA 
.B422    ANOP  ,                                                   @DMA 
IMSF_SRCENTRY DS 0F               Source list entry                @DMA 
.C422    ANOP  ,                                                   @DMA 
IMSF_SRCADDR DS CL4               Source IP address                @DMA 
IMSF_SRCENTRY_LEN EQU *-IMSF_SRCENTRY Length                       @PHA 
*                                                                  @DMA 
*                                                                  @DMA 
* SiocGMSFilter  - Get a list of multicast source addresses        @DMA 
* SiocSMSFilter  - Set a list of multicast source addresses        @DMA 
*                                                                  @DMA 
*********************************************************************** 
*                                                                     * 
* GROUP_REQ STRUCTURE                                                 * 
*                                                                     * 
****************************************************************** @DMA 
         AIF   ('&DSECT' EQ 'NO').B423                         @DMA 
GROUP_FILTER DSECT ,                                               @DMA 
         AGO   .C423                                               @DMA 
.B423    ANOP  ,                                                   @DMA 
GROUP_FILTER DS 0F                                                 @DMA 
.C423    ANOP  ,                                                   @DMA 
GF_HEADER DS 0C                   Header                           @DMA 
GF_INTERFACE DS CL4               Interface index                  @DMA 
         DS    CL4                Padding                          @DMA 
GF_GROUP DS    CL(L'SOCKADDR_STORAGE) Group address                @DMA 
GF_FMODE DS    CL4                Filter mode                      @PHM 
GF_NUMSRC DS   CL4                Number of sources                @PHM 
GF_HEADER_LEN EQU *-GROUP_FILTER                                   @PHM 
GF_SLIST DS 0CL(L'GF_SRCENTRY)    Start of source list             @DMA 
         ORG   GF_GROUP                                            @DMA 
GF_MULTISOCKADDR4 DS CL(SOCK#LEN+SOCK_SIN#LEN)                     @DMA 
         ORG   GF_GROUP                                            @DMA 
GF_MULTISOCKADDR6 DS CL(SOCK#LEN+SOCK_SIN6#LEN)                    @DMA 
*                                                                  @DMA 
         AIF   ('&DSECT' EQ 'NO').B424                         @DMA 
GF_SRCENTRY DSECT ,                                                @DMA 
         AGO   .C424                                               @DMA 
.B424    ANOP  ,                                                   @DMA 
GF_SRCENTRY DS 0F                 Source list entry                @DMA 
.C424    ANOP  ,                                                   @DMA 
GF_SRCADDR DS CL(L'SOCKADDR_STORAGE) Source address                @DMA 
GF_SRCENTRY_LEN EQU *-GF_SRCENTRY  Length                          @PHA 
         ORG   GF_SRCADDR                                          @DMA 
GF_SRCADDR4 DS CL(SOCK#LEN+SOCK_SIN#LEN)                           @DMA 
         ORG   GF_SRCADDR                                          @DMA 
GF_SRCADDR6 DS CL(SOCK#LEN+SOCK_SIN6#LEN)                          @DMA 
*                                                                  @DMA 
MCAST_INCLUDE      EQU   0                                         @DNA 
MCAST_EXCLUDE      EQU   1                                         @DNA 
MCAST_NUMSRC_MAX   EQU  64            Max number of sources for    @PHA 
*                                      GF_NUMSRC and IMSF_NUMSRC   @DPA 
*                                                                  @DNA 
.NOMCAST ANOP  ,              End of Multicast Structures          @DNA 
*********************************************************************** 
* SIOCGRTTABLE - Obtain route information. Returns information for    * 
*                IPv4 routes from the TCP/IP stack's main route table.* 
*                                                                     * 
*                The Route entry structures returned can either be    * 
*                Version 1, Version 2, or Version 3 structures.       * 
*                  Version 1                                          * 
*                    - Field IOCN_IPADDRRTMSGHOMEIF contains an IP    * 
*                      address                                        * 
*                  Version 2                                          * 
*                    - IOCN_RTMSGTYPE structure is the same size      * 
*                      as Version 1                                   * 
*                    - Field IOCN_IPADDRRTMSGHOMEIF contains an       * 
*                      interface index.                               * 
*                  Version 3                                          * 
*                    - IOCN_RTMSGTYPE structure is larger than the    * 
*                      Version 1 or 2 size                            * 
*                    - Field IOCN_IPADDRRTMSGHOMEIF contains an       * 
*                      interface index                                * 
*                    - New MTU field added                            * 
*                The RTEV3 macro variable controls whether the        * 
*                Version 3 Route entry structure is generated by      * 
*                this macro.  By default, the macro generates the     * 
*                Version 3 Route entry structure.                     * 
*                                                                     * 
*                When requesting Version 2 or Version 3 output in a   * 
*                CINET environment, invoking applications must either * 
*                have stack affinity or use the IOCC#DIRIOCTL to      * 
*                invoke this ioctl.  Otherwise, the output from the   * 
*                first stack will be in the requested version format  * 
*                but, the output from subsequent stacks will be in    * 
*                Version 1 format.                                    * 
*                                                                     * 
* Input     - Input to the ioctl is a buffer length and a buffer      * 
*             address.  By default, Version 1 Route entry structures  * 
*             are returned.                                           * 
*                                                                     * 
*             To obtain Version 2 or 3 Route entry output, an         * 
*             IOCN_RTMSGHDRTYPE structure must be setup at the        * 
*             beginning of the output buffer, before invoking the     * 
*             ioctl.  The following fields must be set:               * 
*               - IOCN_RTMSGHDRVER set to Version 2 or 3              * 
*               - IOCN_RTMSGHDREYEID set to the correct eyecatcher    * 
*                 value.                                              * 
*                                                                     * 
*                                                                     * 
* Output    - Return_value = 0                                        * 
*                  - IOCN_RTMSGHDRTYPE structure returned with        * 
*                    field IOCN_RTMSGHDRNUMENT set to the number      * 
*                    of Route entry structures returned.  In the      * 
*                    output buffer, the header is followed by the     * 
*                    Route entry structures.                          * 
*                  - The IOCN_RTMSGHDRVER and IOCN_RTMSGHDRSUBVER     * 
*                    fields indicate whether Version 1, 2, or 3       * 
*                    of the Route entry structures was returned.      * 
*                  - IOCN_RTMSGHDRNUMENT - number of either Version   * 
*                    1, 2, or 3 Route entry structures returned.      * 
*           - Return_value = -1                                       * 
*                  - Return_code = EBADMSG                            * 
*                    This means that the output buffer is not large   * 
*                    enough for one IOCN_RTMSGHDRTYPE structure       * 
*                    and one Route entry structure.                   * 
*                  - Return_code = ERANGE                             * 
*                    This means that the output buffer is not large   * 
*                    enough for all the Route entry structures which  * 
*                    can be returned. In this case, only the          * 
*                    IOCN_RTMSGHDRTYPE structure will be returned.    * 
*                    Field IOCN_RTMSGHDRNUMENT in this header will    * 
*                    contain the number of Route entry structures     * 
*                    which can be returned.  Field IOCN_RTMSGHDRVER   * 
*                    will indicate which version of the Route entry   * 
*                    structures will be returned.                     * 
*                                                                @PIA * 
*********************************************************************** 
*                                                                @PIA   
* Header structure - IOCN_RTMSGHDRTYPE                           @PIA   
*                                                                @PIA   
         AIF   ('&DSECT' EQ 'NO').B425                       @PIA   
IOCN_RTMSGHDRTYPE    DSECT ,      Route header                   @PIA   
         AGO   .C425                                             @PIA   
.B425    ANOP  ,                                                 @PIA   
IOCN_RTMSGHDRTYPE    DS    0F     Route header                   @PIA   
.C425    ANOP  ,                                                 @PIA   
*                                                                       
IOCN_RTMSGHDRLEN     DS     H     Length of header               @PIA   
IOCN_RTMSGHDRVER     DS     FL1   Version of Route entry structures     
*                                 returned                       @PIA   
                     DS     CL1   Reserved                       @PIA   
IOCN_RTMSGHDREYEID   DS     CL4   Eye catcher 'Rmsg'             @PIA   
IOCN_RTMSGHDREYEC    EQU    C'Rmsg'  Eye catcher constant        @PIA   
IOCN_RTMSGHDRSUBVER  DS     FL1   Version of Route entry structures     
*                                 returned                       @PIA   
                     DS     CL3   Reserved                       @PIA   
IOCN_RTMSGHDRIOCTLNUM  DS   F     Set to x'10' to indicate the          
*                                 SIOCGRTTABLE ioctl             @PIA   
IOCN_RTMSGHDRNUMENT  DS     F     Output - number of Route entries      
*                                 returned                       @PIA   
                     DS     CL52  Reserved                       @PIA   
IOCN_RTMSGHDR#LEN    EQU    *-IOCN_RTMSGHDRTYPE  Length of header@PIA   
*                                                                       
* Version constants for fields IOCN_RTMSGHDRVER  and                    
* IOCN_RTMSGHDRSUBVER                                            @PIA   
*                                                                       
IOCN_RTMSGTYPEV1     EQU    1       Version 1                    @PIA   
IOCN_RTMSGTYPEV2     EQU    2       Version 2                    @PIA   
IOCN_RTMSGTYPEV3     EQU    3       Version 3                    @PIA   
*                                                                @PIA   
* Version 1 and Version 2 Route entry structure - IOCN_RTMSGTYPE @PIA   
*                                                                @PIA   
         AIF   ('&DSECT' EQ 'NO').B426                       @PIA   
IOCN_RTMSGTYPE       DSECT ,      Route entry structure          @PIA   
         AGO   .C426                                             @PIA   
.B426    ANOP  ,                                                 @PIA   
IOCN_RTMSGTYPE       DS    0F     Route entry structure          @PIA   
.C426    ANOP  ,                                                 @PIA   
*                                                                       
IOCN_IPADDRRTMSGDEST DS     CL4   Destination IP address         @PIA   
IOCN_IPADDRRTMSGMASK DS     CL4   Subnet mask                    @PIA   
IOCN_IPADDRRTMSGGATE DS     CL4   Gateway IP address             @PIA   
IOCN_IPADDRRTMSGHOMEIF  DS  F     Version 1 = IP address         @PIA   
*                                 Other versions = interface            
*                                 index                          @PIA   
IOCN_RTMSGMETRICTYPE DS     F     Metric type is always 1, meaning      
*                                 metric value is in hop counts  @PIA   
IOCN_RTMSGMETRIC     DS     F     Metric value in hop counts     @PIA   
                     DS     CL3   Reserved                       @PIA   
IOCN_RTATTRRTMSG     DS     XL1   Route flags                    @PIA   
IOCN_BRTATTRLOOPBACK EQU    X'80'   1 = Loopback interface       @PIA   
IOCN_BRTATTRLOCAL    EQU    X'40'   1 = Local/Home IP address    @PIA   
IOCN_BRTATTRDYNBUILT EQU    X'10'   1 = Dynamically built, e.g.         
*                                       by ICMP redirect         @PIA   
IOCN_BRTATTRHOST     EQU    X'04'   1 = Host route, 0 = Network         
*                                   route                        @PIA   
IOCN_BRTATTRGATEWAY  EQU    X'02'   1 = Gateway                  @PIA   
IOCN_BRTATTRRTUP     EQU    X'01'   1 = Route is active, 0 = Route      
*                                   is inactive                  @PIA   
IOCN_RTMSGRTETYPE    DS     XL1   Route type                     @PIA   
IOCN_RTOTHER         EQU    1       Other (default, direct)      @PIA   
IOCN_RTLOCAL         EQU    2       Static (configured)          @PIA   
IOCN_RTICMP          EQU    4       ICMP                         @PIA   
IOCN_RTRIP           EQU    8       RIP                          @PIA   
IOCN_RTOSPF          EQU    13      OSPF                         @PIA   
IOCN_RTREPSTAT       EQU    130     Replaceable static           @PIA   
                     DS     CL3   Reserved                       @PIA   
IOCN_RTMSGV1#LEN     EQU    *-IOCN_RTMSGTYPE V1 Route entry len  @PIA   
IOCN_RTMSGV2#LEN     EQU    *-IOCN_RTMSGTYPE V2 Route entry len  @PIA   
        AIF   ('&RTEV3' EQ 'NO').B427                        @PIA   
*                                                                @PIA   
* Version 3 Route entry structure - additional field             @PIA   
*                                                                @PIA   
IOCN_RTMSGMTU        DS     H     Route's MTU value              @PIA   
                     DS     H     Reserved                       @PIA   
                     DS     F     Reserved                       @PIA   
                     DS     F     Reserved                       @PIA   
                     DS     F     Reserved                       @PIA   
IOCN_RTMSGV3#LEN     EQU    *-IOCN_RTMSGTYPE  V3 Route entry len @PIA   
.B427    ANOP  ,                                                 @PIA   
*                                                                       
********************************************************************* 
* IOCN_IFREQ                                                    @DQA* 
*  Mapping that defines the network interface block that is used    *
*  on ioctls that transfer network interface information            *
*                                                                   *
*  This is equivalent to the C ifreq structure from in.h            * 
*  This is the ASM version of the PL/X IOCN_IfType from BPXZIOCN.   * 
*                                                                   * 
********************************************************************* 
*                                                                       
         AIF   ('&DSECT' EQ 'NO').B428                              
IOCN_IFREQ DSECT         Mapping for network interface information      
         AGO   .C428                                                    
.B428    ANOP  ,                                                        
IOCN_IFREQ DS 0F         Mapping for network interface information      
.C428    ANOP  ,                                                        
IOCN_IFTYPE   DS 0F      Structure Name from BPXZIOCN.                  
IOCN_IFNAME   DS CL16     Interface name.                               
IOCN_IFUNION  DS 0CL16    Union of fields:                              
         ORG   IOCN_IFUNION                                             
IOCN_SADDRIF     DS CL16  The address of the interface                  
         ORG   IOCN_IFUNION                                             
IOCN_SADDRIFDEST DS CL16  Destination address in a point to point link  
         ORG   IOCN_IFUNION                                             
IOCN_SADDRIFBROADCAST DS CL16 Address for Broadcasting                  
         ORG   IOCN_IFUNION                                             
IOCN_IFMETRIC    DS F     Interface metric                              
         ORG   IOCN_IFUNION                                             
IOCN_PIFDATA     DS A     Pointer to an area set by TCPIP               
         ORG   IOCN_IFUNION                                             
IOCN_MTUSIZE     DS F     MTU size.  Used with SIOCGIFMTU.              
         ORG   IOCN_IFUNION                                             
IOCN_IFATTRIF    DS 0BL2  Flag area.                                    
*                                                                       
IOCN_IFATTRBYTE1    DS 0CL1                                             
IOCN_BIFATTRSNAP        EQU X'20'                                       
IOCN_BIFATTRTOKBRIDGE   EQU X'10'                                       
IOCN_BIFATTRCHECKSUM    EQU X'04'                                       
IOCN_BIFATTRALLMULTI    EQU X'02'                                       
IOCN_BIFATTRALLPACKSUPT EQU X'01'                                       
         ORG   IOCN_IFATTRBYTE1+1                                       
IOCN_IFATTRBYTE2    DS 0CL1                                             
IOCN_BIFATTRARPNOTSUPT  EQU X'80'                                       
IOCN_BIFATTRRESALLOC    EQU X'40'                                       
IOCN_BIFATTRNOTRAILER   EQU X'20'                                       
IOCN_BIFATTRPTTOPT      EQU X'10'                                       
IOCN_BIFATTRLOOPBACK    EQU X'08'                                       
IOCN_BIFATTRDEBUG       EQU X'04'                                       
IOCN_BIFATTRBROADCAST   EQU X'02'                                       
IOCN_BIFATTRUP          EQU X'01'                                       
*                                                                       
         ORG   IOCN_IFUNION+16                                          
IOCN_IFEND       DS   0C  End of structure                              
IOCN_IFREQ_LEN   EQU *-IOCN_IFREQ Length of Structure                   
IOCN_#IFNAMESIZE EQU 16   Size of the name field                        
*                                                                       
** BPXYIOCC End