/*--------------------------------------------------------------------+
|                 COPYRIGHT (C) 1995, SAS INSTITUTE INC.              |
|                   UNPUBLISHED - ALL RIGHTS RESERVED                 |
|                      S A S / C   S A M P L E                        |
|                                                                     |
|         NAME: JOBDDN                                                |
|     LANGUAGE: C                                                     |
|      PURPOSE: Displays the Jobname/Stepname and all DDs associated  |
|               with a job.  In addition to the DDname, it also       |
|               displays datasetname, lrecl, blksize, and recfm.      |
|                                                                     |
|               This is the "tiot.h" header file for the JOBDDN       |
|               example.                                              |
|               Store load module so it can be accessed at runtime.   |
|                                                                     |
|   MISC NOTES: The TIOT info is accessed directly from system        |
|               control blocks.                                       |
|                                                                     |
|               The tiotlist function will access the TIOT control    |
|               block for eachDD allocated to a job.  The first       |
|               invocation will return the Jobname and Step name as   |
|               well as the first DD name.  Subsequent invocations    |
|               will return the next DD name allocated.               |
| RETURN VALUE:                                                       |
|              The tiotlist function returns a pointer to the TIOT    |
|              structure. This structure was generated by the DSECT2C |
|              utility.  A zero in the TIOELNGH field indicates that  |
|              there are no more DD entries.                          |
|     CAUTIONS:                                                       |
|              If there are no allocated datasets the result is       |
|              undefined.                                             |
|                                                                     |
|                                                                     |
|                                                                     |
+--------------------------------------------------------------------*/

/*-------------------------------------------------------------------+
| See member JOBDDN/JOBTEXT for more details                         |
| TIOT structure generated by DSECT2C.                               |
|  (See "Changes and Enhancements to the SAS/C Compiler-release 4.00"|
|   for details on the DSECT2C utility)                              |
+-------------------------------------------------------------------*/
typedef char CL4(|4|);
typedef struct
  {
  char BF : 24;
  } AL3;
typedef char CL3(|3|);
typedef char CL1(|1|);
typedef char CL2(|2|);
typedef char CL16(|16|);
typedef char CL8(|8|);

struct TIOT
  {
  int _f0(|0|);
#define TIOT1 0
  CL8 tiocnjob;
  CL16 tiocstep;
#define TIOENTRY 24
  char tioelngh;
  char tioestta;
#define TIOSLTYP 0x80
#define TIOSPLTP 0x40
#define TIOSPLTS 0x20
#define TIOSJBLB 0x10
#define TIOSDADS 0x08
#define TIOSLABL 0x04
#define TIOSDSP1 0x02
#define TIOSDSP2 0x01
  CL2 tioerloc(|0|);
  CL1 tioewtct;
  CL1 tioelink;
#define TIOSYOUT 0x80
#define TIOTRV01 0x40
#define TIOTTERM 0x20
#define TIOEDYNM 0x10
#define TIOEQNAM 0x08
#define TIOESYIN 0x04
#define TIOESYOT 0x02
#define TIOESSDS 0x02
#define TIOTREM 0x01
  CL8 tioeddnm;
  CL3 tioejfcb;
  char tioesttc;
#define TIOSDKCR 0x80
#define TIOSDEFR 0x40
#define TIOSAFFP 0x20
#define TIOSAFFS 0x10
#define TIOSVOLP 0x08
#define TIOSVOLS 0x04
#define TIOSBALP 0x02
#define TIOSBALS 0x01
  char tioesttb;
#define TIOSUSED 0x80
#define TIOSREQD 0x40
#define TIOSPVIO 0x20
#define TIOSVLSR 0x10
#define TIOSSETU 0x08
#define TIOSMNTD 0x04
#define TIOSUNLD 0x02
#define TIOSVERF 0x01
  AL3 tioefsrt;
#define POOLSTAR 44
  CL1 _f1;
  char tiopnslt;
  CL1 _f2;
  char tiopnsrt;
  CL8 tioppool;
  unsigned char tiopsttb;
  AL3 tiopslot;
  CL4 tiotfend;
  };

#define TIOCNJOB                        tiocnjob
#define TIOCSTEP                        tiocstep
#define TIOEDDNM                        tioeddnm
#define TIOEFSRT                        tioefsrt
#define TIOEJFCB                        tioejfcb
#define TIOELINK                        tioelink
#define TIOELNGH                        tioelngh
#define TIOERLOC                        tioerloc(|0|)
#define TIOESTTA                        tioestta
#define TIOESTTB                        tioesttb
#define TIOESTTC                        tioesttc
#define TIOEWTCT                        tioewtct
#define TIOPNSLT                        tiopnslt
#define TIOPNSRT                        tiopnsrt
#define TIOPPOOL                        tioppool
#define TIOPSLOT                        tiopslot
#define TIOPSTTB                        tiopsttb
#define TIOTFEND                        tiotfend

struct TIOT *tiotlist();