- STAILQ_ENTRY(socket) so_cache_ent; /* socache entry */
- caddr_t so_saved_pcb; /* Saved pcb when cacheing */
- u_int32_t cache_timestamp; /* time socket was cached */
-
- pid_t last_pid; /* pid of most recent accessor */
- u_int64_t last_upid; /* upid of most recent accessor */
-
- struct mbuf *so_temp; /* Holding area for outbound frags */
- /* Plug-in support - make the socket interface overridable */
- struct mbuf *so_tail;
- struct socket_filter_entry *so_filt; /* NKE hook */
- u_int32_t so_flags; /* Flags */
-#define SOF_NOSIGPIPE 0x00000001
-#define SOF_NOADDRAVAIL 0x00000002 /* EADDRNOTAVAIL if src addr is gone */
-#define SOF_PCBCLEARING 0x00000004 /* pru_disconnect done; don't
- call pru_detach */
-#define SOF_DEFUNCT 0x00000008 /* socket marked as inactive */
-#define SOF_CLOSEWAIT 0x00000010 /* blocked in close awaiting some events */
-#define SOF_REUSESHAREUID 0x00000040 /* Allows SO_REUSEADDR/SO_REUSEPORT
- for multiple so_uid */
-#define SOF_MULTIPAGES 0x00000080 /* jumbo clusters may be used for sosend */
-#define SOF_ABORTED 0x00000100 /* soabort was already called once */
-#define SOF_OVERFLOW 0x00000200 /* socket was dropped as overflow of
- listen q */
-#define SOF_NOTIFYCONFLICT 0x00000400 /* notify that a bind was done on a
- port already in use */
-#define SOF_UPCALLCLOSEWAIT 0x00000800 /* block close until upcall returns */
-#define SOF_BINDRANDOMPORT 0x00001000 /* Randomized port number for bind */
-#define SOF_NPX_SETOPTSHUT 0x00002000 /* Non POSIX extension to allow
- setsockopt(2) after shut down */
-#define SOF_RECV_TRAFFIC_CLASS 0x00004000 /* Receive TC as ancillary data */
-#define SOF_NODEFUNCT 0x00008000 /* socket cannot be defunct'd */
-#define SOF_PRIVILEGED_TRAFFIC_CLASS 0x00010000 /* traffic class is privileged */
-#define SOF_SUSPENDED 0x00020000 /* i/f output queue is suspended */
-#define SOF_INCOMP_INPROGRESS 0x00040000 /* incomp socket is being processed */
-#define SOF_NOTSENT_LOWAT 0x00080000 /* A different lowat on not sent
- data has been set */
-#define SOF_KNOTE 0x00100000 /* socket is on the EV_SOCK klist */
-#define SOF_USELRO 0x00200000 /* TCP must use LRO on these sockets */
-#define SOF_ENABLE_MSGS 0x00400000 /* TCP must enable message delivery */
-#define SOF_FLOW_DIVERT 0x00800000 /* Flow Divert is enabled */
-#define SOF_MP_SUBFLOW 0x01000000 /* is a multipath subflow socket */
-#define SOF_MP_SEC_SUBFLOW 0x04000000 /* Set up secondary flow */
-#define SOF_MP_TRYFAILOVER 0x08000000 /* Failing subflow */
-#define SOF_DELEGATED 0x10000000 /* on behalf of another process */
-#define SOF_CONTENT_FILTER 0x20000000 /* Content filter enabled */
-
- uint32_t so_upcallusecount; /* number of upcalls in progress */
- int so_usecount; /* refcounting of socket use */;
- int so_retaincnt;
- u_int32_t so_filteruse; /* usecount for the socket filters */
- u_int16_t so_traffic_class;
- int8_t so_netsvctype;
- u_int8_t so_restrictions;
- thread_t so_send_filt_thread;
+ STAILQ_ENTRY(socket) so_cache_ent; /* socache entry */
+ caddr_t so_saved_pcb; /* Saved pcb when cacheing */
+ u_int32_t cache_timestamp; /* time socket was cached */
+
+ pid_t last_pid; /* pid of most recent accessor */
+ u_int64_t last_upid; /* upid of most recent accessor */
+
+ struct socket_filter_entry *so_filt; /* NKE hook */
+ u_int32_t so_flags; /* Flags */
+#define SOF_NOSIGPIPE 0x00000001
+#define SOF_NOADDRAVAIL 0x00000002 /* EADDRNOTAVAIL if src addr is gone */
+#define SOF_PCBCLEARING 0x00000004 /* pru_disconnect done; don't
+ * call pru_detach */
+#define SOF_DEFUNCT 0x00000008 /* socket marked as inactive */
+#define SOF_CLOSEWAIT 0x00000010 /* blocked in close awaiting some events */
+#define SOF_REUSESHAREUID 0x00000040 /* Allows SO_REUSEADDR/SO_REUSEPORT
+ * for multiple so_uid */
+#define SOF_MULTIPAGES 0x00000080 /* jumbo clusters may be used for sosend */
+#define SOF_ABORTED 0x00000100 /* soabort was already called once */
+#define SOF_OVERFLOW 0x00000200 /* socket was dropped as overflow of
+ * listen q */
+#define SOF_NOTIFYCONFLICT 0x00000400 /* notify that a bind was done on a
+ * port already in use */
+#define SOF_UPCALLCLOSEWAIT 0x00000800 /* block close until upcall returns */
+#define SOF_BINDRANDOMPORT 0x00001000 /* Randomized port number for bind */
+#define SOF_NPX_SETOPTSHUT 0x00002000 /* Non POSIX extension to allow
+ * setsockopt(2) after shut down */
+#define SOF_RECV_TRAFFIC_CLASS 0x00004000 /* Receive TC as ancillary data */
+#define SOF_NODEFUNCT 0x00008000 /* socket cannot be defunct'd */
+#define SOF_PRIVILEGED_TRAFFIC_CLASS 0x00010000 /* traffic class is privileged */
+#define SOF_SUSPENDED 0x00020000 /* i/f output queue is suspended */
+#define SOF_INCOMP_INPROGRESS 0x00040000 /* incomp socket is being processed */
+#define SOF_NOTSENT_LOWAT 0x00080000 /* A different lowat on not sent
+ * data has been set */
+#define SOF_KNOTE 0x00100000 /* socket is on the EV_SOCK klist */
+#define SOF_USELRO 0x00200000 /* TCP must use LRO on these sockets */
+#define SOF_ENABLE_MSGS 0x00400000 /* TCP must enable message delivery */
+#define SOF_FLOW_DIVERT 0x00800000 /* Flow Divert is enabled */
+#define SOF_MP_SUBFLOW 0x01000000 /* is a multipath subflow socket */
+#define SOF_MP_SEC_SUBFLOW 0x04000000 /* Set up secondary flow */
+#define SOF_MP_TRYFAILOVER 0x08000000 /* Failing subflow */
+#define SOF_DELEGATED 0x10000000 /* on behalf of another process */
+#define SOF_CONTENT_FILTER 0x20000000 /* Content filter enabled */
+
+ uint32_t so_upcallusecount; /* number of upcalls in progress */
+ int so_usecount; /* refcounting of socket use */
+ int so_retaincnt;
+ u_int32_t so_filteruse; /* usecount for the socket filters */
+ u_int16_t so_traffic_class;
+ int8_t so_netsvctype;
+ u_int8_t so_restrictions;
+ thread_t so_send_filt_thread;