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