Open System Services Programmer's Guide
_ptr64_to_ptr32
This new builtin makes sure a program can safely truncate a 64-bit pointer to a 32-bit pointer.
void _ptr32 * _ptr64_to_ptr32(void _ptr64 *);
If the passed pointer is a sign-extended 32-bit pointer, its low-order 32 bits are returned. Otherwise,
a run-time trap occurs.
New OSS String Manipulation Functions
The string.h file contains prototypes for new string manipulation functions that accept 64-bit
pointers and data lengths. These functions return pointers that are also 64-bits wide.
• memchr64()
• memcmp64()
• memcpy64()
• memmove64()
• memset64()
• strcat64()
• strchr64()
• strcmp64()
• strcpy64()
• strlen64()
• strncat64()
• strrchr64()
• strncmp64()
• strncpy64()
• strstr64()
See the Open System Services Library Calls Reference Manual in the NTL for details of these new
functions.
File and Socket I/O APIs 32-Bit Support for 64-Bit Segments
Beginning with the H06.24 and J06.13 RVUs, native Guardian and OSS processes on TNS/E
systems can perform OSS file and socket I/O operations directly to and from 64-bit memory
segments. Both native Guardian and OSS processes can call the following functions to perform
I/O directly to and from a 64-bit memory segment.
OSS Interfaces
• read64_()
• recv64_()
• recvfrom64_()
• recvmsg64_()
• send64_()
• sendmsg64_()
• sendto64_()
• write64_()
302 64-Bit Support in OSS and Guardian










