! JOBTBL.SDF [109] - JOBTBL structure definition
!-------------------.-------------------.-------------------.-------------------.
!EDIT HISTORY
! VEDIT=109
! Note: history reformatted 9-Feb-17
! [109] 07-Dec-21 / jdm / Add JOBNO to ST_JCBREC (in case elements not 1 to 1 with jobs)
! [108] 16-Jan-21 / jdm / Revise layout to squeeze in FILESOPEN, ISAMSOPEN 
! [107] 20-Jul-20 / jdm / Replace 'OCT ppn fields with PROGEDIT; and JOBPRGEDIT
! [106] 10-Aug-17 / jdm / Add LASTLOC
! [105] 16-Dec-16 / jdm / Add LICGRP to ST_JOB
! [104] 02-Aug-16 / jdm / Add ST_JOB, ST_MAC, ST_IPV4
! [103] 23-Apr-16 / jdm / Add UUID
! [102] 28-Sep-11 / jdm / Created 
!-------------------.-------------------.-------------------.-------------------.

++ifnmap VERSYS_JOBTBL_SDF 

map1 VERSYS_JOBTBL_SDF,s,40,">>@VERSYS(1)->>jobtbl.sdf[109]"


DEFSTRUCT ST_JCBHDR		            ! JCB Table header rec
    map2 PHY'COUNT,b,2              ! Physical user count
    map2 LOG'COUNT,b,2              ! Logical user count
    map2 VERSION,s,4,"116"          ! To match aganst QDEF'VERSION
    map2 MAXJOBS,b,2                ! Max recs in table
    map2 ATECNT,b,2                 ! # ATE jobs running
    map2 DUMMY0,x,118               !
ENDSTRUCT

defstruct ST_JCBREC                    ! JCB Record
    map2 PID,i,4                    ! Process id (moved)
    map2 PPID,i,4                   ! Parent's Process id
    map2 TIMELOGGEDIN,i,4           ! Time when we logged in
    map2 TOTREADS,i,4               ! Total disk reads
    map2 TOTWRITES,i,4              ! Total writes
    map2 TOTQLOCKS,i,4              ! Total qlocks
    map2 TOTINSTR,i,4               ! Total basic instructions
    map2 TOTCMDS,i,4                ! Total LIT commands
    map2 TOTKEYS,i,4                ! Total keystrokes
    map2 JOBTYP,b,2                 ! Job type (see JOBTYP'xxx)
    map2 JOBSTS,b,2                 ! Job status (see JOBSTS'xxx)
    map2 JOBNAM,s,6                 ! Job name [108] was s,8
    map2 TOTFILES,b,2               ! Total # files open [108]
    map2 TRMTDV,s,6		            ! Terminal driver [108] was s,6
    map2 TOTISAMS,b,2               ! Total # ISAM files open [108]
![102] map2 PRGNAM,s,8                 ! program name
    map2 NULL,S,2                   ! [102] (force old SYSTAT to show blank prog name)
    map2 SIG1235,B,1                ! [102] =1 for 5.1.1235+
    map2 ASHVMAJOR,B,1              ! [102] ATE vmajor
    map2 ASHVMINOR,B,1              ! [102] ATE vminor
    map2 ASHVEDIT,B,2               ! [102] ATE vedit
    map2 ASHVPATCH,B,1              ! [102] ATE vpatch
    map2 PRGNAM'PRE1235,s,8,@NULL![102] old prgnam
    map2 DRIVE,s,8                  ! DSKn:
    ![107] map2 PROJ'OCT,b,1               ! Project old octal version
    ![107] map2 PRGN'OCT,b,1               ! Programmer # "	"
    map2 PRGEDIT,B,2                ! [107] edit # of program version    
    map2 JOBLVL,b,1                 ! Job experience level
    map2 JOBCLS,b,1                 ! Job class
    map2 CONDEV,s,20                ! Machine or device
    map2 USRNAM,s,20                ! User login name
    map2 MEMK,b,2                   ! Memory in K
    map2 JOBNO,b,2                  ! Our job # (1 is first)
    map2 IJCCMD,b,1                 ! Inter Job Comm command
    map2 IJCSTS,b,1                 ! Inter Job Comm status
    map2 IJCMSG,b,1                 ! Inter Job Comm msg type/fmt
    map2 IJCBUF,s,84                ! Inter Job Comm msg buf [101] was 110 [102] was 103 [103] was 93 [105] was 89 [116] was 88
    map2 LICGRP,b,1                 ! [105] license group # (if using group licensing)
    map2 LASTLOC,i,4                ! [106] last location count - ignore if VEDIT < 1614 or byte 3 (2301) not zero
    map2 UUID,i,4                   ! Unique workstation ID (hash) [103] 
    map2 IJCTERM1,B,1               ! [101] null byte
    map2 IJCTERM2,B,1               ! [101] 255 byte
    map2 PRGNAM,S,10                ! [102] program name (moved from above)
    map2 ATEVMAJOR,B,1              ! [101] ATE vmajor
    map2 ATEVMINOR,B,1              ! [101] ATE vminor
    map2 ATEVEDIT,B,2               ! [101] ATE vedit
    map2 ATEVPATCH,B,1              ! [101] ATE vpatch
    map2 IP(4),b,1                  ! IP address
    map2 LASTOP,b,1                 ! Last Basic opcode
    map2 LASTLNO,b,2                ! Last Basic line #
    map2 LASTSBR                    ! Last sbr (rad50)
        map3 LASTSBR1,b,2
        map3 LASTSBR2,b,2
    map2 PROJ,b,2                   ! Project (new b,2 version)
    map2 PRGN,b,2                   ! Programmer #
    map2 MINFREEK,b,2               ! min free K
    map2 MACADR(6),b,1              ! MAC address (was JOBFIL)
endstruct

++ifndef ST_MAC
  defstruct ST_MAC                    ! [49] MAC address
    map2 MAC(6),B,1
  endstruct
++endif

++ifndef ST_IPV4
  defstruct ST_IPV4                   ! [49] IPV4 address
    map2 IP(4),B,1
  endstruct
++endif

defstruct ST_JOBS           ! convenient structure for an array of jobs (used by SYSTAT, etc.)
    map2 JOBCONS,s,20       ! 1  Console device [25] was 16
    map2 JOBUSN,s,20        ! 21 User name
    map2 JOBNAM,s,6         ! 41 Job name
    map2 TRMNAM,s,6         ! 47 Terminal name
    map2 JOBPRG,s,10        ! 53 Program being executed [48] was ,6
    map2 JOBASH,f,6         ! 63 Job is running A-Shell (=1)
    map2 JOBP,b,2           ! 69 [1] job project # [39] was b,1
    map2 JOBPN,b,2          ! 71 [1] job prog #    [39] was b,1
    map2 JOBPID,b,4         ! 73 [4] Job pid [8]
    map2 JOBPPID,b,4        ! 77 [5] Job parent pid [8]
    map2 JOBMEMK,b,2        ! 81 [5] Job memory size
    map2 JOBMINFREEK,b,2    ! 83 [41] min free memory
    map2 JOBDEV,s,6         ! 85 [10] job device+unit ("DSK37")
    map2 JOBSTS,b,2         ! 91 [13] job status (see JOBSTS'xxx) [20]was1
    map2 JOBTYP,b,2         ! 93 [13] job type (see JOBTYP_xxx) [19]
    map2 JOBREADS,b,4       ! 95 [13] total reads
    map2 JOBWRITES,b,4      ! 99 [13] total writes
    map2 JOBQLCKS,b,4       ! 103[13] total qlocks
    map2 JOBINSTR,b,4       ! 107 [13] total basic instructions
    map2 JOBCMDS,b,4        ! 111 [13] total commands executed
    map2 JOBKEYS,b,4        ! 115 [14] total keystrokes
    map2 JOBLOGTIME,b,4     ! 119 [13] total secs logged in
    map2 JOBIP,ST_IPV4      ! 123 [27] ip addr [49] was JOBIP(4),B,1
    map2 JOBMAC,ST_MAC      ! 127 [49] mac addr [49] was JOBMAC(6),B,1
    map2 JOBIJCSTS,b,1 	    ! 133 [35] ijc status
    map2 JOBIJCCMD,b,1	    ! 134 [35] ijc cmd
    map2 JOBATEVMAJOR,B,1   ! 135 [46] ate vmajor
    map2 JOBATEVMINOR,B,1   ! 136 [46] ate vminor
    map2 JOBATEVEDIT,B,2    ! 137 [46] ate vedit
    map2 JOBATEVPATCH,B,1   ! 139 [46] ate vpatch
    map2 JOBASHVMAJOR,B,1   ! 140 [46] ate vmajor
    map2 JOBASHVMINOR,B,1   ! 141 [46] ate vminor
    map2 JOBASHVEDIT,B,2    ! 142 [46] ate vedit
    map2 JOBASHVPATCH,B,1   ! 144 [46] ate vpatch
    map2 JOBUUID,b,4        ! 145 [51] UUID
    map2 JOBLICGRP,b,1      ! 146 [52] license group
    map2 JOBPRGEDIT,B,2     ! 147 [107] edit # of program version
    map2 JOBFILES,B,2       ! 149 [108] # files open
    map2 JOBISAMS,B,2       ! 151 [108] # ISAM files open
    map2 JOBNO,B,2          ! 153 [109] Job # 
endstruct

++endif

