Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/socketvar.h
          +++ new/usr/src/uts/common/sys/socketvar.h
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
  24      - * Copyright 2015 Joyent, Inc.
  25   24   */
  26   25  
  27   26  /*      Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T     */
  28   27  /*        All Rights Reserved   */
  29   28  
  30   29  /*
  31   30   * University Copyright- Copyright (c) 1982, 1986, 1988
  32   31   * The Regents of the University of California
  33   32   * All Rights Reserved
  34   33   *
↓ open down ↓ 61 lines elided ↑ open up ↑
  96   95          sa_family_t             sou_family;     /* AF_UNIX */
  97   96          struct so_ux_addr       sou_addr;
  98   97  };
  99   98  
 100   99  #if defined(_KERNEL) || defined(_KMEMUSER)
 101  100  
 102  101  #include <sys/socket_proto.h>
 103  102  
 104  103  typedef struct sonodeops sonodeops_t;
 105  104  typedef struct sonode sonode_t;
 106      -typedef boolean_t (*so_krecv_f)(sonode_t *, mblk_t *, size_t, int, void *);
 107  105  
 108  106  struct sodirect_s;
 109  107  
 110  108  /*
 111  109   * The sonode represents a socket. A sonode never exist in the file system
 112  110   * name space and can not be opened using open() - only the socket, socketpair
 113  111   * and accept calls create sonodes.
 114  112   *
 115  113   * The locking of sockfs uses the so_lock mutex plus the SOLOCKED and
 116  114   * SOREADLOCKED flags in so_flag. The mutex protects all the state in the
↓ open down ↓ 122 lines elided ↑ open up ↑
 239  237  
 240  238          /* != NULL for sodirect enabled socket */
 241  239          struct sodirect_s       *so_direct;
 242  240  
 243  241          /* socket filters */
 244  242          uint_t                  so_filter_active;       /* # of active fil */
 245  243          uint_t                  so_filter_tx;           /* pending tx ops */
 246  244          struct sof_instance     *so_filter_top;         /* top of stack */
 247  245          struct sof_instance     *so_filter_bottom;      /* bottom of stack */
 248  246          clock_t                 so_filter_defertime;    /* time when deferred */
 249      -
 250      -        /* Kernel direct receive callbacks */
 251      -        so_krecv_f              so_krecv_cb;            /* recv callback */
 252      -        void                    *so_krecv_arg;          /* recv cb arg */
 253  247  };
 254  248  
 255  249  #define SO_HAVE_DATA(so)                                                \
 256  250          /*                                                              \
 257  251           * For the (tid == 0) case we must check so_rcv_{q_,}head       \
 258  252           * rather than (so_rcv_queued > 0), since the latter does not   \
 259  253           * take into account mblks with only control/name information.  \
 260  254           */                                                             \
 261  255          ((so)->so_rcv_timer_tid == 0 && ((so)->so_rcv_head != NULL ||   \
 262  256          (so)->so_rcv_q_head != NULL)) ||                                \
↓ open down ↓ 703 lines elided ↑ open up ↑
 966  960                      int);
 967  961  extern int      sosetsockopt(struct sonode *, int, int, const void *,
 968  962                      t_uscalar_t);
 969  963  
 970  964  extern struct sonode    *socreate(struct sockparams *, int, int, int, int,
 971  965                              int *);
 972  966  
 973  967  extern int      so_copyin(const void *, void *, size_t, int);
 974  968  extern int      so_copyout(const void *, void *, size_t, int);
 975  969  
 976      -/*
 977      - * Functions to manipulate the use of direct receive callbacks. This should not
 978      - * be used outside of sockfs and ksocket. These are generally considered a use
 979      - * once interface for a socket and will cause all outstanding data on the socket
 980      - * to be flushed.
 981      - */
 982      -extern int      so_krecv_set(sonode_t *, so_krecv_f, void *);
 983      -extern void     so_krecv_unblock(sonode_t *);
 984      -
 985  970  #endif
 986  971  
 987  972  /*
 988  973   * Internal structure for obtaining sonode information from the socklist.
 989  974   * These types match those corresponding in the sonode structure.
 990  975   * This is not a published interface, and may change at any time.
 991  976   */
 992  977  struct sockinfo {
 993  978          uint_t          si_size;                /* real length of this struct */
 994  979          short           si_family;
↓ open down ↓ 111 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX