For an indexed or nonindexed VTOC, you can use the CVAFDIR macro
to perform the following functions:
- Read or write one or more DSCBs by specifying the name
of the data set they represent.
- Read or write one or more DSCBs by specifying their
addresses.
In addition, for an indexed VTOC, you can use the CVAFDIR macro
to perform the following functions:
- Read or write VTOC index records. (This allows calling programs
to modify the VTOC index.)
- Read and retain in virtual storage the first high-level VIER,
and VIERs used during an index search.
- Read and retain in virtual storage the space map VIRs.
- Free VIRs retained in virtual storage.
See Accessing the DSCB Directly for additional information.
The format of the CVAFDIR macro is:
![Read syntax diagram](./c.gif)
>>-+-------+--CVAFDIR--ACCESS=-+-READ--+--+-----------+--------->
'-label-' +-WRITE-+ '-,DSN=addr-'
'-RLSE--'
>--+---------------+--+------------------+---------------------->
'-,BUFLIST=addr-' | .-NO--. |
'-,VERIFY=-+-YES-+-'
>--+-----------------+--+----------------------------+---------->
+-,UCB=-(ucbaddr)-+ | .-NOKEEP--------. |
'-,DEB=addr-------' '-,IOAREA=-+-KEEP----------+-'
+-(KEEP,addr)---+
'-(NOKEEP,addr)-'
>--+--------------------------+--------------------------------->
| .-NO---------. |
'-,MAPRCDS=-+-YES--------+-'
+-(YES,addr)-+
'-(NO,addr)--'
>--+----------------------------+--+------------------------+--->
| .-NOKEEP--------. | | .-NO--------. |
'-,IXRCDS=-+-KEEP----------+-' | | (1) | |
+-(KEEP,addr)---+ '-,BRANCH=-+-YES-------+-'
'-(NOKEEP,addr)-' +-(YES,SUP)-+
'-(YES,PGM)-'
>--+--------------------+--+-------------------------+---------->
| .-NOTOK-. | | .-NO--. |
'-,EADSCB=-+-OK----+-' '-,MULTIPLEDSCBS=-+-YES-+-'
>--+-------------------+---------------------------------------><
| .-I--------. |
'-,MF=-+-L--------+-'
'-(E,addr)-'
Notes:
- If YES is coded, the default is SUP.