Hi Folks,
Alex Brodsky was kind enough to point out to me that the ULUT has
to be serialized, and he referred me to the SETLOCK macro, which talks
about this.
However, it seems to me that serialization is necessary only if you
want to change something in the ULUT, and not if you just want to look
up real UCB addresses without having to be authorized. In other words,
my programs UCBDASD (CBT File 731), which just displays online DASD
UCB's, and the other program PACKRATU (CBT File 046), whose BACKENDU
module only has to find the UCB for the DASD unit that you want to
scratch datasets on, don't need a lock, because you're just DISPLAYING
the UCB's (UCBDASD) or finding their address initially (BACKENDU), and
not changing anything. So you don't need a lock, because you're not
changing anything, and therefore you don't have to get authorized in
order to obtain any lock.
Alex himself pointed this out as well, but I wanted to bring it to
your attention, since some of you might want to write programs which
scan UCB's using this method. If you need to change something in the
ULUT itself, it needs to be serialized and the program has to be
APF-authorized to do that (I think). But if you're just doing lookups,
it doesn't seem to matter.
Again, I want to point out that this is an "undocumented interface"
because it changes, and anyone who uses it, is obligated to keep track
of the changes. As long as you query the "type" field in the ULUT,
which is a one-byte field right after the "ULUT" eyecatcher, at ULUT+4,
and you account for the layout of that particular ULUT "type", it seems
that you're going to be OK.
All the best of everything to all of you.
Sincerely, Sam
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN