-
Notifications
You must be signed in to change notification settings - Fork 95
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
Comments
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 |
Hello Fish-Git. Please see source code You can find structure The DATASET CCHH is contained this structure for each The DATASET extent (spaces in dasd volume). You can look the comments in defines structure I have other help for Hyperion's Toshi. |
THANK YOU, Ian!
Can we maybe make that a parameter of the new option? Maybe: |
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? |
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? |
Hi Fish. |
Hi Fish, Does this do what you want? Add the |
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 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 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. |
Yes, looks good. However, there are a couple of issues. Firstly, if Secondly, function 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 As for the commit, you go ahead, just add me to the contributors, please. |
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 );
}
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 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?
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
*********************************************************************/ |
Fix works.
OK, I suppose it will be obvious the number has wrapped if there are 100 or more extents. Forget I mentioned it.
Yes, that's where I meant. |
Nah! I've edited my original response to come up with a better way that actually works fairly well when |
Fixed by commit 03c2ac5. (Thanks, Ian!) |
The following is the report currently generated by the command:
dasdls -hdr -info -dsnl=33 Q:/TK3/Dasd/BLDTGT.cckd32
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
The text was updated successfully, but these errors were encountered: