home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v5.zip
/
TOOLKT21
/
ASM
/
OS2INC
/
REXXSAA.INC
< prev
next >
Wrap
Text File
|
1993-03-12
|
16KB
|
347 lines
;**********************************************************************
; Module Name: REXXSAA.H
;
; REXX Common Definitions File
;
; @Copyright 1989, 1991 IBM Corporation
; Licensed Materials - Property of IBM
;
; *********************************************************************
;
; #define: To include:
;
; INCL_REXXSAA Complete Rexx support
; INCL_RXSUBCOM Rexx subcommand handler support
; INCL_RXSHV Rexx shared variable pool support
; INCL_RXFUNC Rexx external function support
; INCL_RXSYSEXIT Rexx system exit support
; INCL_RXMACRO Rexx macro space support
; INCL_RXARI Rexx asynchronous Trace/Halt support
;
;********************************************************************
ifndef REXXSAA_INCLUDED
REXXSAA_INCLUDED EQU 1
; XLATON
ifndef OS2_INCLUDED
INCLUDE os2.INC
endif
;********************************************************************
;
; Common
;
;********************************************************************
; This section defines return codes and constants that are the
; same for both 16-bit and 32-bit REXX calls.
ifdef INCL_REXXSAA
INCL_RXSUBCOM EQU 1
INCL_RXSHV EQU 1
INCL_RXFUNC EQU 1
INCL_RXSYSEXIT EQU 1
INCL_RXMACRO EQU 1
INCL_RXARI EQU 1
endif ; INCL_REXXSAA
;*** Structure for external interface string (RXSTRING)
RXSTRING STRUC
rxstr_strlength DD ? ; length of string
rxstr_strptr DB SIZE PCH DUP (?) ; pointer to string
RXSTRING ENDS
RXAUTOBUFLEN EQU 256
;*** Structure for system exit block (RXSYSEXIT) 32-bit
RXSYSEXIT STRUC
syse_sysexit_name DB SIZE PSZ DUP (?) ; subcom enviro for sysexit
syse_sysexit_code DD ? ; sysexit function code
RXSYSEXIT ENDS
;*** Call type codes for use on interpreter startup
RXCOMMAND EQU 0 ; Program called as Command
RXSUBROUTINE EQU 1 ; Program called as Subroutin
RXFUNCTION EQU 2 ; Program called as Function
;*** Subcommand Interface defines
ifdef INCL_RXSUBCOM
;*** Drop Authority for RXSUBCOM interface
RXSUBCOM_DROPPABLE EQU 00H ; handler to be dropped by all
RXSUBCOM_NONDROP EQU 01H ; process with same PID as the
; registrant may drop environ
;*** Return Codes from RXSUBCOM interface
RXSUBCOM_ISREG EQU 01H ; Subcommand is registered
RXSUBCOM_ERROR EQU 01H ; Subcommand Ended in Error
RXSUBCOM_FAILURE EQU 02H ; Subcommand Ended in Failure
RXSUBCOM_BADENTRY EQU 1001 ; Invalid Entry Conditions
RXSUBCOM_NOEMEM EQU 1002 ; Insuff stor to complete req
RXSUBCOM_BADTYPE EQU 1003 ; Bad registration type.
RXSUBCOM_NOTINIT EQU 1004 ; API system not initialized.
RXSUBCOM_OK EQU 0 ; Function Complete
RXSUBCOM_DUP EQU 10 ; Duplicate Environment Name-
; but Registration Completed
RXSUBCOM_MAXREG EQU 20 ; Cannot register more
; handlers
RXSUBCOM_NOTREG EQU 30 ; Name Not Registered
RXSUBCOM_NOCANDROP EQU 40 ; Name not droppable
RXSUBCOM_LOADERR EQU 50 ; Could not load function
RXSUBCOM_NOPROC EQU 127 ; RXSUBCOM routine - not found
endif ; INCL_RXSUBCOM for defines
;*** Shared Variable Pool Interface defines
ifdef INCL_RXSHV
;*** Function Codes for Variable Pool Interface (shvcode)
RXSHV_SET EQU 00H ; Set var from given value
RXSHV_FETCH EQU 01H ; Copy value of var to buffer
RXSHV_DROPV EQU 02H ; Drop variable
RXSHV_SYSET EQU 03H ; Symbolic name Set variable
RXSHV_SYFET EQU 04H ; Symbolic name Fetch variable
RXSHV_SYDRO EQU 05H ; Symbolic name Drop variable
RXSHV_NEXTV EQU 06H ; Fetch "next" variable
RXSHV_PRIV EQU 07H ; Fetch private information
RXSHV_EXIT EQU 08H ; Set function exit value
;*** Return Codes for Variable Pool Interface
RXSHV_NOAVL EQU 144 ; Interface not available
;*** Return Code Flags for Variable Pool Interface (shvret)
RXSHV_OK EQU 00H ; Execution was OK
RXSHV_NEWV EQU 01H ; Variable did not exist
RXSHV_LVAR EQU 02H ; Last var trans via SHVNEXTV
RXSHV_TRUNC EQU 04H ; Truncation occurred-Fetch
RXSHV_BADN EQU 08H ; Invalid variable name
RXSHV_MEMFL EQU 10H ; Out of memory failure
RXSHV_BADF EQU 80H ; Invalid funct code (shvcode)
;*** Structure of Shared Variable Request Block (SHVBLOCK)
SHVBLOCK STRUC
shvb_shvnext DW ? ; pointer to the next block
shvb_shvname DB SIZE RXSTRING DUP (?) ; Pointer to the name buffer
shvb_shvvalue DB SIZE RXSTRING DUP (?) ; Pointer to the value buffer
shvb_shvnamelen DD ? ; Length of the name value
shvb_shvvaluelen DD ? ; Length of the fetch value
shvb_shvcode DB ? ; Function code for this block
shvb_shvret DB ? ; Individual Return Code Flags
SHVBLOCK ENDS
endif ; INCL_RXSHV for defines
;*** External Function Interface
ifdef INCL_RXFUNC
;*** Registration Type Identifiers for Available Function Table
RXFUNC_DYNALINK EQU 1 ; Function Available in DLL
RXFUNC_CALLENTRY EQU 2 ; Registered as mem entry pt.
;*** Return Codes from RxFunction interface
RXFUNC_OK EQU 0 ; REXX-API Call Successful
RXFUNC_DEFINED EQU 10 ; Function Defined in AFT
RXFUNC_NOMEM EQU 20 ; Not Enough Mem to Add
RXFUNC_NOTREG EQU 30 ; Funct Not Registered in AFT
RXFUNC_MODNOTFND EQU 40 ; Funct Dll Module Not Found
RXFUNC_ENTNOTFND EQU 50 ; Funct Entry Point Not Found
RXFUNC_NOTINIT EQU 60 ; API not initialized
RXFUNC_BADTYPE EQU 70 ; Bad function type
endif ; INCL_RXFUNC for defines
;*** System Exits defines
ifdef INCL_RXSYSEXIT
;*** Drop Authority for Rexx Exit interface
RXEXIT_DROPPABLE EQU 00H ; handler to be dropped by all
RXEXIT_NONDROP EQU 01H ; process with same PID as the
; registrant may drop environ
;*** Exit return actions
RXEXIT_HANDLED EQU 0 ; Exit handled exit event
RXEXIT_NOT_HANDLED EQU 1 ; Exit passes on exit event
RXEXIT_RAISE_ERROR EQU (-1 ) ; Exit handler error occurred
;*** Return Codes from RXEXIT interface
RXEXIT_ISREG EQU 01H ; Exit is registered
RXEXIT_ERROR EQU 01H ; Exit Ended in Error
RXEXIT_FAILURE EQU 02H ; Exit Ended in Failure
RXEXIT_BADENTRY EQU 1001 ; Invalid Entry Conditions
RXEXIT_NOEMEM EQU 1002 ; Insuff stor to complete req
RXEXIT_BADTYPE EQU 1003 ; Bad registration type.
RXEXIT_NOTINIT EQU 1004 ; API system not initialized.
RXEXIT_OK EQU 0 ; Function Complete
RXEXIT_DUP EQU 10 ; Duplicate Exit Name-
; but Registration Completed
RXEXIT_MAXREG EQU 20 ; Cannot register more
; handlers
RXEXIT_NOTREG EQU 30 ; Name Not Registered
RXEXIT_NOCANDROP EQU 40 ; Name not droppable
RXEXIT_LOADERR EQU 50 ; Could not load function
RXEXIT_NOPROC EQU 127 ; RXEXIT routine - not found
; System Exit function and sub-function definitions
RXENDLST EQU 0 ; End of exit list.
RXFNC EQU 2 ; Process external functions.
RXFNCCAL EQU 1 ; subcode value.
RXCMD EQU 3 ; Process host commands.
RXCMDHST EQU 1 ; subcode value.
RXMSQ EQU 4 ; Manipulate queue.
RXMSQPLL EQU 1 ; Pull a line from queue
RXMSQPSH EQU 2 ; Place a line on queue
RXMSQSIZ EQU 3 ; Return num of lines on queue
RXMSQNAM EQU 20 ; Set active queue name
RXSIO EQU 5 ; Session I/O.
RXSIOSAY EQU 1 ; SAY a line to STDOUT
RXSIOTRC EQU 2 ; Trace output
RXSIOTRD EQU 3 ; Read from char stream
RXSIODTR EQU 4 ; DEBUG read from char stream
RXSIOTLL EQU 5 ; Return linelength(N/A OS/2)
RXHLT EQU 7 ; Halt processing.
RXHLTCLR EQU 1 ; Clear HALT indicator
RXHLTTST EQU 2 ; Test HALT indicator
RXTRC EQU 8 ; Test ext trace indicator.
RXTRCTST EQU 1 ; subcode value.
RXINI EQU 9 ; Initialization processing.
RXINIEXT EQU 1 ; subcode value.
RXTER EQU 10 ; Termination processing.
RXTEREXT EQU 1 ; subcode value.
RXNOOFEXITS EQU 11 ; 1 + largest exit number.
endif ; INCL_RXSYSEXIT for defines
;*** Asynchronous Request Interface defines
ifdef INCL_RXARI
;*** Return Codes from Asynchronous Request interface
RXARI_OK EQU 0 ; Interface completed
RXARI_NOT_FOUND EQU 1 ; Target program not found
RXARI_PROCESSING_ERROR EQU 2 ; Error processing request
endif ; INCL_RXARI for defines
;*** Macro Space Interface defines
ifdef INCL_RXMACRO
;*** Registration Search Order Flags
RXMACRO_SEARCH_BEFORE EQU 1 ; Beginning of search order
RXMACRO_SEARCH_AFTER EQU 2 ; End of search order
;*** Return Codes from RxMacroSpace interface
RXMACRO_OK EQU 0 ; Macro interface completed
RXMACRO_NO_STORAGE EQU 1 ; Not Enough Storage Available
RXMACRO_NOT_FOUND EQU 2 ; Requested function not found
RXMACRO_EXTENSION_REQUIRED EQU 3 ; File ext required for save
RXMACRO_ALREADY_EXISTS EQU 4 ; Macro functions exist
RXMACRO_FILE_ERROR EQU 5 ; File I/O error in save/load
RXMACRO_SIGNATURE_ERROR EQU 6 ; Incorrect format for load
RXMACRO_SOURCE_NOT_FOUND EQU 7 ; Requested cannot be found
RXMACRO_INVALID_POSITION EQU 8 ; Invalid search order pos
RXMACRO_NOT_INIT EQU 9 ; API not initialized
endif ; INCL_RXMACRO for defines
;********************************************************************
;
; 32-bit
;
;********************************************************************
;*** Subcommand Interface
ifdef INCL_RXSUBCOM
endif ; INCL_RXSUBCOM
;*** Shared Variable Pool Interface
ifdef INCL_RXSHV
endif ; INCL_RXSHV
;*** External Function Interface
ifdef INCL_RXFUNC
endif ; INCL_RXFUNC
;*** System Exits
ifdef INCL_RXSYSEXIT
;*** Subfunction RXFNCCAL - External Function Calls
RXFNC_FLAGS STRUC
fl_fs DB ?
RXFNC_FLAGS ENDS
fl_rxfferr EQU 01h
fl_rxffnfnd EQU 02h
fl_rxffsub EQU 04h
RXFNCCAL_PARM STRUC
fnc_rxfnc_flags DB SIZE RXFNC_FLAGS DUP (?) ; function flags
fnc_rxfnc_name DB SIZE PUCHAR DUP (?) ; Pointer to function name.
fnc_rxfnc_namel DW ? ; Length of function name.
fnc_rxfnc_que DB SIZE PUCHAR DUP (?) ; Current queue name.
fnc_rxfnc_quel DW ? ; Length of queue name.
fnc_rxfnc_argc DW ? ; Number of args in list.
fnc_rxfnc_argv DW ? ; Pointer to argument list.
fnc_rxfnc_retc DB SIZE RXSTRING DUP (?) ; Return value.
RXFNCCAL_PARM ENDS
;*** Subfunction RXCMDHST -- Process Host Commands
RXCMD_FLAGS STRUC
fl_fs DB ?
RXCMD_FLAGS ENDS
fl_rxfcfail EQU 01h
fl_rxfcerr EQU 02h
RXCMDHST_PARM STRUC
rx_rxcmd_flags DB SIZE RXCMD_FLAGS DUP (?) ; error/failure flags
rx_rxcmd_address DB SIZE PUCHAR DUP (?) ; Pointer to address name.
rx_rxcmd_addressl DW ? ; Length of address name.
rx_rxcmd_dll DB SIZE PUCHAR DUP (?) ; dll name for command.
rx_rxcmd_dll_len DW ? ; Length of dll name.
rx_rxcmd_command DB SIZE RXSTRING DUP (?) ; The command string.
rx_rxcmd_retc DB SIZE RXSTRING DUP (?) ; Pointer to return buffer
RXCMDHST_PARM ENDS
;*** Subfunction RXMSQPLL -- Pull Entry from Queue
RXMSQPLL_PARM STRUC
pll_rxmsq_retc DB SIZE RXSTRING DUP (?) ; Pointer to dequeued entry
; buffer. User allocated.
RXMSQPLL_PARM ENDS
;*** Subfunction RXMSQPSH -- Push Entry on Queue
RXMSQ_FLAGS STRUC
fl_fs DB ?
RXMSQ_FLAGS ENDS
fl_rxfmlifo EQU 01h
RXMSQPSH_PARM STRUC
psh_rxmsq_flags DB SIZE RXMSQ_FLAGS DUP (?) ; LIFO/FIFO flag
psh_rxmsq_value DB SIZE RXSTRING DUP (?) ; The entry to be pushed.
RXMSQPSH_PARM ENDS
;*** Subfunction RXMSQSIZ -- Return the Current Queue Size
RXMSQSIZ_PARM STRUC
siz_rxmsq_size DD ? ; Number of Lines in Queue
RXMSQSIZ_PARM ENDS
;*** Subfunction RXMSQNAM -- Set Current Queue Name
RXMSQNAM_PARM STRUC
nam_rxmsq_name DB SIZE RXSTRING DUP (?) ; RXSTRING containing
; queue name.
RXMSQNAM_PARM ENDS
;*** Subfunction RXSIOSAY -- Perform SAY Clause
RXSIOSAY_PARM STRUC
say_rxsio_string DB SIZE RXSTRING DUP (?) ; String to display.
RXSIOSAY_PARM ENDS
;*** Subfunction RXSIOTRC -- Write Trace Output
RXSIOTRC_PARM STRUC
trcparm_rxsio_string DB SIZE RXSTRING DUP (?) ; Trace line to display.
RXSIOTRC_PARM ENDS
;*** Subfunction RXSIOTRD -- Read Input from the Terminal
RXSIOTRD_PARM STRUC
trd_rxsiotrd_retc DB SIZE RXSTRING DUP (?) ; RXSTRING for output.
RXSIOTRD_PARM ENDS
;*** Subfunction RXSIODTR -- Read Debug Input from the Terminal
RXSIODTR_PARM STRUC
dtr_rxsiodtr_retc DB SIZE RXSTRING DUP (?) ; RXSTRING for output.
RXSIODTR_PARM ENDS
;*** Subfunction RXHSTTST -- Test for HALT Condition
RXHLT_FLAGS STRUC
fl_fs DW ?
RXHLT_FLAGS ENDS
fl_rxfhhalt EQU 01h
RXHLTTST_PARM STRUC
tst_rxhlt_flags DB SIZE RXHLT_FLAGS DUP (?) ; Set if HALT occurred
RXHLTTST_PARM ENDS
;*** Subfunction RXTRCTST -- Test for TRACE Condition
RXTRC_FLAGS STRUC
fl_fs DW ?
RXTRC_FLAGS ENDS
fl_rxftrace EQU 01h
RXTRCTST_PARM STRUC
tst_rxtrc_flags DB SIZE RXTRC_FLAGS DUP (?) ; Set to run external trace
RXTRCTST_PARM ENDS
endif ; INCL_RXSYSEXIT
;*** Asynchronous Request Interface
ifdef INCL_RXARI
endif ; INCL_RXARI
;*** Macro Space Interface
ifdef INCL_RXMACRO
endif ; INCL_RXMACRO
endif ; REXXSAA_INCLUDED