z/OS Communications Server: IP IMS Sockets Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Common variables used in PL/I sample programs

z/OS Communications Server: IP IMS Sockets Guide
SC27-3653-00

The CBLOCK common storage area contains the variables that are used in the PL⁄I programs in this section.

 /********************************************************************/
 /*                                                                  */
 /*   MODULE NAME:  CBLOCK - SOKET COMMON VARIABLES                  */
 /*                                                                  */
 /* Copyright:    Licensed Materials - Property of IBM               */
 /*                                                                  */
 /*               "Restricted Materials of IBM"                      */
 /*                                                                  */
 /*               5694-A01                                           */
 /*                                                                  */
 /*               Copyright IBM Corp. 1994, 2010                     */
 /*                                                                  */
 /*               US Government Users Restricted Rights -            */
 /*               Use, duplication or disclosure restricted by       */
 /*               GSA ADP Schedule Contract with IBM Corp.           */
 /*                                                                  */
 /* Part Type:    Enterprise PL/1 for z/OS                          */
 /*                                                                  */
 /* Status:       CSV1R12                                            */
 /*                                                                  */
 /********************************************************************/
 /********************************************************************/
 /*                                                                  */
 /* SOKET COMMON VARIABLES                                           */
 /*                                                                  */
 /********************************************************************/

 DCL ABS     BUILTIN;
 DCL ADDR    BUILTIN;
 DCL ACCEPT  CHAR(16) INIT('ACCEPT');
 DCL ACCPSOCK FIXED BIN(15);           /* temporary ACCEPT socket    */
 DCL AF_INET FIXED BIN(31) INIT(2);    /* internet domain            */
 DCL AF_INET6 FIXED BIN(31) INIT(19);  /* internet v6 domain         */
 DCL AF_IUCV FIXED BIN(31) INIT(17);   /* iucv domain                */
 /* Mapping of GAI_HINTS/GAI_ADDRINFO FLAGS                          */
 DCL ai_PASSIVE     BIT(32) INIT('00000001'BX);
                                       /* flag: getaddrinfo hints    */
 DCL ai_CANONNAMEOK BIT(32) INIT('00000002'BX);
                                       /* flag: getaddrinfo hints    */
 DCL ai_NUMERICHOST BIT(32) INIT('00000004'BX);
                                       /* flag: getaddrinfo hints    */
 DCL ai_NUMERICSERV BIT(32) INIT('00000008'BX);
                                       /* flag: getaddrinfo hints    */
 DCL ai_V4MAPPED    BIT(32) INIT('00000010'BX);
                                       /* flag: getaddrinfo hints    */
 DCL ai_ALL         BIT(32) INIT('00000020'BX);
                                       /* flag: getaddrinfo hints    */
 DCL ai_ADDRCONFIG  BIT(32) INIT('00000040'BX);
                                       /* flag: getaddrinfo hints    */
 DCL ai_EXTFLAGS    BIT(32) INIT('00000080'BX);
                                       /* flag: getaddrinfo hints    */
 DCL ai_ALLFLAGMASK BIT(32) INIT('FFFFFF00'BX);
 DCL ALIAS   CHAR(255);                /* alternate NAME             */
 DCL APITYPE FIXED BIN(15) INIT(2);    /* default API type           */
 DCL BACKLOG FIXED BIN(31);            /* max length of pending queue*/
 DCL BADNAME CHAR(20);                 /* temporary name             */
 DCL BIND    CHAR(16) INIT('BIND');
 DCL BIND2ADDRSEL CHAR(16) INIT('BIND2ADDRSEL');
 DCL BIT     BUILTIN;
 DCL BITZERO BIT(1);                   /* bit zero value             */
 DCL BLANK255 CHAR(255) INIT(' ');     /*                            */
 DCL BLANK   CHAR(100) INIT(' ');      /*                            */
 DCL BUF     CHAR(80) INIT(' ');       /* macro READ/WRITE buffer    */
 DCL BUFF  CHAR(15)         INIT(' '); /* short buffer               */
 DCL BUFFER   CHAR(32767) INIT(' ');   /* BUFFER                     */
 DCL BUFIN    CHAR(32767) INIT(' ');   /* Read buffer                */
 DCL BUFOUT   CHAR(32767) INIT(' ');   /* WRITE buffer               */
 DCL NCHBUFF  CHAR(3200) INIT(' ');    /* BUFFER                     */
 DCL CANONNAME_LEN FIXED BIN(31);/* getaddrinfo canonical name length*/
 DCL 1 CLIENT,                     /* socket addr of connection peer */
       2 DOMAIN FIXED BIN(31) INIT(2), /* domain of client (AF_INET) */
       2 NAME   CHAR(8) INIT(' '),     /* addr identifier for client */
       2 TASK   CHAR(8) INIT(' '),     /* task identifier for client */
       2 RESERVED CHAR(20) INIT(' ');  /* reserved                   */
 DCL CLOSE   CHAR(16) INIT('CLOSE');
 DCL COMMAND FIXED BIN(31) INIT(3);    /* Query FNDELAY flag         */
 DCL CONNECT CHAR(16) INIT('CONNECT');
 DCL COUNT FIXED BIN(31) INIT(100);    /* elements in GRP_IOCTL_TABLE*/
 DCL DATA_SOCK FIXED BIN(15);          /* temporary datagram socket  */
 DCL DEF     FIXED BIN(31) INIT(0);    /* default protocol           */
 DCL DONE_SENDING CHAR(1);             /* ready flag                 */
 DCL DRIVER  FILE OUTPUT UNBUF ENV(FB RECSIZE(100)) RECORD;
 DCL ERETMSK CHAR(4);                  /* indicate exception events  */
 DCL ERR     FIXED BIN(31);            /* error number variable      */
 DCL ERRNO   FIXED BIN(31) INIT(0);    /*  error number              */
 DCL ESNDMSK CHAR(4);                  /* check for pending          */
                                       /*   exception events         */
 DCL EXIT    LABEL;                    /* common exit point          */
 DCL EZACIC05 ENTRY OPTIONS(ASM,INTER) EXT; /* translate ascii>ebcdic*/
 DCL EZACIC09 ENTRY OPTIONS(ASM,INTER) EXT; /* format getaddrinfo res*/
 DCL EZASOKET ENTRY OPTIONS(ASM,INTER) EXT;         /* socket call   */
 DCL FCNTL  CHAR(16) INIT('FCNTL');
 DCL FIONBIO BIT(32) INIT('8004A77E'BX); /* flag: nonblocking        */
 DCL FIONREAD BIT(32) INIT('4004A77F'BX);/* flag:#readable bytes     */
 DCL FLAGS   FIXED BIN(31) INIT(0);    /* default: no flags          */
                                       /*   1 = OOB, SEND OUT-OF-BAND*/
                                       /*   4 = DON'T ROUTE          */
 DCL FREEADDRINFO  CHAR(16) INIT('FREEADDRINFO');
 DCL GAI_NODE CHAR(255) INIT(' ');    /* getaddrinfo node            */
 DCL GAI_NODELEN FIXED BIN(31) INIT(255);/* getaddrinfo node length  */
 DCL GAI_SERVICE CHAR(32) INIT(' ');  /* getaddrinfo service         */
 DCL GAI_SERVLEN FIXED BIN(31) INIT(32); /* getaddrinfo service      */
                                       /* length                     */
 DCL 1 GAI_HINTS,                      /* getaddrinfo hints addrinfo */
       2 FLAGS     FIXED BIN(31) INIT(0),  /* hints flags, see defns */
                                           /* starting at ai_PASSIVE */
       2 AF        FIXED BIN(31) INIT(0),  /* hints family           */
       2 SOCTYPE   FIXED BIN(31) INIT(0),  /* hints socket type      */
       2 PROTO     FIXED BIN(31) INIT(0),  /* hints protocol         */
       2 NAMELEN   FIXED BIN(31) INIT(0),
       2 *         CHAR(4),
       2 *         CHAR(4),
       2 CANONNAME FIXED BIN(31) INIT(0),
       2 *         CHAR(4),
       2 NAME      FIXED BIN(31) INIT(0),
       2 *         CHAR(4),
       2 NEXT      FIXED BIN(31) INIT(0),
       2 EFLAGS    FIXED BIN(31) INIT(0);  /* see definitions after  */
                                           /* IPV6_ADDR_PREFERENCES  */
 DCL 1 GAI_ADDRINFO BASED(RES),   /* getaddrinfo RES addrinfo        */
       2 FLAGS     FIXED BIN(31), /* see ai_PASSIVE & following defns*/
       2 AF        FIXED BIN(31),
       2 SOCTYPE   FIXED BIN(31),
       2 PROTO     FIXED BIN(31),
       2 NAMELEN   FIXED BIN(31), /* RES socket address struct length*/
       2 *         CHAR(4),
       2 *         CHAR(4),
       2 CANONNAME POINTER,       /* RES canonical name              */
       2 *         CHAR(4),
       2 NAME      POINTER,       /* RES socket address structure    */
       2 *         CHAR(4),
       2 NEXT      POINTER,       /* RES next addrinfo, zero if none.*/
       2 EFLAGS    FIXED BIN(31); /* see definitions that follow the */
                                  /* IPV6_ADDR_PREFERENCES definition*/
 DCL 1 GAI_NAME_ID BASED(GAI_ADDRINFO.NAME),
       2 LEN    BIT(8),
       2 FAMILY BIT(8),
       2 PORT   BIT(16),
       2 ADDRESS BIT(32),
       2 RESERVED1 CHAR(8);
 DCL 1 GAI_NAME6_ID BASED(GAI_ADDRINFO.NAME),
       2 LEN    BIT(8),
       2 FAMILY BIT(8),
       2 PORT   BIT(16),
       2 FLOWINFO FIXED BIN(31),
       2 ADDRESS CHAR(16),
       2 SCOPEID FIXED BIN(31);
 DCL GETADDRINFO  CHAR(16) INIT('GETADDRINFO');
 DCL GETCLIENTID  CHAR(16) INIT('GETCLIENTID');
 DCL GETHOSTBYADDR  CHAR(16) INIT('GETHOSTBYADDR');
 DCL GETHOSTBYNAME CHAR(16) INIT('GETHOSTBYNAME');
 DCL GETHOSTNAME CHAR(16) INIT('GETHOSTNAME');
 DCL GETHOSTID CHAR(16) INIT('GETHOSTID');
 DCL GETIBMOPT CHAR(16) INIT('GETIBMOPT');
 DCL GETNAMEINFO  CHAR(16) INIT('GETNAMEINFO');
 DCL GETPEERNAME CHAR(16) INIT('GETPEERNAME');
 DCL GETSOCKNAME CHAR(16) INIT('GETSOCKNAME');
 DCL GETSOCKOPT CHAR(16) INIT('GETSOCKOPT');
 DCL GIVESOCKET  CHAR(16) INIT('GIVESOCKET');
 DCL GLOBAL CHAR(16) INIT('GLOBAL');
 DCL GNI_FLAGS FIXED BIN(31);   /* getnameinfo flags                 */
 DCL GNI_HOST CHAR(255);        /* getnameinfo host                  */
 DCL GNI_HOSTLEN FIXED BIN(31); /* getnameinfo host length           */
 DCL GNI_SERVICE CHAR(32);      /* getnameinfo service               */
 DCL GNI_SERVLEN FIXED BIN(31);        /* getnameinfo service length */
 DCL 1 GROUP_FILTER4 BASED,            /* Group_Filter for IPv4      */
       2 GF4_HEADER,                   /* Header portion             */
         3 GF4_INTERFACE FIXED BIN(31),  /* Interface index          */
         3 *                   CHAR(4),  /* Padding                  */
         3 GF4_GROUP,                    /* Group Multi Address      */
           4 GF4_SOCK_LEN        BIT(8),   /* Socket len             */
           4 GF4_SOCK_FAMILY     BIT(8),   /* Socket family          */
           4 GF4_SOCK_SIN_PORT   BIT(16),  /* Socket port            */
           4 GF4_SOCK_SIN_ADDR BIT(32),    /* Socket address         */
           4 GF4_RESERVED1 CHAR(8),        /* Unused                 */
           4 *             CHAR(112),      /*                        */
         3 GF4_FMODE     FIXED BIN(31),    /* Filter mode            */
         3 GF4_NUMSRC    FIXED BIN(31),    /* Num of sources         */
       2 GF4_SLIST     CHAR(0);          /* Source list              */
 DCL 1 GF4_SRCENTRY BASED,             /* Source Entry               */
       2 GF4_SRCADDR,                  /* Source IP address          */
         3 GF4_SOCK_LEN        BIT(8),   /* Socket len               */
         3 GF4_SOCK_FAMILY     BIT(8),   /* Socket family            */
         3 GF4_SOCK_SIN_PORT   BIT(16),  /* Socket port              */
         3 GF4_SOCK_SIN_ADDR BIT(32),    /* Socket address           */
         3 GF4_RESERVED1 CHAR(8),        /* Unused                   */
         3 *             CHAR(112);      /*                          */

 DCL 1 GROUP_FILTER6 BASED,            /* Group_Filter for IPv6      */
       2 GF6_HEADER,                   /* Header portion             */
         3 GF6_INTERFACE FIXED BIN(31),  /* Interface index          */
         3 *                   CHAR(4),  /* Padding                  */
         3 GF6_GROUP,                    /* Group Multi Address      */
           4 GF6_SOCK_LEN      BIT(8),   /* Socket len               */
           4 GF6_SOCK_FAMILY   BIT(8),   /* Socket family            */
           4 GF6_SOCK_SIN6_PORT BIT(16), /* Socket port              */
           4 GF6_SOCK_SIN6_FLOWINFO FIXED BIN(31), /* flow info      */
           4 GF6_SOCK_SIN6_ADDRESS CHAR(16), /* Socket address       */
           4 GF6_SOCK_SIN6_SCOPEID FIXED BIN(31), /* Socket scopeid  */
           4 *             CHAR(100),      /*                        */
         3 GF6_FMODE     FIXED BIN(31),    /* Filter mode            */
         3 GF6_NUMSRC    FIXED BIN(31),    /* Num of sources         */
       2 GF6_SLIST     CHAR(0);          /* Source list              */
 DCL 1 GF6_SRCENTRY BASED,             /* Source Entry               */
       2 GF6_SRCADDR,                  /* Source IP address          */
         3 GF6_SOCK_LEN      BIT(8),   /* Socket len                 */
         3 GF6_SOCK_FAMILY   BIT(8),   /* Socket family              */
         3 GF6_SOCK_SIN6_PORT BIT(16), /* Socket port                */
         3 GF6_SOCK_SIN6_FLOWINFO FIXED BIN(31), /* flow info        */
         3 GF6_SOCK_SIN6_ADDRESS CHAR(16), /* Socket address         */
         3 GF6_SOCK_SIN6_SCOPEID FIXED BIN(31), /* Socket scopeid    */
         3 *             CHAR(100);      /*                          */
 DCL 1 GROUP_REQ4 BASED,               /* Group_Req for IPv4         */
       2 GR4_INTERFACE FIXED BIN(31),  /* Interface index            */
       2 *                   CHAR(4),  /* Padding                    */
       2 GR4_SOCK_LEN        BIT(8),   /* Socket len                 */
       2 GR4_SOCK_FAMILY     BIT(8),   /* Socket family              */
       2 GR4_SOCK_SIN_PORT   BIT(16),  /* Socket port                */
       2 GR4_SOCK_SIN_ADDR BIT(32),    /* Socket address             */
       2 GR4_RESERVED1 CHAR(8),        /* Unused                     */
       2 *             CHAR(112);      /*                            */
 DCL 1 GROUP_REQ6 BASED,               /* Group_Req for IPv6         */
       2 GR6_INTERFACE FIXED BIN(31),  /* Interface index            */
       2 *                   CHAR(4),  /* Padding                    */
       2 GR6_SOCK_LEN        BIT(8),   /* Socket len                 */
       2 GR6_SOCK_FAMILY     BIT(8),   /* Socket family              */
       2 GR6_SOCK_SIN6_PORT  BIT(16),  /* Socket port                */
       2 GR6_SOCK_SIN6_FLOWINFO FIXED BIN(31), /* flow info          */
       2 GR6_SOCK_SIN6_ADDRESS CHAR(16), /* Socket address           */
       2 GR6_SOCK_SIN6_SCOPEID FIXED BIN(31), /* Socket scopeid      */
       2 *             CHAR(100);      /*                            */
 DCL 1 GROUP_SOURCE_REQ4 BASED,        /* Group_Source_Req for IPv4  */
       2 GSR4_INTERFACE FIXED BIN(31), /* Interface index            */
       2 *                   CHAR(4),  /* Padding                    */
       2 GSR4_GROUP,                   /* Multicast group addr       */
         3 GSR4_SOCK_LEN        BIT(8),  /* Socket len               */
         3 GSR4_SOCK_FAMILY     BIT(8),   /* Socket family           */
         3 GSR4_SOCK_SIN_PORT   BIT(16), /* Socket port              */
         3 GSR4_SOCK_SIN_ADDR BIT(32),   /* Socket address           */
         3 GSR4_RESERVED1 CHAR(8),       /* Unused                   */
         3 *              CHAR(112),   /*                            */
       2 GSR4_SOURCE,                  /* Source IP address          */
         3 GSR4_SOCK_LEN        BIT(8),  /* Socket len               */
         3 GSR4_SOCK_FAMILY     BIT(8),   /* Socket family           */
         3 GSR4_SOCK_SIN_PORT   BIT(16), /* Socket port              */
         3 GSR4_SOCK_SIN_ADDR BIT(32),    /* Socket address          */
         3 GSR4_RESERVED1 CHAR(8),        /* Unused                  */
         3 *              CHAR(112);   /*                            */
 DCL 1 GROUP_SOURCE_REQ6 BASED,        /* Group_Source_Req for IPv6  */
       2 GSR6_INTERFACE FIXED BIN(31), /* Interface index            */
       2 *                   CHAR(4),  /* Padding                    */
       2 GSR6_GROUP,                   /* Multicast group addr       */
         3 GSR6_SOCK_LEN        BIT(8),   /* Socket len              */
         3 GSR6_SOCK_FAMILY     BIT(8),   /* Socket family           */
         3 GSR6_SOCK_SIN6_PORT  BIT(16), /* Socket port              */
         3 GSR6_SOCK_SIN6_FLOWINFO FIXED BIN(31), /* flow info       */
         3 GSR6_SOCK_SIN6_ADDRESS CHAR(16), /* Socket address        */
         3 GSR6_SOCK_SIN6_SCOPEID FIXED BIN(31), /* Socket scopeid   */
         3 *             CHAR(100),    /*                            */
       2 GSR6_SOURCE,                  /* Source IP address          */
         3 GSR6_SOCK_LEN        BIT(8),   /* Socket len              */
         3 GSR6_SOCK_FAMILY     BIT(8),   /* Socket family           */
         3 GSR6_SOCK_SIN6_PORT  BIT(16), /* Socket port              */
         3 GSR6_SOCK_SIN6_FLOWINFO FIXED BIN(31), /* flow info       */
         3 GSR6_SOCK_SIN6_ADDRESS CHAR(16), /* Socket address        */
         3 GSR6_SOCK_SIN6_SCOPEID FIXED BIN(31), /* Socket scopeid   */
         3 *             CHAR(100);    /*                            */
 DCL HINTS POINTER;              /*getaddrinfo hints addrinfo pointer*/
 DCL 1 HOMEIF,                         /* Home Interface Structure   */
   2 ADDRESS CHAR(16);                 /* Home Interface Address     */
 DCL HOSTADDR BIT(32);                 /* host internet address      */
 DCL HOSTNAME CHAR(24);                /* host name from GETHOSTNAME */
 DCL HOSTNAME_LEN FIXED BIN(31) INIT(24);
                                     /* host name length GETHOSTNAME */
 DCL HOW     FIXED BIN(31) INIT(2);    /* how shutdown is to be done */
 Dcl 1 HOSTENT      Based,             /* Host entry                 */
      3 H_NAME      POINTER,           /* Official name of host      */
      3 H_ALIASES   POINTER,           /* Alias list address         */
      3 H_ADDRTYPE  BIT(32),           /* Host address type          */
      3 H_LENGTH    FIXED BIN(31),     /* Length of address          */
      3 H_ADDR_LIST POINTER;           /* List of addresses from     */
                                       /* name server                */
 DCL I       FIXED BIN(15);            /* loop index                 */
 DCL ICMP    FIXED BIN(31) INIT(2);    /* prototype icmp  ???        */
 DCL 1 ID,                             /*                            */
       2 TCPNAME CHAR(8) INIT('TCPIP'), /* remote address space      */
       2 ADSNAME CHAR(8) INIT('USER9'); /* local address space       */
 DCL IDENT   POINTER;                  /* TCP/IP Addr Space          */
 DCL IFCONF  CHAR(255);                /* configuration structure    */
 DCL 1 IF_NAMEINDEX,
   2 IF_NIHEADER,
     3 IF_NITOTALIF FIXED BIN(31), /*Total Active Interfaces on Sys. */
     3 IF_NIENTRIES FIXED BIN(31),     /* Number of entries returned */
   2 IF_NITABLE(10) CHAR(24);
 DCL 1 IF_NAMEINDEXENTRY,
   2 IF_NIINDEX FIXED BIN(31),         /* Interface Index            */
   2 IF_NINAME  CHAR(16),            /* Interface Name, blank padded */
   2 IF_NIEXT,
     3 IF_NINAMETERM CHAR(1),          /* Null for C for Name len=16 */
     3 IF_RESERVED  CHAR(3);           /* Reserved                   */
 DCL 1 IFREQ,                          /* Interface Structure        */
   2 IFR_NAME  CHAR(16),             /* Interface Name, blank padded */
   2 IFR_IFR UNION,
     3 IFR_ADDR,                       /* Interface IP Address       */
       4 IFR_ADDR_LEN    BIT(8),       /*     Socket Len             */
       4 IFR_ADDR_FAMILY BIT(8),       /*     Socket Family          */
       4 IFR_ADDR_PORT   BIT(16),      /*     Socket Port            */
       4 IFR_ADDR_ADDR   BIT(32),      /*     Socket Address         */
       4 IFR_ADDR_RSVD   CHAR(8),      /*     Socket Reserved        */
     3 IFR_DSTADDR,                    /* Interface Dest IP Addr     */
       4 IFR_DSTADDR_LEN    BIT(8),    /*     Socket Len             */
       4 IFR_DSTADDR_FAMILY BIT(8),    /*     Socket Family          */
       4 IFR_DSTADDR_PORT   BIT(16),   /*   Socket Port              */
       4 IFR_DSTADDR_ADDR   BIT(32),   /*     Socket Address         */
       4 IFR_DSTADDR_RSVD   CHAR(8),   /*     Socket Reserved        */
     3 IFR_BROADADDR,                  /* Interface Broadcast IP Addr*/
       4 IFR_BROADADDR_LEN    BIT(8),  /*     Socket Len             */
       4 IFR_BROADADDR_FAMILY BIT(8),  /*     Socket Family          */
       4 IFR_BROADADDR_PORT   BIT(16), /* Socket Port                */
       4 IFR_BROADADDR_ADDR   BIT(32), /*     Socket Address         */
       4 IFR_BROADADDR_RSVD   CHAR(8), /*     Socket Reserved        */
     3 IFR_FLAGS   BIT(16),            /* Interface Flags            */
     3 IFR_METRIC  FIXED BIN(31),      /* Interface Metric           */
     3 IFR_DATA    FIXED BIN(31),      /* Interface Data             */
     3 IFR_MTU     FIXED BIN(31);      /* Interface MTU              */

 /* The following constants are for use with the IFR_FLAGS field     */
 /* in structure IFREQ.                                              */
 DCL IFF_UP          BIT(16) INIT('0001'BX); /* interface is UP      */
 DCL IFF_BROADCAST   BIT(16) INIT('0002'BX); /* broadcast addr valid */
 DCL IFF_DEBUG       BIT(16) INIT('0004'BX); /* turn on debugging    */
 DCL IFF_LOOPBACK    BIT(16) INIT('0008'BX); /* software loopback    */
 DCL IFF_POINTOPOINT BIT(16) INIT('0010'BX); /* point-to-point link  */
 DCL IFF_NOTRAILERS  BIT(16) INIT('0020'BX); /* avoid use trailers   */
 DCL IFF_RUNNING     BIT(16) INIT('0040'BX); /* resources allocated  */
 DCL IFF_NOARP       BIT(16) INIT('0080'BX); /* no ARP               */
 DCL IFF_PROMISC     BIT(16) INIT('0100'BX); /* receive all packets  */
 DCL IFF_ALLMULTI    BIT(16) INIT('0200'BX); /* multicast packets    */
 DCL IFF_MULTICAST   BIT(16) INIT('0400'BX); /* multicast capable    */
 DCL IFF_POINTOMULTIPT BIT(16) INIT('0800'BX);/* pt-to-multipt       */
 DCL IFF_BRIDGE      BIT(16) INIT('1000'BX); /* support token ring   */
 DCL IFF_SNAP        BIT(16) INIT('2000'BX); /* support extended SAP */
 DCL IFF_VIRTUAL     BIT(16) INIT('4000'BX); /* virtual interface    */
 DCL IFF_SAMEHOST    BIT(16) INIT('8000'BX); /* Samehost             */

 DCL INDEX   BUILTIN;
 DCL IOCTL  CHAR(16) INIT('IOCTL');
 DCL IOCTL_CMD FIXED BIN(31);          /* ioctl command              */
 DCL IOCTL_REQARG  POINTER ;           /* send   pointer to data area*/
 DCL IOCTL_RETARG  POINTER ;           /* return pointer to data area*/
 DCL IOCTL_REQ00   FIXED BIN(31);      /* command request argument   */
 DCL IOCTL_REQ04   FIXED BIN(31);      /* command request argument   */
 DCL IOCTL_REQ08   FIXED BIN(31);      /* command request argument   */
 DCL IOCTL_REQ32   CHAR(32) INIT(' '); /* command request argument   */
 DCL IOCTL_RET00   FIXED BIN(31);      /* command return  argument   */
 DCL IOCTL_RET04   FIXED BIN(31);      /* command return  argument   */
 DCL INET6_IS_SRCADDR CHAR(16) INIT('INET6_IS_SRCADDR');
 DCL INITAPI CHAR(16) INIT('INITAPI'); /*                            */
 DCL IP      FIXED BIN(31) INIT(1);    /* prototype ip   ???         */
 DCL 1 IP_MREQ,
   2 IMR_MULTIADDR BIT(32),            /* IP multicast addr of group */
   2 IMR_INTERFACE BIT(32);            /* local IP addr of interface */
 DCL 1 IPV6_MREQ,
   2 IPV6MR_MULTIADDR CHAR(16),
   2 IPV6MR_INTERFACE FIXED BIN(31);
 DCL 1 IP_MREQ_SOURCE BASED,           /* Multi source API structure */
       2 IMRS_MULTIADDR BIT(32),       /* IP multicast addr of grp   */
       2 IMRS_SOURCEADDR BIT(32),      /* IP source addr             */
       2 IMRS_INTERFACE BIT(32);       /* local IP addr of intf      */
 DCL 1 IP_MSFILTER BASED,              /* IP_MsFilter                */
       2 IMSF_HEADER,                  /* Header portion             */
         3 IMSF_MULTIADDR BIT(32),     /* Multicast address          */
         3 IMSF_INTERFACE BIT(32),     /* Interface address          */
         3 IMSF_FMODE     FIXED BIN(31), /* Filter mode              */
         3 IMSF_NUMSRC    FIXED BIN(31), /* Num of sources           */
       2 IMSF_SLIST     CHAR(0);         /* Source list              */
 DCL 1 IMSF_SRCENTRY BASED,            /* Source Entry               */
       2 IMSF_SRCADDR BIT(32);         /* Source IP address          */
 DCL IP_MULTICAST_TTL BIT(32) INIT('00100003'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IP_MULTICAST_LOOP BIT(32) INIT('00100004'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IP_MULTICAST_IF BIT(32) INIT('00100007'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IP_ADD_MEMBERSHIP BIT(32) INIT('00100005'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IP_DROP_MEMBERSHIP BIT(32) INIT('00100006'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IP_BLOCK_SOURCE BIT(32) INIT('0010000A'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IP_UNBLOCK_SOURCE BIT(32) INIT('0010000B'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IP_ADD_SOURCE_MEMBERSHIP BIT(32) INIT('0010000C'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IP_DROP_SOURCE_MEMBERSHIP BIT(32) INIT('0010000D'BX);
 DCL IPRES   POINTER;                /* EZACIC09 RES addrinfo ptr    */
 DCL IPV6_ADDR_PREFERENCES BIT(32) INIT('00010020'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 /********************************************************************/
 /* Mapping of GAI_HINTS/GAI_ADDRINFO EFLAGS flags and               */
 /* IPV6_ADDR_PREFERENCES getsockopt, setsockopt OPTVAL flags, and   */
 /* inet6_is_srcaddr flags                                           */
 /********************************************************************/
 /* Prefer home IPv6 address over care-of IPv6 address               */
 DCL IPV6_PREFER_SRC_HOME   BIT(32) INIT('00000001'BX);
 /* Prefer care-of IPv6 address over home IPv6 address               */
 DCL IPV6_PREFER_SRC_COA    BIT(32) INIT('00000002'BX);
 /* Prefer temporary IPv6 address over public IPv6 address           */
 DCL IPV6_PREFER_SRC_TMP    BIT(32) INIT('00000004'BX);
 /* Prefer public IPv6 address over temporary IPv6 address           */
 DCL IPV6_PREFER_SRC_PUBLIC BIT(32) INIT('00000008'BX);
 /* Prefer cryptographic address over non-cryptographic address      */
 DCL IPV6_PREFER_SRC_CGA    BIT(32) INIT('00000010'BX);
 /* Prefer non-cryptographic address over cryptographic address      */
 DCL IPV6_PREFER_SRC_NONCGA BIT(32) INIT('00000020'BX);
 /* Invalid EFLAGS or IPV6_ADDR_PREFERENCES OPTVAL flags             */
 DCL IPV6_PREFERENCES_FLAGS_MASKINVALID BIT(32) INIT('FFFFFFC0'BX);
 /********************************************************************/
 DCL IPV6_JOIN_GROUP BIT(32) INIT('00010005'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IPV6_LEAVE_GROUP BIT(32) INIT('00010006'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IPV6_LOOPBACK CHAR(3) INIT('::1');
 DCL IPV6_MULTICAST_HOPS BIT(32) INIT('00010009'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IPV6_MULTICAST_IF BIT(32) INIT('00010007'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IPV6_MULTICAST_LOOP BIT(32) INIT('00010004'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IPV6_UNICAST_HOPS BIT(32) INIT('00010003'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL IPV6_V6ONLY BIT(32) INIT('0001000A'BX);
 DCL J       FIXED BIN(15);            /* loop index                 */
 DCL K       FIXED BIN(15);            /* loop index                 */
 DCL LENGTH  BUILTIN;
 DCL LABL    CHAR(9);
 DCL LISTEN  CHAR(16) INIT('LISTEN');
 DCL MAXSNO  FIXED BIN(31) INIT(0);    /* max descriptor assigned    */
 DCL 1 MAXSOC_INPUT FIXED BIN(31) INIT(0);
 DCL 1 MAXSOC_FWD,
     2 MAXSOC_IGNORE FIXED BIN(15) INIT(0),
     2 MAXSOC  FIXED BIN(15) INIT(255); /* largest sock # checked    */
 DCL MCAST_JOIN_GROUP BIT(32) INIT('00100028'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL MCAST_LEAVE_GROUP BIT(32) INIT('00100029'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL MCAST_JOIN_SOURCE_GROUP BIT(32) INIT('0010002A'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL MCAST_LEAVE_SOURCE_GROUP BIT(32) INIT('0010002B'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL MCAST_BLOCK_SOURCE BIT(32) INIT('0010002C'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL MCAST_UNBLOCK_SOURCE BIT(32) INIT('0010002D'BX);
                                    /* getsockopt/setsockopt OPTNAME */
 DCL MCAST_EXCLUDE BIT(32) INIT('00000001'BX);
 DCl MCAST_INCLUDE BIT(32) INIT('00000000'BX);
 DCl MCAST_NUMSRC_MAX BIT(32)INIT('00000040'BX);
 DCL MESSAGE CHAR(50) INIT('I love my 1 @ Rottweiler!'); /* message  */
 DCL MSG     CHAR(100) INIT(' ');      /*   message text             */
 DCL 1 NAME_ID,                    /* socket addr of connection peer */
       2 FAMILY FIXED BIN(15) INIT(2), /*addr'g family  TCP/IP def   */
       2 PORT   BIT(16),               /* system assigned port #     */
       2 ADDRESS BIT(32),              /* 32-bit internet            */
       2 RESERVED CHAR(8);             /* reserved                   */
 DCL 1 NAME6_ID,                   /* socket addr of connection peer */
       2 FAMILY  FIXED BIN(15) INIT(19),  /* NAMELN IGNORED & FAMILY */
       2 PORT    BIT(16),              /* port #                     */
       2 FLOWINFO FIXED BIN(31),       /* Flow info                  */
       2 ADDRESS CHAR(16),             /* IPv6 internet address      */
       2 SCOPEID FIXED BIN(31);        /* Scope ID                   */

 DCL NAMEL   CHAR(255)    VARYING;     /* name field, long           */
 DCL NAMES   CHAR(24);                 /* name field, short          */
 DCL NAMELEN FIXED BIN(31);            /* length of name/alias field */
 DCL NBYTE   FIXED BIN(31);            /* Number of bytes in buffer  */
 DCL 1 NETCONFHDR,                     /* Network Configuration Hdr  */
   2 NCHEYECATCHER CHAR(4) INIT('6NCH'), /* Eye Catcher '6NCH'       */
   2 NCHIOCTL BIT(32) INIT('C014F608'BX),
                                       /* The IOCTL being processed  */
                                       /* with this instance of the  */
                                       /* NetConfHdr. (RAS item)     */
   2 NCHBUFFERLENGTH FIXED BIN(31) INIT(3200), /* Buffer Length      */
   2 NCHBUFFERPTR    POINTER,       /* Buffer Pointer                */
   2 NCHNUMENTRYRET FIXED BIN(31);  /* Number of HomeIF returned via */
                                    /*  SIOCGHOMEIF6 or the number of*/
                                    /*  GRT6RtEntry's returned via   */
                                    /*  SIOCGRT6TABLE.               */
 DCL NI_NOFQDN FIXED BIN(31) INIT(1);
                                       /* flag: getnameinfo          */
 DCL NI_NUMERICHOST FIXED BIN(31) INIT(2);
                                       /* flag: getnameinfo          */
 DCL NI_NAMEREQD FIXED BIN(31) INIT(4);
                                       /* flag: getnameinfo          */
 DCL NI_NUMERICSERV FIXED BIN(31) INIT(8);
                                       /* flag: getnameinfo          */
 DCL NI_DGRAM FIXED BIN(31) INIT(16);
                                       /* flag: getnameinfo          */
 DCL NI_NUMERICSCOPE FIXED BIN(31) INIT(32);
                                       /* flag: getnameinfo          */
 DCL NOTE(3) CHAR(25) INIT('Now is the time for 198 g',
                           'ood people to come to the',
                           ' aid of their parties!');
 DCL NS      FIXED BIN(15);            /* socket descriptor, new     */
 DCL NTOP    CHAR(16) INIT('NTOP');    /* Numeric to Presentation    */
 DCL NULL    BUILTIN;
 DCL 1 NUMERIC_ADDR CHAR(16);          /* NTOP/PTON Numeric address  */
 DCL OPNAMELEN FIXED BIN(31);     /* Socket address structure length */
 DCL OPCANON CHAR(256);                /* Canonical name             */
 DCL OPNAME  POINTER;                  /* Socket address structure   */
 DCL OPNEXT  POINTER;           /* Next result address info in chain */
 DCL OPTL    FIXED BIN(31);            /* length of OPTVAL string    */
 DCL OPTLEN  FIXED BIN(31);            /* length of OPTVAL string    */
 DCL OPTN    CHAR(15);                 /* OPTNAME value (macro)      */
 DCL OPTNAME FIXED BIN(31);            /* OPTNAME value (call)       */
 DCL OPTVAL  CHAR(255);                /* GETSOCKOPT option data     */
 DCL OPTVALD FIXED BIN(31);            /* SETSOCKOPT option data     */
 DCL 1 OPT_STRUC,                      /* structure for option       */
       2 ON_OFF FIXED BIN(31) INIT(1), /* enable option              */
       2 TIME   FIXED BIN(31) INIT(5); /* time-out in seconds        */
 DCL 1 OPT_STRUCT,                     /* structure for option       */
       2 ON     FIXED BIN(31),         /* used for getsockopt        */
       2 TIMEOUT FIXED BIN(31);        /* time-out in seconds        */
 DCL PLITEST BUILTIN;                  /* debug tool                 */
 DCL PRESENTABLE_ADDR CHAR(45);     /* NTOP/PTON presentable address */
 DCL PRESENTABLE_ADDR_LEN FIXED BIN(15);
                              /* NTOP/PTON presentable address length*/
 DCL PROTO   FIXED BIN(31) INIT(0);    /* prototype default          */
 DCL PTON    CHAR(16) INIT('PTON');    /* Presentation to numeric    */
 DCL READ    CHAR(16) INIT('READ');
 DCL READV   CHAR(16) INIT('READV');
 DCL RECV    CHAR(16) INIT('RECV');
 DCL RECVFROM CHAR(16) INIT('RECVFROM');
 DCL RECVMSG CHAR(16) INIT('RECVMSG');
 DCL REUSE   FIXED BIN(31) INIT('4');  /* toggle, reuse local addr   */
 DCL REQARG  FIXED BIN(31);            /* command request argument   */
 DCL RES     POINTER;                /* getaddrinfo RES addrinfo ptr */
 DCL RETC    FIXED BIN(31);            /* return code variable       */
 DCL RETARG  CHAR(255);                /* return argument data area  */
 DCL RETCODE FIXED BIN(31) INIT(0);    /* return code                */
 DCL RETLEN  FIXED BIN(31);            /* return area data length    */
 DCL RRETMSK CHAR(4);                  /* indicate READ EVENTS       */
 DCL RSNDMSK CHAR(4);               /* check for pending read events */
 DCL RTENTRY CHAR(50) INIT('dummy table'); /* router entry           */
 DCL SAVEFAM  FIXED BIN(15);           /* temporary family name      */
 DCL SELECB CHAR(4) INIT('1');
 DCL SELECT CHAR(16) INIT('SELECT');
 DCL SELECTEX CHAR(16) INIT('SELECTEX');
 DCL SEND CHAR(16) INIT('SEND');
 DCL SENDMSG CHAR(16) INIT('SENDMSG');
 DCL SENDTO CHAR(16) INIT('SENDTO');
 DCL SETADEYE1     CHAR(8) INIT('SETAPPLD');
 DCL SETADVER      FIXED BIN(15) INIT(1);
 DCL SETADCONTLEN  FIXED BIN(15) INIT(48);
 DCL SETADBUFLEN   FIXED BIN(15) INIT(40);
 DCL 1 SETAPPLDATA,
      2 SETAD_EYE1  CHAR(8),
      2 SETAD_VER   FIXED BIN(15),
      2 SETAD_LEN   FIXED BIN(15),
      2 *           CHAR(4),
      2 SETAD_PTR64 ,
       3 SETAD_PTRHW CHAR(4),
       3 SETAD_PTR  POINTER;
 DCL SETADEYE2 CHAR(8) INIT('APPLDATA');
 DCL 1 SETADCONTAINER,
      2 SETAD_EYE2 CHAR(8),
      2 SETAD_BUFFER CHAR(40);
 DCL SETSOCKOPT CHAR(16) INIT('SETSOCKOPT');
 DCL SHUTDOWN CHAR(16) INIT('SHUTDOWN');
 DCL SIOCADDRT BIT(32) INIT('8030A70A'BX); /* flag: add routing entry*/
 DCL SIOCATMARK BIT(32) INIT('4004A707'BX); /* flag: out-of-band data*/
 DCL SIOCDELRT BIT(32) INIT('8030A70B'BX); /* flag: delete routing   */
 DCL SIOCGIFADDR BIT(32) INIT('C020A70D'BX); /*flag: network int addr*/
 DCL SIOCGHOMEIF6 BIT(32) INIT('C014F608'BX); /* flag netw int config*/
 DCL SIOCGIFBRDADDR BIT(32) INIT('C020A712'BX); /* flag net broadcast*/
 DCL SIOCGIFCONF BIT(32) INIT('C008A714'BX); /* flag: netw int config*/
 DCL SIOCGIFDSTADDR BIT(32) INIT('C020A70F'BX); /* flag: net des addr*/
 DCL SIOCGIFFLAGS BIT(32) INIT('C020A711'BX); /* flag: net intf flags*/
 DCL SIOCGIFMETRIC BIT(32) INIT('C020A717'BX); /* flag: get rout metr*/
 DCL SIOCGIFMTU BIT(32) INIT('C020A726'BX); /* flag: get intf mtu    */
 DCL SIOCGIFNAMEINDEX BIT(32) INIT('4000F603'BX);
                                       /* flag: name and indexes     */
 DCL SIOCGIFNETMASK BIT(32) INIT('C020A715'BX); /* flag: network mask*/
 DCL SIOCGIFNONSENSE BIT(32) INIT('B669FD2E'BX); /* flag: nonsense   */
 DCL SIOCSIFMETRIC BIT(32) INIT('8020A718'BX); /* flag: set rout metr*/
 DCL SIOCSAPPLDATA BIT(32) INIT('8018D90C'BX); /* Set APPLDATA       */
 DCL SIOCGIPMSFILTER  BIT(32) INIT('C000A724'BX);
                                  /* flag: get multicast src filter  */
 DCL SIOCSIPMSFILTER  BIT(32) INIT('8000A725'BX);
                                  /* flag: set multicast src filter  */
 DCL SIOCGMSFILTER  BIT(32) INIT('C000F610'BX);
                                  /* flag: get multicast src filter  */
 DCL SIOCSMSFILTER  BIT(32) INIT('8000F611'BX);
                                  /* flag: set multicast src filter  */
 /* The following constant is defined in EZBZTLS1, but is also       */
 /* included here for completeness.                                  */
 /* DCL SIOCTTLSCTL  BIT(32) INIT('C038D90B'BX)                      */
                                               /* flag: ttls         */
 /* The following constants are defined in EZBPINF1, but is also     */
 /* included here for completeness.                                  */
 /* DCL SIOCSPARTNERINFO  BIT(32) INIT('8004F613'BX);                */
 /* DCL SIOCGPARTNERINFO  BIT(32) INIT('C000F612'BX);                */
                                               /* flag: PartnerInfo  */
 DCL SOCK     FIXED BIN(15);           /* socket descriptor          */
 DCL SOCKET  CHAR(16) INIT('SOCKET');
 DCL SOCK_DATAGRAM FIXED BIN(15);      /* socket descriptor datagram */
 DCL SOCK_RAW FIXED BIN(15);           /* socket descriptor raw      */
 DCL SOCK_STREAM FIXED BIN(15);        /* stream socket descriptor   */
 DCL SOCK_STREAM_1 FIXED BIN(15);      /* stream socket descriptor   */
 DCL SO_BROADCAST FIXED BIN(31) INIT(32); /* toggle, broadcast msg   */
 DCL SO_ERROR FIXED BIN(31) INIT(4103); /* check/clear async error   */
 DCL SO_KEEPALIVE FIXED BIN(31) INIT(8); /* request status of stream*/
 DCL SO_LINGER  FIXED BIN(31) INIT(128); /* toggle, linger on close  */
 DCL SO_OOBINLINE FIXED BIN(31) INIT(256);/*toggle, out-of-bound data*/
 DCL SO_RCVTIMEO BIT(32) INIT('00001006'BX);
 DCL SO_REUSEADDR FIXED
                BIN(31) INIT(4);       /* toggle, local address reuse*/
 DCL SO_SNDBUF  FIXED BIN(31) INIT(4097);
 DCL SO_SNDTIMEO BIT(32) INIT('00001005'BX);
 DCL SO_TYPE FIXED BIN(31) INIT(4104); /* return type of socket      */
 DCL STRING  BUILTIN;
 DCL SUBSTR  BUILTIN;
 DCL SUBTASK CHAR(8) INIT('ANYNAME');  /* task/path identifier       */
 DCL SYNC    CHAR(16) INIT('SYNC');
 DCL TAKESOCKET CHAR(16) INIT('TAKESOCKET');
 DCL TASK    CHAR(16) INIT('TASK');
 DCL TERMAPI CHAR(16) INIT('TERMAPI'); /*                            */
 DCL TIME    BUILTIN;
 DCL 1 TIMEOUT,
       2  TIME_SEC  FIXED BIN(31),     /* value in secs              */
       2  TIME_MSEC FIXED BIN(31);     /* value in millisecs         */
 DCL 1 TIMEVAL,
       2  TV_SEC  BIT(32),             /* value in secs              */
       2  TV_USEC BIT(32);             /* value in microseconds      */
 DCL TYPE_DATAGRAM FIXED BIN(31) INIT(2);/*fixed lengthconnectionless*/
 DCL TYPE_RAW  FIXED BIN(31) INIT(3); /* internal protocol interface */
 DCL TYPE_STREAM FIXED BIN(31) INIT(1); /* two-way byte stream       */
 DCL WRETMSK CHAR(4);                  /* indicate WRITE EVENTS      */
 DCL WRITE   CHAR(16) INIT('WRITE');
 DCL WRITEV   CHAR(16) INIT('WRITEV');
 DCL WSNDMSK CHAR(4);               /*check for pending write events */
 DCL TCP_KEEPALIVE BIT(32) INIT('80000008'BX);
 DCL TCP_NODELAY BIT(32) INIT('80000001'BX);
Figure 1. CBLOCK PL/1 common variables

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014