Charles,
I'm not sure that it can be a 64 Bit address, it is just an idea....
What I've investigated so far:
The QMPA (Queue Manager Parameter Area) has a new Flag-Byte (Job Status Byte)
at Offset 16. if the bit X'04' is set, than the address of the QMAT (Queue
Manager Address Table, which I don't know where it is documented) is 64 bit
wide and spread up:
Bytes 0-1 at offset 10,
Bytes 2-3 at offset 18 and
Bytes 4-7 at offset 24.
On my system the bytes at
offset 10 are always 0x0000, at
offset 18 always 0x0008 and at
offset 24 always 0x80000000.
This alone may be correct, but it is somehow strange to me.... (QMAT always at
address 0x8000000 00008 0000).
If the bit is 0 than the address of the QMAT is 31 bit and at offset 24. On my
z/OS 2.1 System the bit is always 0, on an z/OS 2.2 system it is always 1.
My *conclusion*, that SWAREQ may return 64 bit addresses is that the fact that
IBM Manuals state that a JFCB can be located anywhere ("Residency: Any"). And
the address of a JFCB can be get with SWAREQ when using the SVA-Address from
the TIOT. But when I'm writing these lines... I guess "any" means "anywere
above or below the 16 MB line" but does not mean "anywhere"....
However... I don't understand why the code does not work under z/OS anymore. I
guess that IBM has changed the handling of SVAs. But I can not find any manual
that describes this....
Have a nice weekend,
Michael
Mit freundlichen Grüßen
Michael Knigge
Software Engineer
SET GmbH
Lister Straße 15
30163 Hannover
phone: +49 511 39780-23
fax: +49 511 39780-65
www.set.de
[email protected]
Handelsregister: HRB52778 Amtsgericht Hannover
Geschäftsführer: Till Dammermann, Dr. Bernd Huber
Weitere Informationen finden Sie auf unserer Homepage...
-----Ursprüngliche Nachricht-----
Von: IBM Mainframe Discussion List [mailto:[email protected]] Im Auftrag
von Charles Mills
Gesendet: Freitag, 11. September 2015 15:34
An: [email protected]
Betreff: Re: SWAREQ / SVA under z/OS 2.2
> the “return value” from SWAREQ may be a 64 bit address
Can you elaborate on that a little? I am looking at V2R2 SWAREQ and I don't see
that. That would have a HUGE compatibility impact would it not?
Charles
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Michael Knigge
Sent: Friday, September 11, 2015 5:41 AM
To: [email protected]
Subject: SWAREQ / SVA under z/OS 2.2
All,
I’ve reimplemented the SWAREQ-Macro in Java (my „template“ was the well known
REXX from Gilbert Saint-Flour, see
https://www.mail-archive.com/[email protected]/msg30741.html).
Since z/OS 2.2 this implementation works no longer. The address to the QMAT can
be a 64 bit address since z/OS 2.2. No problem so far. But it seems to me the
complete logic
DO WHILE sva>65536
qmat = C2D(STORAGE(D2X(qmat+12),4))
sva=sva-65536
END
RETURN C2D(STORAGE(D2X(qmat+sva+1),4))+16
seems to work no longer…. I guess the problem is that the “return value” from
SWAREQ may be a 64 bit address but the “old” routine only gets a 32 bit value
at qmat+sva+1. …
Does anyone have a sample code of a SWAREQ-Implementation in a high-level
language? Or can someone tell me in which manual the format of a SVA is
documented, as well as the format of the QMAT (Queue Manager Address Table)? I
was not able to find it in this really large forest of IBM manuals….
I need to do a SWAREQ from Java and I would like to do so without assembler
“native” code from Java (which is always a little pain)….
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
[email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN