Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DASDLS: Also report begin/end CCHH for each dataset? #579

Closed
Fish-Git opened this issue Jul 6, 2023 · 13 comments
Closed

DASDLS: Also report begin/end CCHH for each dataset? #579

Fish-Git opened this issue Jul 6, 2023 · 13 comments
Labels
Enhancement This issue does not describe a problem but rather describes a suggested change or improvement.

Comments

@Fish-Git
Copy link
Member

Fish-Git commented Jul 6, 2023

The following is the report currently generated by the command:

  dasdls -hdr -info -dsnl=33 Q:/TK3/Dasd/BLDTGT.cckd32

 

HHC02499I Hercules utility DASDLS - List DASD image file contents - version 4.6.0.10941-SDL-g65c97fd6
HHC01414I (C) Copyright 1999-2023 by Roger Bowler, Jan Jaeger, and others
HHC01417I ** The SDL 4.x Hyperion version of Hercules **
HHC01415I Build date: Jun  8 2023 at 15:48:12

HHC00403I 0:0000 CCKD file Q:/TK3/Dasd/BLDTGT.cckd32: opened r/o
HHC00414I 0:0000 CCKD file Q:/TK3/Dasd/BLDTGT.cckd32: model 3390 cyls 1113 heads 15 tracks 16695 trklen 56832

VOLSER:  BLDTGT    "Q:/TK3/Dasd/BLDTGT.cckd32"

Dsname                            CREDT ORG RECFM LRECL BLKSZ Key  Trks%Use#Ext 2ndry_alloc
MVSSRC.BLD.APPLY.LISTING          23175 PO  FBA     121 27951   0  6000   5   1 CYL       5
MVSSRC.BLD.APPLY.MAINT05.LISTING  23175 PO  FBA     121 27951   0    60  17   1 CYL       1
MVSSRC.BLD.APPLY.MAINT06.LISTING  23175 PO  FBA     121 27951   0  4845   0   1 CYL       1
MVSSRC.BLD.CMDLIB                 23175 PO  U           19069   0    75  55   1 CYL       5
MVSSRC.BLD.DCMLIB                 23175 PO  U           19069   0    75   1   1 CYL       5
MVSSRC.BLD.GENLIB                 23175 PO  FB       80 27920   0   150  60   1 CYL       2
MVSSRC.BLD.HASPSRC                23175 PO  FB       80 27920   0   255  81   1 CYL       5
MVSSRC.BLD.HELP                   23175 PO  FB       80 27920   0    30  74   1 CYL       1
MVSSRC.BLD.IMAGELIB               23175 PO  U            1024   0    75   3   1 CYL       5
MVSSRC.BLD.LINKLIB                23175 PO  U           19069   0   375  48   1 CYL      10
MVSSRC.BLD.LPALIB                 23175 PO  U           19069   0   300  69   1 CYL      10
MVSSRC.BLD.MACLIB                 23175 PO  FB       80 27920   0   300  83   1 CYL      10
MVSSRC.BLD.MODGEN                 23175 PO  FB       80 27920   0   150  91   1 CYL       2
MVSSRC.BLD.NUCLEUS                23175 PO  U           19069   0   330  83   1 CYL       5
MVSSRC.BLD.OBJPDS01               23175 PO  FB       80  3200   0    15  10   1 CYL       1
MVSSRC.BLD.OBJPDS02               23175 PO  FB       80  3200   0    15   7   1 CYL       1
MVSSRC.BLD.OBJPDS03               23175 PO  FB       80  3200   0    15  28   1 CYL       1
MVSSRC.BLD.PARMLIB                23175 PO  FB       80 27920   0    15   7   1 CYL       1
MVSSRC.BLD.PROCLIB                23175 PO  FB       80 27920   0    15   7   1 CYL       1
MVSSRC.BLD.PVTMAC                 23175 PO  FB       80 27920   0   300  73   1 CYL       1
MVSSRC.BLD.SAMPLIB                23175 PO  FB       80 27920   0    15  90   1 CYL       1
MVSSRC.BLD.SORTLIB                23175 PO  U           19069   0    75  29   1 CYL       1
MVSSRC.BLD.SVCLIB                 23175 PO  U           19069   0    75  11   1 CYL       5
MVSSRC.BLD.TELCMLIB               23175 PO  U           19069   0    75  30   1 CYL       5
MVSSRC.BLD.UADS                   23175 PO  FB       80 27920   0    15   7   1 CYL       1
MVSSRC.BLD.VTAMLIB                23175 PO  U           19069   0    75   7   1 CYL       5

End of dasdls; rc=0

 
I would like to also be able to see the starting/ending CCHH of each listed dataset too, but I'm not familiar enough with MVS's or z/OS's file structure to know where such information is held.

I tried looking at dasdls source code, but it's all Greek to me.  :(

Is there anyone out there that knows both MVS and/or z/OS file structure AND also knows how to program in the 'C' programming language that can help me out?  (that can make the needed changes to the dasdls source code for me?)

HELP!  :(

Thanks

@Fish-Git Fish-Git added Enhancement This issue does not describe a problem but rather describes a suggested change or improvement. HELP! Help is needed from someone more experienced or I'm simply overloaded with too much work right now! labels Jul 6, 2023
@mcisho
Copy link
Contributor

mcisho commented Jul 7, 2023

Hi Fish, I could do the change you require. It's a manageable change if you only want to see the the starting/ending CCHH of the first or only extent of each dataset. However, if you want to see the starting/ending CCHH of all of the extents of each dataset things become more complex. I can't remember how many extents previous versions of MVS allow, but z/OS allows up to 123 extents per dataset. Cheers, Ian

@ToshiKZJ
Copy link

ToshiKZJ commented Jul 7, 2023

Hello Fish-Git.

Please see source code dasdblks.h.

You can find ds1ext1, ds1ext2, ds1ext3 with DSXTENT structure in defines struct FORMAT1_DSCB { ..... }.

structure DSXTENT defines in same source code.

The DATASET CCHH is contained this structure for each The DATASET extent (spaces in dasd volume).

You can look the comments in defines structure DSXTENT in 'dasdblks.h'.

I have other help for Hyperion's MIDAW support. Please help me as I will ask in another issue.

Toshi.

@Fish-Git
Copy link
Member Author

Fish-Git commented Jul 7, 2023

Hi Fish, I could do the change you require.

THANK YOU, Ian!

It's a manageable change if you only want to see the the starting/ending CCHH of the first or only extent of each dataset. However, if you want to see the starting/ending CCHH of all of the extents of each dataset things become more complex. I can't remember how many extents previous versions of MVS allow, but z/OS allows up to 123 extents per dataset.

Can we maybe make that a parameter of the new option? Maybe: -cchh[=n] where the default is 1?

@Fish-Git
Copy link
Member Author

Fish-Git commented Jul 7, 2023

I have other help for Hyperion's MIDAW support. Please help me as I will ask in another issue.

Hi Toshi!

I would be very happy to try and help you in this [new?] GitHub Issue of yours!  Have you created it yet? Can you tell me the GitHub Issue number?

@Fish-Git
Copy link
Member Author

Fish-Git commented Jul 7, 2023

Can we maybe make that a parameter of the new option? Maybe: -cchh[=n] where the default is 1?

I'm mostly interested in just the first extent (I think!). A user reports in another issue (#575) that corruption occurs, I believe, in the dataset's directory, which I believe is always the first track? Yes? So if true, I would only need the first extent, yes?

But in my mind, if we're going to make the changes to do that, we might as well go all the way and support printing them all. Right?

@ToshiKZJ
Copy link

ToshiKZJ commented Jul 7, 2023

Hi Fish.
Thank you for your reply. Please see issue #580.
Toshi.

@mcisho
Copy link
Contributor

mcisho commented Jul 7, 2023

Hi Fish, Does this do what you want? Add the -cchh option to the command line.

@Fish-Git
Copy link
Member Author

Fish-Git commented Jul 8, 2023

Hi Fish, Does this do what you want? Add the -cchh option to the command line.

It's very close, yes! Thanks!  :))

In fact, it's so close that it inspired me to try and make some tweaks to your code, and now with my minor tweaks, the output looks exactly what I was hoping for!

Please give the below a try and tell me what you think:

(You're also free to critique my changes too of course!)

I had a little trouble finding a dasd that had any datasets with more than 1 extent on it, but eventually found one. Here's the report that is now produced by dasdls -cchh -hdr -dsnl=29 "Q:/CCKD64/zOS 2.5c (ADCD)/c5sys1.cckd64":

HHC02499I Hercules utility dasdls - List DASD image file contents - version 4.7.0.10982-SDL-DEV-g81a7bf7f-modified
HHC01414I (C) Copyright 1999-2023 by Roger Bowler, Jan Jaeger, and others
HHC01417I ** The SDL 4.x Hyperion version of Hercules **
HHC01415I Build date: Jul  7 2023 at 12:40:22

HHC00476I 0:0000 CCKD64 file 'Q:/CCKD64/zOS 2.5c (ADCD)/c5sys1.cckd64': opened r/o
HHC00470I 0:0000 CCKD64 file 'Q:/CCKD64/zOS 2.5c (ADCD)/c5sys1.cckd64': model 3390-9 cyls 10017 heads 15 tracks 150255 trklen 56832

VOLSER:  C5SYS1    "Q:/CCKD64/zOS 2.5c (ADCD)/c5sys1.cckd64"

Ext#  (BEG)      (END)    Dsname                        CREDT ORG RECFM LRECL BLKSZ Key  Trks%Use#Ext 2ndry_alloc
 1  1430/0000  1430/000E  ADCD.DYNISPF.ISPPLIB          16236 PO  FB       80  9040   0    15  30   1 TRK       2
 1  1431/0000  146C/000E  ADCD.LIB.JCL                  16236 PO  FB       80 27920   0   900  14   1 CYL      15
 1  146F/0000  147C/000A  ADCD.S0W1.HZSPDATA            16237 PS  FB     4096 24576   0   206  30   1 BLK     400
 1  1424/0003  1426/0001  ADCD.Z25C.CLIST               22291 PO  FB       80  6160   0    29  94   1 TRK       5
 1  141F/0002  141F/0008  ADCD.Z25C.DBB.ISPPLIB         22291 PO  FB       80 32720   0     7  17   1 TRK       5
 1  147D/0000  147D/000E  ADCD.Z25C.DBC.ISPPLIB         22291 PO  FB       80 23440   0    15   8   1 CYL       1
 1  191B/0000  191B/000E  ADCD.Z25C.DBD.ISPPLIB         22301 PO  FB       80 23440   0    15  15   1 CYL       1
 1  1427/0000  1427/000E  ADCD.Z25C.ISPPLIB             22291 PO  FB       80 23440   0    15  36   1 CYL       2
 1  1428/0000  1428/000E  ADCD.Z25C.LINKLIB             22291 PO  U            6144   0    15  45   1 CYL       1
 1  141F/0009  141F/000D  ADCD.Z25C.LPALIB              22291 PO  U           32760   0     5  30   1 TRK       1
 1  1429/0000  142E/0009  ADCD.Z25C.PARMLIB             22291 PO  FB       80  6160   0    85  62   1 TRK      20
 1  147E/0000  1487/000E  ADCD.Z25C.PROCLIB             22291 PO  FB       80  9040   0   150  48   1 CYL       0
 1  146E/0000  146E/000E  ADCD.Z25C.SAXREXEC            22291 PO  VB      255 27998   0    15  16   1 CYL       1
 1  1488/0000  1489/000E  ADCD.Z25C.SYSEXEC             22291 PO  FB       80  6160   0    30  12   1 CYL       1
 1  148F/0000  1491/000E  ADCD.Z25C.TCPPARMS            22291 PO  FB       80 27920   0    45  46   1 TRK       1
 1  148B/0000  148D/000E  ADCD.Z25C.VTAM.SOURCE         20293 PO  FB       80  6160   0    45   2   1 CYL       1
 1  142F/0000  142F/000E  ADCD.Z25C.VTAMLIB             22291 PO  U           32760   0    15  23   1 CYL       2
 1  1426/0002  1426/000E  ADCD.Z25C.VTAMLST             22291 PO  FB       80 23440   0    13  46   1 BLK       5
 1  148E/0000  148E/000E  ADCD.Z25C.WLM                 22291 PO  FB       80 27920   0    15  10   1 TRK      15
 1  148A/0000  148A/000C  ADCD.Z25C.ZCLOUD              20293 PO  FB       80 27920   0    13   8   1 TRK       1
 1  1EDD/0000  1EDE/000E  ADCD.Z25C.ZONEEDIT.JOBS       22311 PO  FB       80  6160   0    30  11   1 CYL       1
 1  0005/0000  000E/000E  CATALOG.Z25C.MASTER           22291 VS  U            4096   0   150   1   1 CYL       1
 1  000F/0000  0010/000E  CATALOG.Z25C.MASTER.CATINDEX  22291 VS  U            4096   0    30   3   1 CYL       1
 1  142E/000A  142E/000A  CSF.SCSFCKDS.DATA             22291 VS  U            4096   0     1 100   1 TRK       1
 1  142E/000B  142E/000B  CSF.SCSFCKDS.INDEX            22291 VS  U            4096   0     1 100   1 TRK       1
 1  142E/000C  142E/000D  CSF.SCSFPKDS.DATA             22291 VS  U            4096   0     2  50   1 TRK       1
 1  142E/000E  142E/000E  CSF.SCSFPKDS.INDEX            22291 VS  U            4096   0     1 100   1 TRK       1
 1  1C24/0002  1C2E/0001  DSNC10.DY00.PRIVATE.PROCLIB   22312 PO  FB       80 27920   0   150   0   1 TRK      15
 1  1C2E/0002  1C30/0005  DSNC10.DY00.RUNLIB.LOAD       22312 PO  U           32760   0    34   3   1 BLK     200
 1  146D/0000  146D/000E  ISF.HASPINDX                  16237 PS  F      4096  4096   0    15  -0   1 BLK       0
 1  1493/0000  17B2/000E  IZU.SIZUUSRD.DATA             17294 VS  U            4096   0 12000   0   1 CYL      20
 1  141E/0000  141F/0001  NFS.CNTL                      00336 PO  FB       80 27920   0    17   8   1 BLK       1
 1  17B6/0000  17B6/000E  NFS.FHDBASE.DATA              22291 VS  U            4096   0    15   7   1 CYL       1
 1  147C/000B  147C/000B  NFS.FHDBASE.INDEX             22291 VS  U            4096   0     1 100   1 TRK       1
 1  17B7/0000  17B7/000E  NFS.FHDBASE2.DATA             22291 VS  U            4096   0    15   7   1 CYL       1
 1  147C/000C  147C/000C  NFS.FHDBASE2.INDEX            22291 VS  U            4096   0     1 100   1 TRK       1
 1  17B8/0000  17B8/000E  NFS.LDBASE.DATA               22291 VS  U            4096   0    15   7   1 CYL       1
 1  147C/000D  147C/000D  NFS.LDBASE.INDEX              22291 VS  U            4096   0     1 100   1 TRK       1
 1  17B9/0000  17B9/000E  NFS.LDBASE2.DATA              22291 VS  U            4096   0    15   7   1 CYL       1
 1  147C/000E  147C/000E  NFS.LDBASE2.INDEX             22291 VS  U            4096   0     1 100   1 TRK       1
 1  1C1F/0001  1C22/000A  STCJMON.D334.T1447460.JMON    22334 PS  FBS    4160 24960   0   784 100   2 TRK     940
 2  26E6/0000  2716/0008  STCJMON.D334.T1447460.JMON
 1  0072/0000  0073/000E  SYS1.BRODCAST                 22291 DA  F             129   1    30 100   1 CYL       0
 1  1416/0000  1417/000E  SYS1.DAE                      22291 PS  FB      255 27795   0    30   0   1 CYL       1
 1  148A/000E  148A/000E  SYS1.DSDB1                    22291 PS  FB     1000 20000   0     1  -3   1 TRK       1
 1  1492/000C  1492/000C  SYS1.DSDB2                    22291 PS  FB     1000 20000   0     1  -3   1 TRK       1
 1  148A/000D  148A/000D  SYS1.DSDBCTRL                 22291 PS  FB       20    20   0     1  -2   1 TRK       1
 1  0088/0000  140F/000E  SYS1.HASPACE                  22291 PSU U            3856   0 75000  -0   1 CYL       0
 1  0074/0000  0087/000E  SYS1.HASPCKPT                 22291 PSU U               0   0   300  -0   1 CYL       0
 1  1418/0000  141D/000E  SYS1.IODF99                   15362 VS  U            4096   0    90   1   1 CYL       0
 1  1422/0000  1424/0002  SYS1.IPLPARM                  99288 PO  FB       80 27920   0    33   5   1 BLK       1
 1  17B3/0000  17B3/000E  SYS1.S0W1.ACDS.DATA           17055 VS  U            4096   0    15   7   1 CYL       1
 1  17B4/0000  17B4/000E  SYS1.S0W1.COMMDS.DATA         16244 VS  U            4096   0    15   7   1 CYL       1
 1  1410/0000  1415/000E  SYS1.S0W1.LOGREC              22291 PSU U            1944   0    90  99   1 CYL       0
 1  0022/0000  0049/000E  SYS1.S0W1.MAN1.DATA           22291 VS  U            4096   0   600   0   1 CYL       0
 1  004A/0000  0071/000E  SYS1.S0W1.MAN2.DATA           22291 VS  U            4096   0   600   0   1 CYL       0
 1  17B5/0000  17B5/000E  SYS1.S0W1.SCDS.DATA           17055 VS  U            4096   0    15   7   1 CYL       1
 1  001D/0000  0020/000E  SYS1.S0W1.STGINDEX.DATA       22291 VS  U            4096   0    60   2   1 CYL       0
 1  0021/0000  0021/0000  SYS1.S0W1.STGINDEX.INDEX      22291 VS  U            4096   0     1 100   1 TRK       0
 1  1960/0000  1C1F/0000  SYS1.S0W1.Z25C.DMP00001       22305 PS  FBS    4160 24960   0 10546 100   1 TRK   12689
 1  1C42/0000  1EDC/0002  SYS1.S0W1.Z25C.DMP00002       22308 PS  FBS    4160 24960   0  9993 100   1 TRK   12027
 1  1EDF/0000  21A1/0001  SYS1.S0W1.Z25C.DMP00003       22313 PS  FBS    4160 24960   0 10592 100   1 TRK   12789
 1  21A1/0002  2463/000A  SYS1.S0W1.Z25C.DMP00004       22319 PS  FBS    4160 24960   0 10599 100   1 TRK   12783
 1  192D/0000  195F/0001  SYS1.S0W1.Z25C.DMP00005       22322 PS  FBS    4160 24960   0  9353 100   2 TRK   11271
 2  2463/000B  26A1/0001  SYS1.S0W1.Z25C.DMP00005
 1  0021/0003  0021/000C  SYS1.SMS.CNTL                 99293 PO  FB       80  6160   0    12  88   2 BLK      10
 2  1915/000C  1915/000D  SYS1.SMS.CNTL
 1  1492/000D  1492/000D  SYS1.TRSDB                    22291 PS  FB     1000 20000   0     1  -0   1 TRK       1
 1  0002/0000  0002/000E  SYS1.VTOCIX.C5SYS1            22291 PS  F      2048  2048   0    15 100   1 TRK       0
 1  0003/0000  0004/000E  SYS1.VVDS.VC5SYS1             22291 VS  U            4096   0    30   3   1 TRK      15
 1  1841/0004  1850/000E  SYS1.ZOSR23.HELP              21293 PO  FB       80 27920   0   236  81   1 TRK      24
 1  17ED/0002  183F/0008  SYS1.ZOSR23.MIGLIB            21293 PO  U           32760   0  1237  80   1 TRK       0
 1  183F/0009  1841/0003  SYS1.ZOSR23.PARMLIB           21293 PO  FB       80 27920   0    25  65   1 TRK       3
 1  17BA/0000  17D0/0008  SYS1.ZOSR23.SBLSCLI0          21293 PO  FB       80 27920   0   339  86   1 TRK      34
 1  17D0/0009  17D1/0004  SYS1.ZOSR23.SBLSKEL0          21293 PO  FB       80 27920   0    11  60   1 TRK       1
 1  17D1/0005  17D2/0001  SYS1.ZOSR23.SBLSMSG0          21293 PO  FB       80 27920   0    12  63   1 TRK       2
 1  17D2/0002  17EC/0007  SYS1.ZOSR23.SBLSPNL0          21293 PO  FB       80 27920   0   396  82   1 TRK      40
 1  17EC/0008  17ED/0001  SYS1.ZOSR23.SBLSTBL0          21293 PO  FB       80 27920   0     9  55   1 TRK       1
 1  1851/0000  1859/0009  SYS1.ZOSR23.SHASMIG           21293 PO  U           32760   0   130  36   1 TRK       6
 1  1859/000A  185B/0006  SYS1.ZOSR23.SHASPNL0          21293 PO  FB       80 27920   0    27  53   1 TRK       2
 1  185B/0007  185C/0007  SYS1.ZOSR23.SIATCLI0          21293 PO  FB       80 27920   0    16  44   1 TRK       2
 1  185C/0008  1861/000C  SYS1.ZOSR23.SIATMIG           21293 PO  U           32760   0    80  79   1 TRK       0
 1  1861/000D  1862/0000  SYS1.ZOSR23.SIATMSG0          21293 PO  FB       80 27920   0     3  14   1 TRK       1
 1  1862/0001  1863/0005  SYS1.ZOSR23.SIATPNL0          21293 PO  FB       80 27920   0    20  46   1 TRK       2
 1  1863/0006  1863/0009  SYS1.ZOSR23.SIATTBL0          21293 PO  FB       80 27920   0     4  19   1 TRK       1
 1  18EF/0004  18FE/000C  SYS1.ZOSR24.HELP              21293 PO  FB       80 27920   0   234  79   1 TRK      24
 1  1899/0002  18EC/000C  SYS1.ZOSR24.MIGLIB            21293 PO  U           32760   0  1256  79   1 TRK       0
 1  18EC/000D  18EF/0003  SYS1.ZOSR24.PARMLIB           21293 PO  FB       80 27920   0    36  48   1 TRK       3
 1  1863/000A  187B/0003  SYS1.ZOSR24.SBLSCLI0          21293 PO  FB       80 27920   0   354  80   1 TRK      36
 1  187B/0004  187C/0000  SYS1.ZOSR24.SBLSKEL0          21293 PO  FB       80 27920   0    12  63   1 TRK       2
 1  187C/0001  187C/000D  SYS1.ZOSR24.SBLSMSG0          21293 PO  FB       80 27920   0    13  58   1 TRK       2
 1  187C/000E  1898/0007  SYS1.ZOSR24.SBLSPNL0          21293 PO  FB       80 27920   0   414  79   1 TRK      41
 1  1898/0008  1899/0001  SYS1.ZOSR24.SBLSTBL0          21293 PO  FB       80 27920   0     9  53   1 TRK       1
 1  18FF/0000  1908/000E  SYS1.ZOSR24.SHASMIG           21293 PO  U           32760   0   150  33   1 CYL       5
 1  1909/0000  190A/0006  SYS1.ZOSR24.SHASPNL0          21293 PO  FB       80 27920   0    22  66   1 TRK       3
 1  190A/0007  190B/0003  SYS1.ZOSR24.SIATCLI0          21293 PO  FB       80 27920   0    12  59   1 TRK       2
 1  190B/0004  1910/0009  SYS1.ZOSR24.SIATMIG           21293 PO  U           32760   0    81  79   1 TRK       0
 1  1910/000A  1910/000C  SYS1.ZOSR24.SIATMSG0          21293 PO  FB       80 27920   0     3  14   1 TRK       1
 1  1910/000D  1911/000B  SYS1.ZOSR24.SIATPNL0          21293 PO  FB       80 27920   0    14  66   1 TRK       2
 1  1911/000C  1912/0000  SYS1.ZOSR24.SIATTBL0          21293 PO  FB       80 27920   0     4  20   1 TRK       1
 1  141F/000E  141F/000E  TCPIP.ETC.SERVICES            98284 PS  FB       80  3120   0     1  21   1 BLK      15
 1  0021/0001  0021/0001  TCPIP.FTP.DATA                99322 PS  FB       80 27920   0     1  10   1 BLK      19
 1  1420/0000  1420/000E  TCPIP.HOSTS.ADDRINFO          13345 PS  F       158   158   0    15   1   1 CYL       5
 1  0021/0002  0021/0002  TCPIP.HOSTS.LOCAL             99295 PS  VB      255   784   0     1   3   1 BLK      61
 1  1421/0000  1421/000E  TCPIP.HOSTS.SITEINFO          13345 PS  F        56    56   0    15   1   1 CYL       5
 1  0021/000D  0021/000D  TCPIP.PROFILE.TCPIP           16236 PS  FB       80 27920   0     1  32   1 BLK      24
 1  0021/000E  0021/000E  TCPIP.TCPIP.DATA              16236 PS  FB       80  9040   0     1  40   1 TRK       1
 1  0011/0000  001A/000E  USERCAT.Z25C.PRODS            22291 VS  U            4096   0   150   1   1 CYL       1
 1  001B/0000  001C/000E  USERCAT.Z25C.PRODS.CATINDEX   22291 VS  U            4096   0    30   3   1 CYL       1

End of dasdls; rc=0

 
Notice how each extent of a multi-extent dataset is listed (first extent shows the full information whereas the second and subsequent extents just show the CCHH and dataset name) as well as how all of the datasets are still listed in name sequence too.

I think it looks great!

What do you think?

And how should I commit this? I want to give you the credit for the change of course! Should I commit your changes and then mine? Or do you want me to commit my final form under your name? (I don't mind!)

Your choice.

@mcisho
Copy link
Contributor

mcisho commented Jul 8, 2023

Yes, looks good. However, there are a couple of issues.

Firstly, if -cchh isn't specified, no dataset information is displayed. Function print_line_from_segs needs to be changed so that it prints the dataset information when -cchh hasn't been specified.

Secondly, function extents_array contains:

    prtcchhseg("%2d  %4.4X/%4.4X  %4.4X/%4.4X  ",
                numcchh + 1,
                hword( extents[i].xtbcyl ), hword( extents[i].xtbtrk ),
                hword( extents[i].xtecyl ), hword( extents[i].xtetrk ) );

The %2d should be %3d. I know it probably won't happen that often, but I have had datasets that have had more than 100 extents.

As for the commit, you go ahead, just add me to the contributors, please.

@Fish-Git
Copy link
Member Author

Fish-Git commented Jul 8, 2023

Firstly, if -cchh isn't specified, no dataset information is displayed. Function print_line_from_segs needs to be changed so that it prints the dataset information when -cchh hasn't been specified.

Oops! Sorry. Here's the fix:

    if (runflgs & rf_cchh)
    {
        /* For each extent that the dataset has... */
        for (cchhnum=0; cchhnum < numcchh; ++cchhnum)
        {
            /* Print this extent's BEG/END CCHH */
            STRLCPY( buffer, lcchhtab[ cchhnum ]);
            free(            lcchhtab[ cchhnum ]);

            /* Print the remainder of the information... */
            for (segnum=0; segnum < numsegs; ++segnum)
            {
                /* (very first segment is always dsname) */
                STRLCAT( buffer, lsegstab[ segnum ]);

                /* (if this is extent #2, then we're done) */
                if (cchhnum > 0)
                {
                    STRLCAT( buffer, "\n" );
                    break;
                }
            }

            prtline( "%s", buffer );
        }
    }
    else
    {
        /* Print the remainder of the information... */
        for (segnum=0; segnum < numsegs; ++segnum)
            STRLCAT( buffer, lsegstab[ segnum ]);

        prtline( "%s", buffer );
    }

The %2d should be %3d. I know it probably won't happen that often, but I have had datasets that have had more than 100 extents.

Yeah I know, but I figured it's likely to happen so very rarely that it's probably not worth worrying about. My concern is that making it %3d would make what is otherwise a pretty report an ugly one.

Maybe if I had a volume I could test with, I could whip something up to accommodate such occurrences? Do you have one? Or can you write me a program or a rexx script or something to artificially create such a dataset for me?

Coding it blind, I'm thinking maybe something like the following might do the trick?

#define    CCHH_COLHDR  " Ext#  (BEG)      (END)    "

.....

    prtcchhseg("%3d  %4.4X/%4.4X  %4.4X/%4.4X  ",
                numcchh + 1,
                hword( extents[i].xtbcyl ), hword( extents[i].xtbtrk ),
                hword( extents[i].xtecyl ), hword( extents[i].xtetrk ) );

But I'd really like to have something to test that with!  Got anything for me?

 

As for the commit, you go ahead, just add me to the contributors, please.

I'm presuming you mean here, in dasdls, yes?

/*********************************************************************
 *                          dasdls
 *
 * Copyright 2000-2009 by Malcolm Beattie
 * Based on code copyright by Roger Bowler, 1999-2009
 * Decode of F1 DSCB by Chris Cheney, 2013, based on
 * P.E. Havercan's VTOCLIST mainframe utility
 * Copied by Erwin Marschalk from 3.12 to 4.0 release
 * Further tweaks and fixes by Fish
 * Sorted report by Fish
 * Support for multiple extents by Ian Shorter
 *********************************************************************/

@mcisho
Copy link
Contributor

mcisho commented Jul 8, 2023

Oops! Sorry. Here's the fix:

Fix works.

Yeah I know, but I figured it's likely to happen so very rarely ...

OK, I suppose it will be obvious the number has wrapped if there are 100 or more extents. Forget I mentioned it.

I'm presuming you mean here, in dasdls, yes?

Yes, that's where I meant.

@Fish-Git
Copy link
Member Author

Fish-Git commented Jul 8, 2023

Yeah I know, but I figured it's likely to happen so very rarely ...

OK, I suppose it will be obvious the number has wrapped if there are 100 or more extents. Forget I mentioned it.

Nah! I've edited my original response to come up with a better way that actually works fairly well when %3d is used. I tested it by temporarily hard-coding the value 999 for the extent#, and everything still looks fine (everything still lines up nice and neat) due to simply adding an extra blank at the beginning of the CCHH_COLHDR column headers constant.

@Fish-Git
Copy link
Member Author

Fish-Git commented Jul 8, 2023

Fixed by commit 03c2ac5.

(Thanks, Ian!)

@Fish-Git Fish-Git closed this as completed Jul 8, 2023
@Fish-Git Fish-Git removed the HELP! Help is needed from someone more experienced or I'm simply overloaded with too much work right now! label Jul 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement This issue does not describe a problem but rather describes a suggested change or improvement.
Projects
None yet
Development

No branches or pull requests

3 participants