/* REXX Original by Willy Jensen Get info from SDSF virtual panels See chapter 'SDSF panels' in the 'SDSF Users Guide' manual. For some reason invocations after the first may not populate variables, hence the SDSF command being in a separate procedure. Return-stem 'XSDSF.' is chosen to allow for the 'DROP XSDSF.' command. */ /* list all parmlibs */ say 'All parmlibs...' if XSDSF('PARM')=0 then, do n=1 to XSDSF.dsname.0 say left(XSDSF.dsname.n,44) XSDSF.volser.n end say '' /* list linklist containing .SC */ say 'Linklist containing .SC' if XSDSF('LNK','dsname eq *.SC*')=0 then, do n=1 to XSDSF.dsname.0 say left(XSDSF.dsname.n,44) XSDSF.volser.n end say '' /* list proclibs starting with SYS1. */ say 'Proclibs starting with SYS1.' address SDSF "ISFEXEC PROC" if XSDSF('PROC','dsname eq SYS1.*')=0 then, do n=1 to XSDSF.ddname.0 say left(XSDSF.ddname.n,8) XSDSF.dsname.n end say '' /* dsn enqs */ Call XSDSF 'ENQD' do n=1 to XSDSF.minor.0 say left(XSDSF.minor.n,44) XSDSF.reqtype.n end exit 0 XMsg: if arg(1)<>'' then say arg(1);return word(arg(2) 0,1) XSdsf: Procedure expose XSDSF. drop xsdsf. if isfcalls('ON')<>0 then exit xmsg('IsfCalls ON failed',8) parse arg cmd,filter if filter<>'' then, parse value 'AND' filter with isffiltermode isffilter address SDSF "ISFEXEC" cmd "(NOMODIFY PREFIX XSDSF.)" if rc=0 then return 0 say 'Sdsf' cmd 'rc' rc isfmsg do n=1 to isfmsg2.0 say isfmsg2.n end return rc