/* REXX - statistics 0122-92148-93314-0817-00056-00087-00000-REXX sys6.cbt.file078(rexx) returns the name of the terminal -- e.g. terminal = gettrid(); say terminal +------------------------------------------------------------------+ | Name: GETTRID | | Type: REXX exec | | Purpose: Extract the ACEETRID from the RACF ACEE. | | Release: MVS/ESA v4.2.2 and TSO/E v2.4 | | Programmer: John Kalinich | | Date: 3/10/93 | | Abstract: A sub-function to extract the VTAM terminal id from | | the RACF Accessor Environment Element. The ACEE is | | not fetch protected. This function works in ACF2 | | systems. | | | | Call Format: GETTRID() | | | | Logic: Extracts address of ASCB (PSAAOLD at x'224') | | Extracts address of ASXB (ASCB+x'6C') | | Extracts address of ACEE (ASXB+x'C8') | | Extracts ACEETRID | +------------------------------------------------------------------+ */ trace ascb_ptr = get_ptr(224,0) asxb_ptr = get_ptr(ascb_ptr,'6c') acee_ptr = get_ptr(asxb_ptr,'c8') aceetrid = get_data(acee_ptr,'40',8) exit aceetrid /* +-----------------------------------------+ | Procedures and functions defined below. | +-----------------------------------------+ */ get_ptr: procedure /* +-----------------------------------------+ | returns a 4 byte pointer as hexadecimal | | string at address addr+offset. | | ADDR and OFFSET must be HEX strings. | +-----------------------------------------+ */ arg addr, offset temp = d2x(x2d(addr) + x2d(offset)) return c2x(storage(temp,4)) exit get_data: procedure /* +-----------------------------------------+ | returns LENGTH bytes at ADDR+OFFSET as | | an EBCDIC string. | | ADDR and OFFSET must be HEX strings. | | LENGTH must be a decimal string. | +-----------------------------------------+ */ arg addr, offset, length temp = d2x(x2d(addr) + x2d(offset)) return storage(temp,length) exit /* J. KALINICH, X4521 */ /* EXEC TO GET THE RACF ACEE TERMINAL ID */