The TSO,ACF, SHOW MLID will display both GSO and ACFFDR minilid(MLID) definitions. Why does the "ACF, SHOW MLID" command show the flag bytes as "FLAG at +xx" for ACFFDR MLIDs rather than the external field name?
Release : 16.0
Component : CA ACF2 for z/OS
The "SHOW MLID" command lists the flags as "FLAG at +xx" since each flag byte can have up to 8 bit fields so there can be multiple external field names associated with each LIDREC DSECT field name. When doing the ACF, SHOW MLID, the "FLAG AT +xx" will only display for bit fields in an @MLID macro in the ACFFDR, it will not be displayed for GSO MLID bit fields. For example the following @CFDE entries define bit fields XXXXPROD and XXXXDEVL in the flag LIDI2FLG:
@CFDE XXXXPROD,LIDI2FLG,BIT,ALTER=ACCOUNT,LIST=ALL, X00540000
FLAGS=NULL,BITMAP=LIDI2F1,GROUP=2,ZERO=YES
@CFDE XXXXDEVL,LIDI2FLG,BIT,ALTER=ACCOUNT,LIST=ALL, X00580000
FLAGS=NULL,BITMAP=LIDI2F3,GROUP=2,ZERO=YES
XXXXPROD and XXXXDEVL are external Bit field names referenced in a LIST or CHANGE of a logonid, for example:
"CHANGE logonid XXXXDEVL"
This is why the "SHOW MLID" will just display the FLAG at +xx - there are multiple external name fields for LIDI2FLG. The ACFFDR assembly listing can be used to verify that the LIDI2FLG is at location +xx.
To map the fields from the ACFFDR MLID to the GSO MLID, the LIDREC DSECT name from the @MLID can be used to determine the external field name. The external field name is what is specified in the GSO MLID. The offset is determined based on the length of each field in the MLID - this length can be determined by the MLID DSECT.
CAX1MAC0(ACFLID)
LIDI2FLG DS X RESERVED FOR INSTALLATION
LIDI2F1 EQU X'80' FLAG 1
LIDI2F2 EQU X'40' FLAG 2
LIDI2F3 EQU X'20' FLAG 3
LIDI2F4 EQU X'10' FLAG 4
LIDI2F5 EQU X'08' FLAG 5
LIDI2F6 EQU X'04' FLAG 6
LIDI2F7 EQU X'02' FLAG 7
LIDI2F8 EQU X'01' FLAG 8