Print this page
OS-4602 lxbrand support recvmsg(MSG_PEEK|MSG_TRUNC) behavior
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Joshua M. Clulow <jmc@joyent.com>
*** 143,153 ****
*
* PSARC 2009/478: Copy Reduction Interfaces
*/
typedef enum xuio_type {
UIOTYPE_ASYNCIO,
! UIOTYPE_ZEROCOPY
} xuio_type_t;
typedef struct xuio {
uio_t xu_uio; /* Embedded UIO structure */
--- 143,154 ----
*
* PSARC 2009/478: Copy Reduction Interfaces
*/
typedef enum xuio_type {
UIOTYPE_ASYNCIO,
! UIOTYPE_ZEROCOPY,
! UIOTYPE_PEEKSIZE
} xuio_type_t;
typedef struct xuio {
uio_t xu_uio; /* Embedded UIO structure */
*** 173,182 ****
--- 174,192 ----
*/
struct {
int xu_zc_rw; /* read or write buffer */
void *xu_zc_priv; /* fs specific */
} xu_zc;
+
+ /*
+ * Peek Size Support -- facilitate peeking at the size of a
+ * waiting message on a socket.
+ */
+ struct {
+ ssize_t xu_ps_size; /* size of waiting msg */
+ boolean_t xu_ps_set; /* was size calculated? */
+ } xu_ps;
} xu_ext;
} xuio_t;
#define XUIO_XUZC_PRIV(xuio) xuio->xu_ext.xu_zc.xu_zc_priv
#define XUIO_XUZC_RW(xuio) xuio->xu_ext.xu_zc.xu_zc_rw