- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- return length value in 64 bit (ileb) item lists to...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-23-2005 07:05 AM
09-23-2005 07:05 AM
Also, the example program 4-5, in "Programming Concepts" using sys$getjpi() is wrong - the usersize should be unsigned short and the username[] field used in the printf() is not null terminated by getjpi().
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-24-2005 11:13 AM
09-24-2005 11:13 AM
SolutionAs the maintainer for $GETDVI, your note is of interest to me. However, it appears that $GETDVI does *not* support 64 bit item lists. In fact, the documentation in the V8.2 System Services Reference Manual for $GETDVI lists support for *only* the older, 32-bit variant (whose offsets are defined by ILEDEF in the language-dependent STARLET libraries and are prefixed by ILE3$). A quick check of the code for $GETDVI confirms that there is truly no support for 64-bit item lists.
Having said that, I will check the other services and request that the documentation be corrected for V8.3.
Thanks for the tip!
-- Rob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-25-2005 09:00 AM
09-25-2005 09:00 AM
Re: return length value in 64 bit (ileb) item lists to OpenVMS system services.
The purpose of a 64 bit item list is to allow the items and returned length fields to be stored anywhere in 64bit address space P0, P2, P2, S0, S1, S2, so it's the addresses that need to be 64 bits. The objects they return aren't necessarily any bigger than they were for the 32 bit equivalent service.
So, if the service returns a WORD length field, that's all it returns. That the pointer to it is 4 times larger than the thing it points to is a bit odd, but that's just how it is. Don't confuse 64 bit addresses with 64 bit contents.
As Rob Brooks has pointed out, not all services support the 64 bit lists (yet?).
Documentation isn't always perfect. A report of errors or inconsistencies here is appreciated and *might* make it into engineering, but if you want to be sure your suggestions are acted on, please log a case with your local customer support centre.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-25-2005 11:41 AM
09-25-2005 11:41 AM
Re: return length value in 64 bit (ileb) item lists to OpenVMS system services.
Careful reading of the original post makes it clear the poster wasn't confusing the pointer with what it points to. From day one in VMS, the return length pointer in an item list has been larger than the data cell it points to. In the 32-bit item list, no more than 16 bits for return length is needed because the largest return buffer it could specify is 65K. The new format has a 64-bit buffer length, so in the general case you need a octaword to hold all potential return length values.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-26-2005 02:44 AM
09-26-2005 02:44 AM
Re: return length value in 64 bit (ileb) item lists to OpenVMS system services.
getsyi() in routine putdata appears to write a 16 bit value to a 64 bit item list descriptor. I think this is a bug, although it does match the documentation.
getjpi() in routine $write_retlen checks for and writes a quadword return length address. This is the only get... system service that appears to handle 64 bit item lists with a 64 bit return length, but the documentation is wrong.
getlki() in routine movit appears to write a longword and the documenation is also correct. getlki() doesn't appear to allow 64 bit item lists.
getqui() doesn't support 64 bit item lists.
Documenation is correct.
So in summary, I could only find two system services that seem to support 64 bit item lists and they handle the return length address differently.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-26-2005 02:52 AM
09-26-2005 02:52 AM