IOCTL

The IOCTL call is used to control certain operating characteristics for a socket.

Before you issue an IOCTL socket command, you must load a value that represents the characteristic that you want to control into the COMMAND field.

The variable length parameters REQARG and RETARG are arguments that are passed to and returned from IOCTL. The length of REQARG and RETARG is determined by the value that you specify in COMMAND. See Table 1 for information about REQARG and RETARG.

The following requirements apply to this call:

Figure 1 shows an example of IOCTL call instructions.

Figure 1. IOCTL call instruction example
       WORKING-STORAGE SECTION.
       01  SOC-FUNCTION           PIC X(16) VALUE 'IOCTL'.
       01  S                      PIC 9(4)  BINARY.
       01  COMMAND                PIC 9(8)  BINARY.
 
       01  IFREQ.
         03 NAME                   PIC X(16).
         03 FAMILY                 PIC 9(4)  BINARY.
         03 PORT                   PIC 9(4)  BINARY.
         03 ADDRESS                PIC 9(8)  BINARY.
         03 RESERVED               PIC X(8).
 
       01  IFREQOUT.
         03 NAME                   PIC X(16).
         03 FAMILY                 PIC 9(4)  BINARY.
         03 PORT                   PIC 9(4)  BINARY.
         03 ADDRESS                PIC 9(8)  BINARY.
         03 RESERVED               PIC X(8).
 
       01  GRP-IOCTL-TABLE.
        02 IOCTL-ENTRY OCCURS 100 TIMES.
         03 NAME                   PIC X(16).
         03 FAMILY                 PIC 9(4)  BINARY.
         03 PORT                   PIC 9(4)  BINARY.
         03 ADDRESS                PIC 9(8)  BINARY.
         03 NULLS                  PIC X(8).
 
       01  IOCTL-REQARG           USAGE IS POINTER.
       01  IOCTL-RETARG           USAGE IS POINTER.
       01  ERRNO                  PIC 9(8) BINARY.
       01  RETCODE                PIC 9(8) BINARY.
 
 
    PROCEDURE DIVISION.
         CALL 'EZASOKET' USING SOC-FUNCTION S COMMAND REQARG
               RETARG ERRNO RETCODE.

For equivalent PL/I and assembler language declarations, see Converting parameter descriptions.