/*-------------------------------------------------------------------+ | COPYRIGHT (C) 1995, SAS INSTITUTE INC. | | UNPUBLISHED - ALL RIGHTS RESERVED | | S A S / C S A M P L E | | | | NAME: TIOTLIST | | LANGUAGE: C | | PURPOSE: Return the TIOT structure for the current DD entry. | | MVS - | | COMPILE: Use JCL in prefix.SAMPLE.AUX(JOBDDN). | | LINK: Use JCL in prefix.SAMPLE.AUX(JOBDDN). | | EXECUTE: Use JCL in prefix.SAMPLE.AUX(JOBDDN). | | TSO - N/A | | MVS - N/A | | INPUT: Parms: tiot: pointer to TIOT structure | | len: first time through it should be zero (0)| | after that it is reserved! | | OUTPUT: pointer to TIOT structure | | Note: the first call to TIOTLIST will return the | | job name and step name (in addition to the DD | | entry). All invocations after that will only | | return the current DD entry. | | USAGE: See sample program JOBDDN | | SYSTEM NOTES: Must be compiled with version 4.00 (or later) | | MISC NOTES: The TIOT structure was created from the TIOT DSECT | | using the DSECT2C utility available with version | | 4.00 (or later) | | | +-------------------------------------------------------------------*/ #include "tiot.h" struct TIOT *tiotlist(tiot, len) struct TIOT *tiot; int *len; { char *temp; static int *psatold, *tcbtio; /*---------------------------------------------------------------+ | first invocation? Find the TIOT | +---------------------------------------------------------------*/ if (*len == 0) { psatold = (int *)(0x21C); tcbtio = (int *) (*psatold + 12); tiot = (struct TIOT *)*tcbtio; } /*---------------------------------------------------------------+ | point to current TIOT entry | +---------------------------------------------------------------*/ temp = (char *)((*tcbtio) + *len); /*---------------------------------------------------------------+ | get ready for next call... | +---------------------------------------------------------------*/ *len += (int) tiot->tioelngh; /*return(tiot); */ return(struct TIOT *)(temp); }