The following figure shows the record layout for SMF.
Note
This macro is supplied as member @SMF on the product distribution tape data set ?prefix.BBSAMP.
SMF record layout
@SMF DSECT * * SMF REC - PROSMS SMF RECORD LAYOUT. * * DSECT NAME - SMFPRHDR (DEFAULT). * CREATED BY - SMM90050. * SUBPOOL - N/A. * SIZE - SET BY CALLER OF SMFPRHDR. * SERIALIZED - N/A. * RESIDENCY - ENVIRONMENT DEPENDANT. * POINTED TO - N/A. * * FUNCTION - FORMAT OF THE RECORD TO BE WRITTEN TO SMF BY VARIOUS * PROSMS COMPONENTS. * SMFPRHDR DSECT SMFPRLEN DC H'0' RECORD LENGTH FOR VB OR VBS. SMFPRSEG DC H'0' SEGMENT DESCRIPTOR FOR VBS. * SMFPRFLG DC B'10000010' DEFAULT TO VS/2 XA. SMFPRRRF EQU X'80' NEW SMF RECORD FORMAT. SMFPRSUT EQU X'40' SUBTYPE FIELD IS USED. SMFPRV4 EQU X'10' MVS/ESA V4. SMFPRESA EQU X'08' MVS/ESA. SMFPRVXA EQU X'04' MVS/XA. SMFPROS EQU X'02' OS/VS2. SMFPRBFY EQU X'01' BERRYMAN MACHINE (PR/SM). * SMFPRRTY DC FL1'0' RECORD TYPE (NUMBER). SMFPRTME DC FL4'00' TIME IN HUNDRETHS REC WRITTEN. SMFPRDTE DC PL4'00' DATE RECORD WAS WRITTEN. SMFPRSID DC CL4' ' SYSTEM ID FROM SMCASID IN SMCA. * * END OF STANDARD SMF HEADER (W/O SUBTYPES) * SMFPRSSI DC CL4' ' SUBSYSTEM ID. * SMFPRSTY DC H'0' RECORD SUBTYPE. SMFSTMSG EQU 1 - MESSAGE SMF RECORD. SMFSTREC EQU 2 - RECOVERY PERFORMED. * * END OF STANDARD SMF HEADER (W/ SUBTYPES) * SMFPRTRN DC AL2(0) # OF TRIPLETS IN RECORD. DC H'0' RESERVED. * * 'TRIPLET' IS A TERM FOR 3 CONTIGUOUS FIELDS THAT DESCRIBE A * SUB-SECTION OF THIS RECORD. THE 3 FIELDS ARE THE OFFSET FROM THE * BEGINNING OF THE RECORD, THE LENGTH OF A DATA SECTION, AND THE * COUNT OF THE NUMBER OF DATA SECTIONS THAT MAKE UP THE * SUB-SECTION. IT IS POSSIBLE THAT A SUB-SECTION WILL NOT BE * GENERATED. IN THAT CASE THE COUNT WILL BE ZERO. FOR ANY RECORD * WITH TRIPLETS, THE LAST PART OF THE HEADER SECTION BEGINS WITH * THE FIRST TRIPLET. THIS TRIPLET DESCRIBES THE PRODUCT SECTION. * SMFPRTRP DS 0X ** PRODUCT SECTION TRIPLET. SMFPRPRS DC AL4(0) OFFSET TO THE PRODUCT SECTION. SMFPRPRL DC AL2(0) LENGTH OF PRODUCT SECTION. SMFPRPRN DC H'1' NUMBER OF SECTIONS (ALWAYS 1). * SMFPRJCS DS 0X ** JOB INFORMATION Control SECTION SMFPRJIO DC AL4(0) OFFSET TO THE JOB INFO SECTION. SMFPRJIL DC AL2(0) LENGTH OF JOB INFO SECTION. SMFPRJRN DC H'1' NUMBER OF SECTIONS (ALWAYS 1). * SMFPRMSG DS 0X ** MESSAGE Control SECTION. SMFPRMCS DC AL4(0) OFFSET TO THE MSG CNTL SECTION. SMFPRMCL DC AL2(0) LENGTH OF MSG CNTL SECTION. SMFPRMCN DC Y(0) NUMBER OF SECTIONS. * SMFPRDAS DS 0X ** DATA SECTION. SMFPRASS DC AL4(0) OFFSET TO THE DATA SECTION. SMFPRASL DC AL2(0) LENGTH OF THE DATA SECTION. SMFPRASN DC Y(0) NUMBER OF SECTIONS. * SMFPRDAC DS 0X ** DATA Control SECTION. SMFPRDCS DC AL4(0) OFFSET TO THE DATA CNTL SECTION SMFPRDCL DC AL2(0) LENGTH OF THE DATA CNTL SECTION SMFPRDCN DC Y(0) NUMBER OF SECTIONS. * ORG , MAKE SURE LOC CNTR AT MAX. DS 0F FILL TO FULLWORD. * SMFPRHDR_LEN EQU (*-SMFPRHDR) L(HEADER SECTION). SMFPRTRP_LEN EQU (*-SMFPRTRP) L(TRIPLET SECTION). SMFPRTR# EQU (*-SMFPRTRP)/8 MAX COUT OF TRIPLETS. * * PROSMS PRODUCT Control SECTION. * SMFPRPRO DSECT SMFPRPRD DC CL8'PROSMS' PRODUCT NAME. SMFPROVS DC X'00' PRODUCT VERSION NUMBER. SMFPRMPRE DC XL3'00' MESSAGE PREFIX SMFPRMODE DC XL1'00' MODE SMFPRRS1 DC XL3'00' RESERVED. SMFPRMVS DC CL8' ' MVS SOFTWARE LEVEL FROM CVT-40. SMFPRXNM DC CL8' ' SYSPLEX NAME (FROM ECVTSPLX). SMFPRSNM DC CL8' ' NAME OF THE CURRENT SYSTEM. SMFPRFUN DC CL8' ' FUNCTION NAME. SMFPRMOD DC CL8' ' MODULE NAME. SMFPRCSN DC CL8' ' CSECT NAME. SMFOSYS DC CL12' ' OS ID. SMFOSFM DC CL12' ' FMID. SMFDFPL DC CL12' ' DFP LEVEL. SMFCPUM DC CL12' ' CPU MODEL. SMFCPUS DC CL12' ' CPU SERIAL NUMBER. SMFTSOE DC CL12' ' TSO/E LEVEL. SMFSSID DC CL4' ' SUBSYSTEM ID USED BY LOADER. SMFPRSCL EQU (*-SMFPRPRO) LENGTH OF PRODUCT SECTION. * * PROSMS JOB INFORMATION SECTION. * SMFPRJOB DSECT SMFJNAME DC CL8' ' JOB NAME. SMFPRJID DC CL8' ' JES JOB ID. SMFPRJS DC CL8' ' CURRENT JOBSTEP. SMFPRJPS DC CL8' ' CURRENT JOB PROCSTEP. SMFPRJSP DC CL8' ' PROGRAM NAME ON EXEC CARD. SMFRGRP DC CL8' ' RACF GROUP SMFRUID DC CL8' ' RACF USERID SMFJST DC F'0' JOB START TIME SMFJSD DC F'0' JOB START DATE SMFJCLAS DC C' ' JOB CLASS DS 0D DOUBLEWORD ALIGNMENT. SMFPRJSL EQU (*-SMFPRJOB) LENGTH OF PRODUCT SECTION. * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * M E S S A G E C O N T R O L S E C T I O N ( M C S ) * PSMPMCS DSECT PSMMSGLN DC Y(0) LENGTH OF MESSAGE. PSMMSGR1 DC Y(0) RESERVED. PSMMSGTX DS 0C START OF MESSAGE TEXT. * * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * D A T A C O N T R O L S E C T I O N ( D C S ) * * THIS IS BASICALLY A COPY OF THE GWA. USE THE DCS TRIPLET TO * DETERMINE THE AVAILABLE SET OF FIELDS ALONG WITH A DETERMINATION * OF ITS INCLUSING INTO THE RECORD. IF THE LENGTH IS ZERO, IT IS * NOT IN THE RECORD. * * -- NOTE -- ANY CHANGE MADE TO THE GWA IN THE COPY BOOK SMM4WORK PSMPDCS DSECT PSMMSGBLEN EQU 256 MESSAGE BUFFER LEN - MUST BE * SAME AS PMSGBLEN!!!!!! * PSMEYE DS CL4 SMM4 PSMRDW DS H LENGTH OF RECORD PSMRDWZ DS H HALFWORD INITIALIZED TO ZERO PSMSMUV DS F SMUV ADDRESS PSMSMAT DS F SMAT ADDRESS PSMSMFNM DS C SMF 'NAME' FIELD PSMSMFRT DS C SMF RECORD TYPE PSMSMFTI DS XL4 TIME OF RECORD PSMSMFDA DS XL4 DATE OF RECORD PSMSMFSI DS CL4 SYSTEM IDENTIFICATION (SID) PSMSMFJN DS CL8 JOB NAME PSMSMFET DS XL4 ENTRY TIME TO RDR (.01 SECS) PSMSMFED DS XL4 ENTRY DATE TO RDR (00YYDDDF) PSMX37 DS CL4 C'X37' PSMVERS DS CL2 RELEASE/VERSION NUMBERS PSMCPUTI DS F CUMMULATIVE CPU TIME PSMSTEPT DS A STEP CPU TIME PSMERROR DS C Y=RECOVERY NOT ATTEMPTED PSMFFLAG DS C TYPE OF RECOVERY PSMFRED EQU 00 REDUCE (SPACSECR) PSMFSEC EQU 04 ADD SECONDARY (SPACSECA) PSMFSWI EQU 08 VOLUME ADD (SPACVOLA) PSMFSNA EQU 12 REDUCE PRIMARY (SPACPRIM) PSMFRCAT EQU 16 RECAT (NOCATLG2) PSMFVRED EQU 20 VSAM REDUCE (SPACSECR) PSMFSECI EQU 24 SECNDRY INCRESE(SPACSECI) PSMFSECB EQU 28 SECNDRY BESTFIT(SPACSECB) PSMFSWIR EQU 32 VOL ADD SECRED (SPACSWIR) PSMSKIP DS C SKIP FLAG BITS PSMSKIPEXCP EQU X'80' 1... .... SKIP EXCP CHECK PSMSKIPNOTE EQU X'40' .1.. .... SKIP NOTE/POINT CHECK PSMSKIPDISP EQU X'20' ..1. .... SKIP DISP CHECK PSMSKIPDSN EQU X'10' ...1 .... SKIP DSNAME CHECK PSMSKIPENQU EQU X'08' .... 1... SKIP DSNAME ENQ CHECK PSMSKIPDC EQU X'04' .... .1.. SKIP DEVICE CHARACTERISTICS PSMSKIPCTG EQU X'02' .... ..1. SKIP CONTIG CHECK *SPARE EQU X'01' .... ...1 SPARE * PSMSTEPN DS AL1 STEP NUMBER PSMDATE DS F CURRENT DATE PSMTIME DS F CURRENT TIME PSMBTIME DS F CURRENT TIME (BINARY) PSMYEAR DS F CURRENT YEAR PSMNDAY DS F CURRENT # OF DAYS SINCE PSMCDAY DS CL10 CURRENT DAY PSMCTIME DS CL8 CURRENT TIME (CHARACTER) PSMSTYP DS CL3 SPACE ALLOCATION TYPE PSMIDCVS DS C C'Y' = REDUCE PRIMARY FOR * NON-JCL-ALLOC VSAM (IDCAMS) * * INFORMATION GATHERED FOR USE DURING SELECTION PROCESSING. * PSMJNAME DS CL8 NAME OF JOB PSMJACT1 DS CL20 JOB ACCT #1 PSMJACT2 DS CL20 JOB ACCT #2 PSMJACT3 DS CL20 JOB ACCT #3 PSMSACT1 DS CL20 STEP ACCT #1 PSMSACT2 DS CL20 STEP ACCT #2 PSMSACT3 DS CL20 STEP ACCT #3 PSMPGMNM DS CL20 PROGRAMMER NAME FIELD PSMRGRP DS CL8 RACF GROUP PSMRUID DS CL8 RACF USERID PSMACF2_USERID DS CL24 ACF2 USERID PSMOWNER DS CL40 VSAM OWNER ID PSMDSNM DS CL44 NAME OF DATASET PSMCAT DS CL44 CATALOG NAME DATASET IS IN PSMDSORG DS CL3 NOT IN USE PSMDSTYP DS CL4 DATASET TYPE (PERM/TEMP/GDG) PSMUNITT DS CL8 UNIT TYPE (IE. 3350) PSMDDNM DS CL8 ORIGINAL DDNAME PSMJTYP DS CL3 TYPE OF TASK (JOB,STC,TSU) PSMDISP1 DS CL3 DATASET DISPOSITION PSMLTYPE DS CL3 ALLOCATION TYPE (CYL,TRK,BLK) PSMDISP2 DS CL7 SCHED. DISP (CATLG,KEEP..) PSMDISP3 DS CL7 ABTERM DISP (CATLG,KEEP..) PSMREL DS CL1 C'Y' - RLSE CODED IN SPACE PAR PSMMDAY DS CL10 JOB START DAY OF WEEK PSMMJDAT DS CL6 JOB START JULIAN DATE PSMMDATE DS CL8 JOB START DATE (CHARACTER) PSMMTIME DS CL8 JOB START TIME (CHARACTER) PSMEXPDT DS CL8 EXPIRATION DATE PSMRETPD DS F RETENTION PERIOD PSMPROG DS CL8 PROGRAM NAME ON EXEC CARD PSMRECOV DS CL8 TYPE OF RECOVERY PSMUNITN DS CL8 UNIT NAME PSMOPER DS C OPER SUPPLIED VOLUME FOR SWITC PSMJCLAS DS C JOB CLASS PSMTMDSN DS C TEMP DATASET FLAG (Y=YES) PSMVOLSQ DS H VOLUME SEQUENCE PSMNVOL DS F NUMBER OF VOLUMES PSMPSPC DS F PRIMARY SPACE ALLOCATION PSMSSPC DS F SECONDARY SPACE ALLOCATION PSMJST DS F JOB START TIME PSMJSD DS F JOB START DATE PSMNUNIT DS F NUMBER OF UNITS PSMNQUAL DS F NUMBER OF DSNAME QUALIFIERS PSMHLQ DS 0CL8 HLQ OF DSNAME PSMQUAL1 DS CL8 1ST QUALIFIER PSMQUAL2 DS CL8 2ND QUALIFIER PSMQUAL3 DS CL8 3RD QUALIFIER PSMQUAL4 DS CL8 4TH QUALIFIER PSMQUAL5 DS CL8 5TH QUALIFIER PSMQUAL6 DS CL8 6TH QUALIFIER PSMQUAL7 DS CL8 7TH QUALIFIER PSMQUAL8 DS CL8 8TH QUALIFIER PSMQUALL DS CL8 LAST QUALIFIER PSMQUALS EQU *-PSMHLQ LENGTH OF QUALS PSMSTEP DS CL8 STEP NAME PSMPROCS DS CL8 PROC STEP NAME PSMCDCT DS XL96 DCT FOR CURRENT UCB PSMMSGB DS CL(PSMMSGBLEN) DEFAULT BUFFER FOR MSGED * * Note: Actual message text begins at PSMMSGB+8. The MSGPREF * global is not included in the message ID (XXXnnnna). * PSMTEXT DS F TOTAL NUMBER OF EXTENTS PSMPOOL DS CL8 EASY/POOL POOL NAME FOR VOLUME PSMREFV DS CL6 EASY/POOL REF VOLID PSMLIB DS C DSNTYPE=LIBRARY (PDSE) PSMIAM DS C IAM DATASET (Y/N) PSMSIZE DS F PRIMARY SPACE IN KB PSMSIZES DS F SECONDARY SPACE IN KB PSMMSIZE DS F 1 PRI SPACE + 15 SECS IN KB PSMCSPC DS F CURRENT SPACE USED + NEW EXTEN PSMLRECL DS F DSN LRECL PSMBLOCK DS F DSN BLOCKSIZE PSMRECFM DS CL3 RECORD FORMAT PSMSTRIP DS C STRIPED DATASET (Y/N) PSMSTRTY DS CL2 STRIPED DATASET TYPE PSMSTRCT DS F STRIPED DATASET STRIPE COUNT PSMHIER DS C HIERARCHICAL DATASET (Y/N) PSMROUND DS C 'Y' - ROUND CODED IN SPACE PAR PSMSPEC DS C 'Y' - SPECIFIC ALLOCATION PSMSMS13 DS C 'Y' - DFSMS 1.3 OR HIGHER * * MISC FIELDS * PSMDVOL DS CL6 VOLUME TO SWITCH TO PSMRNVOL DS H NO. OF ORIGINAL VOLS (RECAT) PSMRVOL DS CL6 ORIGINAL VOLUME NAME (RECAT) PSMORGK DS F ORIGINAL PSW KEY ON ENTRY PSMADDV DS CL1 NEED TO ADD VOLUME TO JFCB PSMAVGR DS CL1 AVGREC KEYWORD IN EFFECT PSMVCLST DS CL44 VSAM CLUSTER DSNAME PSMVCOMP DS CL5 VSAM COMP TYPE (DATA OR INDEX) PSMVTYPE DS CL10 TYPE OF VSAM DATA SET PSMVDTYP DS CL4 TYPE OF VSAM CLUSTER PSMDYNAL DS C C'Y' - DYNAMIC ALLOCATION FLAG PSMEFLAG DS C C'Y'-MESSAGE IS ALREADY EDITED * * Note: Proprietary fields follow. The length of the PSMPDCS * record is 2112 bytes. (PFMSMFE equates to x'840'.) * PSMSMFE EQU (*-PSMPDCS),(*-PSMPDCS) END OF SMF RECORD