|
|
This chapter provides information about writing exit routines for Cisco IOS for S/390. It includes these sections:
Various user exit points are defined within Cisco IOS for S/390 to allow the product to be customized. Multiple exit programs can be configured for the various exit points. An exit program can communicate with itself across various exit point invocations by establishing an exit context. Exit programs can issue messages, accept or reject various requests, and change or reroute messages. Exit points are defined in message services, at various points in the TCP/IP stack, and in FTP.
The user exit points listed in the following table are defined. These exits are configured in the IJTCFGxx member of the PARM data set. See the Cisco IOS for S/390 Customization Guide for details on configuring the exit points.
| Exit Point | When Invoked | Function |
|---|---|---|
| INIT | Startup | Initialize the exit environment |
| TERM | Shutdown | Terminate the exit environment |
| LOG | Message is formatted | Exit can change the message text, reroute the message, or suppress the message |
| TCPBIND | TCP bind request is received | Exit can reject the request |
| SYNRCVD | TCP syn packet is received | Exit can reject the connection |
| SENDSYN | TCP syn packet is about to be sent | Exit can reject the request |
| TCPESTAB | New TCP connection is established | Information only |
| TCPCLOSE | TCP connection is closed | Information only |
| UDPBIND | UDP bind request is received | Exit can reject the request |
| UDPSEND | UDP send request is received | Exit can reject the request |
| UDPRECV | UDP datagram is received | Exit can reject the datagram |
| RAWSOCK | RAW socket is created | Exit can reject the request |
| RAWSEND | RAW send request is received | Exit can reject the request |
| RAWRECV | RAW IP datagram is received | Exit can reject the datagram |
| FTPLOGIN | FTP login is received | Exit can reject the request |
| FTPRSRCE | FTP command has been received which will cause a dataset allocation | Exit can reject the request |
Except where noted in the following discussion, parameter lists and the data areas they point to should be left unchanged by the exit program. Changes to other fields will be ignored and will not be made effective.
| F'0' | INIT exit |
| F'1' | TERM exit |
| F'2' | LOG exit |
| F'3' | TCPBIND exit |
| F'4' | SYNRCVD exit |
| F'5' | SENDSYN exit |
| F'6' | TCPESTAB exit |
| F'7' | TCPCLOSE exit |
| F'8' | UDPBIND exit |
| F'9' | UDPSEND exit |
| F'10' | UDPRECV exit |
| F'11' | RAWSOCK exit |
| F'12' | RAWSEND exit |
| F'13' | RAWRECV exit |
| F'14' | FTPLOGIN exit |
| F'15' | FTPRSRCE exit |
| R00 | Must contain the value of R13 on entry to the exit program. |
| R01 | Must point to a one-byte message type, followed by eighty bytes of message text. For a description of the message types, see the Cisco IOS for S/390 Customization Guide. |
| R13 | Must point to a standard 72-byte register save area. |
| R14 | Must contain the return address. |
The message will be prefixed by the exit facility with a standard Cisco IOS for S/390 message ID (T00EX004) and the exit program name.
The second return code, Return Code 2, is part of the parameter list provided on entry to the exit. The exit can set this return code, when appropriate, to reject the current request. For instance, the SYNRCVD exit can set a non-zero value in this word to reject the connection request. If multiple exit programs are configured at an exit point, the Return Code 2 value is passed from one exit program to the next. The value in Return Code 2 after the last exit is called is the value that will be returned to the caller of the exit facility (such as TCP). An exit program, therefore, should not change the Return Code 2 value, and, in particular, should not change it from a non-zero to a zero value, unless there is a compelling reason.
Care should be used when setting return codes and when configuring exits. The exit programs will be invoked in the same order in which they are configured. A subsequent program can change the Return Code 2 setting from an earlier exit program. An earlier exit program can prevent a subsequent exit program from being called by using Return Code 1.
This section describes the individual exits.
There is a sample EXIT program in the HLQ.SAMP data set.
Exit Point: Cisco IOS for S/390 startup.
Function - The exit is called synchronously at startup, during parsing of the configuration statements in the IJTCFG00 configuration member. It can be used to create an exit context which will be passed to the exit program at subsequent exit points. It can also issue messages.
Addressing Mode: 31
Dispatchable Unit: Task mode (TCB)
Restriction: The exit should not block indefinitely.
Register Contents at Entry:
| 00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Zero |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'0'. |
| +04 | 04 | -- | Exit context. This word will contain zeros on input. The INIT exit can place a word of context in this word. The context will then be passed to the exit program at other exit points. |
| +08 | 04 | -- | Return code 2. Thi0+s should be set to zero. |
| +12 | 04 | -- | Address of the message routine. Note, since the log is not allocated when this exit is called, the message type should be one that will be written by WTO. The LOG exit point can be used to ensure that the message written (T01EX004) is routed to the console. |
Exit Point: Cisco IOS for S/390 shutdown.
Function: The exit is called synchronously at shutdown. It can be used to terminate the exit environment and clean up.
Addressing Mode: 31
Dispatchable Unit: Task mode (TCB)
Restrictions: The exit should not block indefinitely.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Zero |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'1'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. This should be left unchanged. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 04 | Address of a word in which the exit may define which exit points will be driven (except the TERM exit, which is always driven). This word can be built by ORing the exit point ID flag values for the exits which are to be driven. Exit point flags are defined as follows:
X'80000000'- LOG exit X'00800000' - TCPBIND exit X'00400000' - SYNRCVD exit X'00200000' - SENDSYN exit X'00100000' - TCPESTAB exit X'00080000' - TCPCLOSE exit X'00040000' - UDPBIND exit X'00020000' - UDPSEND exit X'00010000' - UDPRECV exit X'00008000' - RAWSOCK exit X'00004000' - RAWSEND exit X'00002000' - RAWRECV exit X'00000080' - FTPLOGIN exit X'00000040' - FTPRSRCE exit For instance, to drive the TCPESTAB, TCPCLOSE, and FTPLOGIN exits, set the value of this word to X'00180080'. Note that this request may be overridden by the configuration. See the discussion of the EXIT statement in the Cisco IOS for S/390 Customization Guide. |
| +20 | 04 | Var | Address of the PARM string from the EXIT configuration statement. Note that this area will be released following the exit point. If the exit program wishes to save this string, it must obtain storage and make a copy. |
| +24 | 04 | 04 | Address of a fullword containing the length of the PARM string from the EXIT configuration statement. |
Exit Point: When a message has been formatted and is ready to be written.
Function: The exit can change the message text, reroute the message, or suppress the message.
Addressing Mode: 31
Dispatchable Unit: Task mode PC routine or SRB
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'2'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. This should be left unchanged. To suppress the message, set the message routing code to zero (see below). |
| +12 | 04 | -- | Zeroes. |
| +16 | 04 | var | Address of the message text. The text may be changed by the exit. |
| +20 | 04 | 04 | Address of a word containing the message buffer length. (This value should not be changed; the message cannot be made any longer than this length. To shorten the message, pad to the right with blanks.) |
| +24 | 04 | 04 | Address of a word containing a message routing code:
X'00000000' = Do not issue message X'00000004' = Write message to log X'00000008' = Write message to the operator console (WTO) X'0000000C' = Write to log and console. This word may be changed by the exit to change the routing for the message. To suppress the message, set this word to zero. |
In most cases, these exits can reject a request. All can issue a message, and all have access to the exit context.
The parameter list in each case is similar. In each case, the addresses of the local host address and the remote host address is provided. This will be eight bytes, in standard AF_Inet form:
| Offset | Length | Field |
|---|---|---|
| 00 | 02 | Address Family |
| 02 | 02 | Port number (hexadecimal) |
| 04 | 04 | IP address (hexadecimal) |
Not all of these fields will be filled in for every exit point. For instance, at the bind exit point, only the local port number will be filled in.
Each stack exit will also be passed the address of a 24-byte user identification area. This area identifies the cross-memory TLI, OpenEdition (UNIX System Services), or IUCV user. The format will be as follows:
| Offset | Length | Field |
|---|---|---|
| 00 | 08 | Jobname |
| 08 | 08 | Stepname |
| 16 | 08 | Procstepname |
Exit Point: When a TCP bind request is received.
Function: This exit can accept or reject the request.
Addressing Mode: 31.
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'3'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit point: When a TCP connection request (syn packet) is received.
Function: This exit can accept or reject the request.
Addressing Mode: 31
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'4'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit Point: When a TCP connection request (syn packet) is about to be sent to a remote host.
Function: This exit can accept or reject the request.
Addressing Mode: 31
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'5'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit Point: When a new TCP connection is fully established.
Function: This exit point is intended for information only. The exit cannot reject the connection at this point.
Addressing Mode: 31
Dispatchable Unit: Task mode or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm length | Data length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'6'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Function: This exit point is intended for information only. The exit cannot reject the connection at this point.
Addressing Mode: 31
Dispatchable Unit: Task mode or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm length | Data length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'7'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit Point: When a UDP bind request is received.
Function: This exit can accept or reject the request.
Addressing Mode: 31.
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'8'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit Point: When a UDP datagram is about to be sent.
Function: This exit can accept or reject the request.
Addressing Mode: 31
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'9'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. The exit can set this word to a non-zero value to abort the send. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit Point: When a UDP datagram has been received.
Function: This exit can accept or reject the request.
Addressing Mode: 31
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'10'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. The exit can set this word to a non-zero value to reject the datagram. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit Point: When a RAW socket request has been received.
Function: This exit can accept or reject the request.
Addressing Mode: 31
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'11'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. The exit can set this word to a non-zero value to reject the request. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit Point: When a RAW IP datagram is about to be sent.
Function: This exit can accept or reject the request.
Addressing Mode: 31
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'12'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. The exit can set this word to a non-zero value to abort the send. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Exit Point: When a RAW IP datagram has been received.
Function: This exit can accept or reject the datagram.
Addressing Mode: 31
Dispatchable Unit: Task mode PC or SRB mode.
Restrictions: The exit should not block execution. The exit must not issue any SVC requests.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'13'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. The exit can set this word to a non-zero value to reject the datagram. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 24 | Address of the User Identification. |
Following are the FTP exit points. These exits are invoked in task mode, but MUST NOT block execution on the TCB.
These exits can be used to issue a message or reject an access request.
Exit Point: When an FTP user is logging in (when the PASS or ACCT command is received). The exit is called before the SAF router is called to log the user on.
Function: This exit can accept or reject the request.
Addressing Mode: 31
Dispatchable Unit: Task mode.
Restrictions: The exit must not block execution.
Register Contents at Entry:
| R00 | Exit point |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'14'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. The exit can set this word to a non-zero value to reject the login. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 08 | Address of the User ID. |
Function: This exit can accept or reject the request.
Addressing Mode: 31
Dispatchable Unit: Task mode.
Restrictions: The exit must not block execution.
Register Contents at Entry:
| R00 | Exit point ID |
| R01 | Parameter list address |
| R02-R12 | Zeros |
| R13 | Save area address |
| R14 | Return address |
| R15 | Entry point address |
Register Contents on Return:
| R00-R12 | Undefined |
| R13 | Restored |
| R14 | Undefined |
| R15 | Return Code 1 |
| Offset | Parm Length | Data Length | Description |
|---|---|---|---|
| +00 | 04 | -- | Exit point ID. This word will contain F'15'. |
| +04 | 04 | -- | Exit context. |
| +08 | 04 | -- | Return code 2. The exit can set this word to a non-zero value to reject the request. |
| +12 | 04 | -- | Address of the message routine. |
| +16 | 04 | 08 | Address of the local host AF_Inet. |
| +20 | 04 | 08 | Address of the remote host AF_Inet. |
| +24 | 04 | 52 | Address of the 44-byte dataset name, followed by an eight-byte member name (or blanks). |
| +28 | 04 | 06 | Address of the volume serial number, or blanks. |
| +32 | 04 | 01 | Address of a one-byte field identifying the authorization request type:
X'40' - Read X'20' - Write X'10' - Alter |
| +36 | 04 | 02 | Address of a two-byte field identifying the FTP operation type:
X'8000' - HELP command X'4000' - STAT command (Statistics) X'2000' - STOR command (Store) X'1000' - APPE command (Append) X'0800' - RETR command (Retrieve) X'2400' - STOU command (Store Unique) X'0200' - LIST command (Directory list) X'0100' - NLST command (Directory list) X'0080' - RNTO command (Rename) X'0040' - DELE command (Delete) X'0020' - Special PDS directory allocation for LIST/NLST. X'0010' - MKD command (Make Directory) |
| +40 | 04 | var | Address of the ACEE. The ACEE is mapped by macro IHAACEE. Its length is in the ACEELEN field. |
Users of prior releases of Cisco IOS for S/390 who have coded exits TCPX0001 and TCPX0002 to control inbound and outbound TCP connection requests, can use the SUNRCVD and SENDSYN exit points in this release of Cisco IOS for S/390 to accomplish the same purpose. The exit programs will have to be modified to conform to the new exit facility.
The following is a brief guide to help you modifying exits TCPX0001 and TCPS0002.
The SYNRCVD and SENDSYN exits will be called in either SRB mode or cross-memory stacking PC mode, and are subject to the restrictions imposed by those environments. Supervisor calls (SVCs) are not allowed.
The XITDEPL macro is not supported. The exit parameter lists vary among exit points. Use the T00DEXPL macro to map the parameter lists.
The XITMENT macro is not supported. Instead, use standard linkage conventions for saving registers and establishing addressability. General register 13 will contain the address of an 18 fullword register save area on entry to all exit points. Registers 14 and 15 contain the return address and entry point address of the exit program. The exit program may use all registers; it is not necessary to maintain the contents of any register during execution.
The XITMRET macro is not supported. Use standard linkage conventions to return to the exit facility. It is not necessary to restore any registers except register 13 before return to the exit facility. Place the return code in register 15 before returning.
The XITMFUNC GETMEM and FREEMEM services are not supported. Use STORAGE OBTAIN/RELEASE to obtain and release storage. Do not use GETMAIN/FREEMAIN, as these macros generate SVC calls.
The XITMFUNC WRITELOG function is not supported. Instead, the address of a message service routine is passed to the exit as part of the parameter list. To issue a message, call this routine using standard linkage conventions. Provide in register 1 the address of an 81-byte field in the form:
CL1'message_severity',CL80'message_text'See the "Overview of Messages" chapter in the Cisco IOS for S/390 Prefixed Messages manual for a list of the message severities.
The XITMFUNC TRACE function is not supported. A trace entry is written at entry to and return from each exit program. No facility exists for exit programs to write trace entries to the Cisco IOS for S/390 internal trace table.
The XITMSET macro is not supported. Where appropriate, the exit parameter lists can be updated directly by the exit program. It is important to note that, unlike TCPX0001 and TCPX0002, multiple exit programs can be run at each exit point. The value returned in general register 15 (return code 1) determines whether subsequent exit(s) will be called at that entry point. The value returned in the return code field in the parameter list (return code 2) determines whether the request is allowed or rejected. Set this field to a non-zero value to cause the request to be rejected.
There is no restriction placed on the name of the exit program(s).
As with TCPX0001 and TCPX0002, exit programs should not assume that an earlier exit point was called, or that it was successful. The exit context word is provided at each exit point to allow the exit program to communicate across exit points.
|
|