The question how SMF records can be accessed with any generality is being fudged.

One can now access some of them some of the time in (modern) COBOL, which does support the data type FUNCTION POINTER.

COBOL does not, however, support self-defining records, illustrated by the trivial PL/I construct

declare 1 SDAT based(SDATp),  /* self-defining array */
 2 sdls signed binary fixed(31,0),  /* low element subscript */
 2 sdhs signed binary fixed(31,0),  /* high element subscript */
 2 sdek signed binary fixed(31,0),  /* single-element byte count */
2 sdea(0: refer(SDDAT.sdls):1 refer(SDAT.sdhs)) character(1 refer(SDAT.sdek)) ;

which can be used as a sort of DSECT for any character-string array. Such self-defining records and subrecords abound in SMF output. (COBOL types who may suppose that COBOL's occurs-depending is a functioonal equivalent of PL/I's refer are warned that it is not.)

SMF records can be accessed and manipulated using HLASM routines, and this can be done in PL/I too. It cannot, in general, be done in COBOL or indeed in C/C++.

SMF-accessing routines that are to see repeated, significant, heavy use should therefore be written in assembly language. Those written to answer particular questions should be written in PL/I instead, and if they are to be written in a statement-level procedural language they must be written in PL/I.

It is, I think, worth noting explicitly that Ed Gould, alone among contributors to this thread, did identify this problem.

John Gilmore
Ashland, MA 01721-1817
USA

_________________________________________________________________
http://newlivehotmail.com

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to