Open System Services Programmer's Guide

Guardian Socket Interfaces
recv64
recvfrom64_
recvmsg64_
recv_nw64_
recvfrom_nw64_
t_recvfrom_nw64_
send64_
sendmsg64_
sendto64_
send_nw64_
sendmsg_nw64_
sendto_nw64_
t_sendto_nw64_
NOTE: Both 32-bit and 64-bit callers can pass 32-bit pointers and 64-bit pointers to these
interfaces. The passed 32-bit pointers are automatically sign-extended to 64 bits wide. The passed
64-bit pointers are used as is.
For information about 64-bit memory segments, see “Sharing Memory Between 32-Bit and 64-Bit
Processes” (page 290).
64-Bit Data Types and Data Structures Changes
Changes have been made to fundamental data types and data structures for the LP64 data model,
beginning with the H06.24 and J06.13 RVUs.
64-Bit Data Types Changes
The following fundamental data types have been changed for the LP64 data model.
gid_t For LP64, the gid_t type in /usr/include/sys/types.h is changed from long
to int.
#ifdef __LP64
typedef int gid_t;
#else
typedef long gid_t;
#endif
in_addr_t For LP64, the in_addr_t type in /usr/include/netdb.h is changed from
unsigned long to unsigned int.
#ifdef __LP64
typedef unsigned int in_addr_t;
#else
typedef unsigned long in_addr_t;
#endif
mode_t – For LP64, the mode_t type in /usr/include/sys/types.h is changed from
unsigned long to unsigned int.
#ifdef __LP64
typedef unsigned int mode_t;
#else
typedef unsigned long mode_t;
#endif
64-Bit Data Types and Data Structures Changes 303