I/O messages
There are some 64-bit I/O messages that are used with resource managers:
- _IO_READ64 and _IO_WRITE64 have repurposed a zero field to allow the specification of the high 32 bits of length. There are _IO_READ_GET_NBYTES() and _IO_WRITE_GET_NBYTES() macros that calculate the number of bytes specified by _IO_READ, _IO_READ64, _IO_WRITE, and _IO_WRITE64 messages. For more information, see the Handling Read and Write Messages chapter in Writing a Resource Manager.
- _IO_UTIME64 defines a structure to handle 64-bit time_ts and to support futimens() and utimensat(). For more information, see iofunc_utime().
- _IO_NOTIFY64 extends the structure to handle 64-bit sigevent structures; see iofunc_notify().
- _IO_STAT repurposed a zero field to identify which format of stat structure
is requested:
#define _STAT_FORM_UNSET 0 #define _STAT_FORM_T32_2001 1 #define _STAT_FORM_T32_2008 2 #define _STAT_FORM_T64_2008 3 #if __PTR_BITS__ == 32 #define _STAT_FORM_SYS_2008 (_STAT_FORM_T32_2008) #define _STAT_FORM_PREFERRED (_STAT_FORM_T32_2001) #else #define _STAT_FORM_SYS_2008 (_STAT_FORM_T64_2008) #define _STAT_FORM_PREFERRED (_STAT_FORM_T64_2008) #endifand uses the MsgReply() status parameter to indicate which format was generated. See iofunc_stat_default().
Note:
The client side sends the 64-bit message types only when the data won't fit into the old message types.
Page updated:
