|
FreeBSD kernel kern code
|
#include <sys/cdefs.h>#include "opt_ddb.h"#include <sys/param.h>#include <sys/domain.h>#include <sys/fcntl.h>#include <sys/malloc.h>#include <sys/eventhandler.h>#include <sys/file.h>#include <sys/filedesc.h>#include <sys/kernel.h>#include <sys/lock.h>#include <sys/mbuf.h>#include <sys/mount.h>#include <sys/mutex.h>#include <sys/namei.h>#include <sys/proc.h>#include <sys/protosw.h>#include <sys/queue.h>#include <sys/resourcevar.h>#include <sys/rwlock.h>#include <sys/socket.h>#include <sys/socketvar.h>#include <sys/signalvar.h>#include <sys/stat.h>#include <sys/sx.h>#include <sys/sysctl.h>#include <sys/systm.h>#include <sys/taskqueue.h>#include <sys/un.h>#include <sys/unpcb.h>#include <sys/vnode.h>#include <net/vnet.h>#include <security/mac/mac_framework.h>#include <vm/uma.h>
Go to the source code of this file.
Data Structures | |
| struct | unp_defer |
Macros | |
| #define | PIPSIZ 8192 |
| #define | UNP_LINK_LOCK_INIT() |
| #define | UNP_LINK_LOCK_ASSERT() |
| #define | UNP_LINK_UNLOCK_ASSERT() |
| #define | UNP_LINK_RLOCK() rw_rlock(&unp_link_rwlock) |
| #define | UNP_LINK_RUNLOCK() rw_runlock(&unp_link_rwlock) |
| #define | UNP_LINK_WLOCK() rw_wlock(&unp_link_rwlock) |
| #define | UNP_LINK_WUNLOCK() rw_wunlock(&unp_link_rwlock) |
| #define | UNP_LINK_WLOCK_ASSERT() |
| #define | UNP_LIST_LOCK_INIT() |
| #define | UNP_LIST_LOCK() mtx_lock(&unp_list_lock) |
| #define | UNP_LIST_UNLOCK() mtx_unlock(&unp_list_lock) |
| #define | UNP_DEFERRED_LOCK_INIT() |
| #define | UNP_DEFERRED_LOCK() mtx_lock(&unp_defers_lock) |
| #define | UNP_DEFERRED_UNLOCK() mtx_unlock(&unp_defers_lock) |
| #define | UNP_PCB_LOCK_INIT(unp) |
| #define | UNP_PCB_LOCK_DESTROY(unp) mtx_destroy(&(unp)->unp_mtx) |
| #define | UNP_PCB_LOCK(unp) mtx_lock(&(unp)->unp_mtx) |
| #define | UNP_PCB_UNLOCK(unp) mtx_unlock(&(unp)->unp_mtx) |
| #define | UNP_PCB_LOCK_ASSERT(unp) mtx_assert(&(unp)->unp_mtx, MA_OWNED) |
| #define | OPTSET(bit) |
Functions | |
| __FBSDID ("$BSDSUniX$") | |
| static | SLIST_HEAD (unp_defer) |
| static | SYSCTL_NODE (_net, PF_LOCAL, local, CTLFLAG_RW, 0,"Local domain") |
| static | SYSCTL_NODE (_net_local, SOCK_STREAM, stream, CTLFLAG_RW, 0,"SOCK_STREAM") |
| static | SYSCTL_NODE (_net_local, SOCK_DGRAM, dgram, CTLFLAG_RW, 0,"SOCK_DGRAM") |
| static | SYSCTL_NODE (_net_local, SOCK_SEQPACKET, seqpacket, CTLFLAG_RW, 0,"SOCK_SEQPACKET") |
| SYSCTL_ULONG (_net_local_stream, OID_AUTO, sendspace, CTLFLAG_RW,&unpst_sendspace, 0,"Default stream send space.") | |
| SYSCTL_ULONG (_net_local_stream, OID_AUTO, recvspace, CTLFLAG_RW,&unpst_recvspace, 0,"Default stream receive space.") | |
| SYSCTL_ULONG (_net_local_dgram, OID_AUTO, maxdgram, CTLFLAG_RW,&unpdg_sendspace, 0,"Default datagram send space.") | |
| SYSCTL_ULONG (_net_local_dgram, OID_AUTO, recvspace, CTLFLAG_RW,&unpdg_recvspace, 0,"Default datagram receive space.") | |
| SYSCTL_ULONG (_net_local_seqpacket, OID_AUTO, maxseqpacket, CTLFLAG_RW,&unpsp_sendspace, 0,"Default seqpacket send space.") | |
| SYSCTL_ULONG (_net_local_seqpacket, OID_AUTO, recvspace, CTLFLAG_RW,&unpsp_recvspace, 0,"Default seqpacket receive space.") | |
| SYSCTL_INT (_net_local, OID_AUTO, inflight, CTLFLAG_RD,&unp_rights, 0,"File descriptors in flight.") | |
| SYSCTL_INT (_net_local, OID_AUTO, deferred, CTLFLAG_RD,&unp_defers_count, 0,"File descriptors deferred to taskqueue for close.") | |
| static int | uipc_connect2 (struct socket *, struct socket *) |
| static int | uipc_ctloutput (struct socket *, struct sockopt *) |
| static int | unp_connect (struct socket *, struct sockaddr *, struct thread *) |
| static int | unp_connect2 (struct socket *so, struct socket *so2, int) |
| static void | unp_disconnect (struct unpcb *unp, struct unpcb *unp2) |
| static void | unp_dispose (struct mbuf *) |
| static void | unp_shutdown (struct unpcb *) |
| static void | unp_drop (struct unpcb *, int) |
| static void | unp_gc (__unused void *, int) |
| static void | unp_scan (struct mbuf *, void(*)(struct file *)) |
| static void | unp_discard (struct file *) |
| static void | unp_freerights (struct file **, int) |
| static void | unp_init (void) |
| static int | unp_internalize (struct mbuf **, struct thread *) |
| static void | unp_internalize_fp (struct file *) |
| static int | unp_externalize (struct mbuf *, struct mbuf **) |
| static int | unp_externalize_fp (struct file *) |
| static struct mbuf * | unp_addsockcred (struct thread *, struct mbuf *) |
| static void | unp_process_defers (void *__unused, int) |
| DOMAIN_SET (local) | |
| static void | uipc_abort (struct socket *so) |
| static int | uipc_accept (struct socket *so, struct sockaddr **nam) |
| static int | uipc_attach (struct socket *so, int proto, struct thread *td) |
| static int | uipc_bind (struct socket *so, struct sockaddr *nam, struct thread *td) |
| static int | uipc_connect (struct socket *so, struct sockaddr *nam, struct thread *td) |
| static void | uipc_close (struct socket *so) |
| static void | uipc_detach (struct socket *so) |
| static int | uipc_disconnect (struct socket *so) |
| static int | uipc_listen (struct socket *so, int backlog, struct thread *td) |
| static int | uipc_peeraddr (struct socket *so, struct sockaddr **nam) |
| static int | uipc_rcvd (struct socket *so, int flags) |
| static int | uipc_send (struct socket *so, int flags, struct mbuf *m, struct sockaddr *nam, struct mbuf *control, struct thread *td) |
| static int | uipc_sense (struct socket *so, struct stat *sb) |
| static int | uipc_shutdown (struct socket *so) |
| static int | uipc_sockaddr (struct socket *so, struct sockaddr **nam) |
| static int | unp_pcblist (SYSCTL_HANDLER_ARGS) |
| SYSCTL_PROC (_net_local_dgram, OID_AUTO, pcblist, CTLTYPE_OPAQUE|CTLFLAG_RD,(void *)(intptr_t) SOCK_DGRAM, 0, unp_pcblist,"S,xunpcb","List of active local datagram sockets") | |
| SYSCTL_PROC (_net_local_stream, OID_AUTO, pcblist, CTLTYPE_OPAQUE|CTLFLAG_RD,(void *)(intptr_t) SOCK_STREAM, 0, unp_pcblist,"S,xunpcb","List of active local stream sockets") | |
| SYSCTL_PROC (_net_local_seqpacket, OID_AUTO, pcblist, CTLTYPE_OPAQUE|CTLFLAG_RD,(void *)(intptr_t) SOCK_SEQPACKET, 0, unp_pcblist,"S,xunpcb","List of active local seqpacket sockets") | |
| static void | unp_zone_change (void *tag) |
| static struct unpcb * | fptounp (struct file *fp) |
| static void | unp_process_defers (void *arg __unused, int pending) |
| static void | unp_accessable (struct file *fp) |
| static void | unp_gc_process (struct unpcb *unp) |
| SYSCTL_INT (_net_local, OID_AUTO, recycled, CTLFLAG_RD,&unp_recycled, 0,"Number of unreachable sockets claimed by the garbage collector.") | |
| SYSCTL_INT (_net_local, OID_AUTO, taskcount, CTLFLAG_RD,&unp_taskcount, 0,"Number of times the garbage collector has run.") | |
| void | vfs_unp_reclaim (struct vnode *vp) |
Variables | |
| static uma_zone_t | unp_zone |
| static unp_gen_t | unp_gencnt |
| static u_int | unp_count |
| static ino_t | unp_ino |
| static int | unp_rights |
| static struct unp_head | unp_shead |
| static struct unp_head | unp_dhead |
| static struct unp_head | unp_sphead |
| static struct timeout_task | unp_gc_task |
| static struct task | unp_defer_task |
| static u_long | unpst_sendspace = PIPSIZ |
| static u_long | unpst_recvspace = PIPSIZ |
| static u_long | unpdg_sendspace = 2*1024 |
| static u_long | unpdg_recvspace = 4*1024 |
| static u_long | unpsp_sendspace = PIPSIZ |
| static u_long | unpsp_recvspace = PIPSIZ |
| static struct rwlock | unp_link_rwlock |
| static struct mtx | unp_list_lock |
| static struct mtx | unp_defers_lock |
| static struct domain | localdomain |
| static struct pr_usrreqs uipc_usrreqs_dgram | uipc_usrreqs_stream |
| static struct pr_usrreqs | uipc_usrreqs_seqpacket |
| static struct protosw | localsw [] |
| static struct pr_usrreqs | uipc_usrreqs_dgram |
| static int | unp_marked |
| static int | unp_unreachable |
| static int | unp_recycled |
| static int | unp_taskcount |
| #define OPTSET | ( | bit | ) |
Referenced by uipc_ctloutput().
| #define PIPSIZ 8192 |
Definition at line 153 of file uipc_usrreq.c.
| #define UNP_DEFERRED_LOCK | ( | ) | mtx_lock(&unp_defers_lock) |
Definition at line 259 of file uipc_usrreq.c.
Referenced by unp_discard(), and unp_process_defers().
| #define UNP_DEFERRED_LOCK_INIT | ( | ) |
Definition at line 257 of file uipc_usrreq.c.
Referenced by unp_init().
| #define UNP_DEFERRED_UNLOCK | ( | ) | mtx_unlock(&unp_defers_lock) |
Definition at line 260 of file uipc_usrreq.c.
Referenced by unp_discard(), and unp_process_defers().
| #define UNP_LINK_LOCK_ASSERT | ( | ) |
Definition at line 240 of file uipc_usrreq.c.
| #define UNP_LINK_LOCK_INIT | ( | ) |
Definition at line 237 of file uipc_usrreq.c.
Referenced by unp_init().
| #define UNP_LINK_RLOCK | ( | ) | rw_rlock(&unp_link_rwlock) |
Definition at line 245 of file uipc_usrreq.c.
Referenced by uipc_accept(), uipc_peeraddr(), uipc_send(), uipc_sense(), and unp_gc().
| #define UNP_LINK_RUNLOCK | ( | ) | rw_runlock(&unp_link_rwlock) |
Definition at line 246 of file uipc_usrreq.c.
Referenced by uipc_accept(), uipc_peeraddr(), uipc_send(), uipc_sense(), and unp_gc().
| #define UNP_LINK_UNLOCK_ASSERT | ( | ) |
Definition at line 242 of file uipc_usrreq.c.
Referenced by unp_externalize(), and unp_internalize().
| #define UNP_LINK_WLOCK | ( | ) | rw_wlock(&unp_link_rwlock) |
Definition at line 247 of file uipc_usrreq.c.
Referenced by uipc_abort(), uipc_bind(), uipc_close(), uipc_connect(), uipc_connect2(), uipc_detach(), uipc_disconnect(), uipc_send(), uipc_shutdown(), unp_connect(), unp_externalize_fp(), unp_internalize_fp(), and vfs_unp_reclaim().
| #define UNP_LINK_WLOCK_ASSERT | ( | ) |
Definition at line 249 of file uipc_usrreq.c.
Referenced by uipc_send(), unp_connect(), unp_connect2(), unp_disconnect(), unp_drop(), and unp_shutdown().
| #define UNP_LINK_WUNLOCK | ( | ) | rw_wunlock(&unp_link_rwlock) |
Definition at line 248 of file uipc_usrreq.c.
Referenced by uipc_abort(), uipc_bind(), uipc_close(), uipc_connect(), uipc_connect2(), uipc_detach(), uipc_disconnect(), uipc_send(), uipc_shutdown(), unp_connect(), unp_externalize_fp(), unp_internalize_fp(), and vfs_unp_reclaim().
| #define UNP_LIST_LOCK | ( | ) | mtx_lock(&unp_list_lock) |
Definition at line 254 of file uipc_usrreq.c.
Referenced by uipc_attach(), uipc_detach(), unp_gc(), and unp_pcblist().
| #define UNP_LIST_LOCK_INIT | ( | ) |
Definition at line 252 of file uipc_usrreq.c.
Referenced by unp_init().
| #define UNP_LIST_UNLOCK | ( | ) | mtx_unlock(&unp_list_lock) |
Definition at line 255 of file uipc_usrreq.c.
Referenced by uipc_attach(), uipc_detach(), unp_gc(), and unp_pcblist().
| #define UNP_PCB_LOCK | ( | unp | ) | mtx_lock(&(unp)->unp_mtx) |
Definition at line 266 of file uipc_usrreq.c.
Referenced by uipc_abort(), uipc_accept(), uipc_bind(), uipc_close(), uipc_connect2(), uipc_ctloutput(), uipc_detach(), uipc_disconnect(), uipc_listen(), uipc_peeraddr(), uipc_rcvd(), uipc_send(), uipc_sense(), uipc_shutdown(), uipc_sockaddr(), unp_connect(), unp_drop(), unp_pcblist(), and vfs_unp_reclaim().
| #define UNP_PCB_LOCK_ASSERT | ( | unp | ) | mtx_assert(&(unp)->unp_mtx, MA_OWNED) |
Definition at line 268 of file uipc_usrreq.c.
Referenced by unp_connect2(), unp_disconnect(), unp_drop(), and unp_shutdown().
| #define UNP_PCB_LOCK_DESTROY | ( | unp | ) | mtx_destroy(&(unp)->unp_mtx) |
Definition at line 265 of file uipc_usrreq.c.
Referenced by uipc_detach(), and unp_pcblist().
| #define UNP_PCB_LOCK_INIT | ( | unp | ) |
Definition at line 262 of file uipc_usrreq.c.
Referenced by uipc_attach().
| #define UNP_PCB_UNLOCK | ( | unp | ) | mtx_unlock(&(unp)->unp_mtx) |
Definition at line 267 of file uipc_usrreq.c.
Referenced by uipc_abort(), uipc_accept(), uipc_bind(), uipc_close(), uipc_connect2(), uipc_ctloutput(), uipc_detach(), uipc_disconnect(), uipc_listen(), uipc_peeraddr(), uipc_rcvd(), uipc_send(), uipc_sense(), uipc_shutdown(), uipc_sockaddr(), unp_connect(), unp_drop(), unp_pcblist(), and vfs_unp_reclaim().
| __FBSDID | ( | "$BSDSUniX$" | ) |
| DOMAIN_SET | ( | local | ) |
|
static |
Definition at line 2015 of file uipc_usrreq.c.
Referenced by unp_accessable(), unp_externalize_fp(), and unp_internalize_fp().

|
static |
Definition at line 123 of file uipc_usrreq.c.
Referenced by unp_process_defers().

| SYSCTL_INT | ( | _net_local | , |
| OID_AUTO | , | ||
| inflight | , | ||
| CTLFLAG_RD | , | ||
| & | unp_rights, | ||
| 0 | , | ||
| "File descriptors in flight." | |||
| ) |
| SYSCTL_INT | ( | _net_local | , |
| OID_AUTO | , | ||
| deferred | , | ||
| CTLFLAG_RD | , | ||
| & | unp_defers_count, | ||
| 0 | , | ||
| "File descriptors deferred to taskqueue for close." | |||
| ) |
| SYSCTL_INT | ( | _net_local | , |
| OID_AUTO | , | ||
| recycled | , | ||
| CTLFLAG_RD | , | ||
| & | unp_recycled, | ||
| 0 | , | ||
| "Number of unreachable sockets claimed by the garbage collector." | |||
| ) |
| SYSCTL_INT | ( | _net_local | , |
| OID_AUTO | , | ||
| taskcount | , | ||
| CTLFLAG_RD | , | ||
| & | unp_taskcount, | ||
| 0 | , | ||
| "Number of times the garbage collector has run." | |||
| ) |
|
static |
|
static |
|
static |
|
static |
| SYSCTL_PROC | ( | _net_local_dgram | , |
| OID_AUTO | , | ||
| pcblist | , | ||
| CTLTYPE_OPAQUE| | CTLFLAG_RD, | ||
| (void *)(intptr_t) | SOCK_DGRAM, | ||
| 0 | , | ||
| unp_pcblist | , | ||
| " | S, | ||
| xunpcb" | , | ||
| "List of active local datagram sockets" | |||
| ) |
| SYSCTL_PROC | ( | _net_local_stream | , |
| OID_AUTO | , | ||
| pcblist | , | ||
| CTLTYPE_OPAQUE| | CTLFLAG_RD, | ||
| (void *)(intptr_t) | SOCK_STREAM, | ||
| 0 | , | ||
| unp_pcblist | , | ||
| " | S, | ||
| xunpcb" | , | ||
| "List of active local stream sockets" | |||
| ) |
| SYSCTL_PROC | ( | _net_local_seqpacket | , |
| OID_AUTO | , | ||
| pcblist | , | ||
| CTLTYPE_OPAQUE| | CTLFLAG_RD, | ||
| (void *)(intptr_t) | SOCK_SEQPACKET, | ||
| 0 | , | ||
| unp_pcblist | , | ||
| " | S, | ||
| xunpcb" | , | ||
| "List of active local seqpacket sockets" | |||
| ) |
| SYSCTL_ULONG | ( | _net_local_stream | , |
| OID_AUTO | , | ||
| sendspace | , | ||
| CTLFLAG_RW | , | ||
| & | unpst_sendspace, | ||
| 0 | , | ||
| "Default stream send space." | |||
| ) |
| SYSCTL_ULONG | ( | _net_local_stream | , |
| OID_AUTO | , | ||
| recvspace | , | ||
| CTLFLAG_RW | , | ||
| & | unpst_recvspace, | ||
| 0 | , | ||
| "Default stream receive space." | |||
| ) |
| SYSCTL_ULONG | ( | _net_local_dgram | , |
| OID_AUTO | , | ||
| maxdgram | , | ||
| CTLFLAG_RW | , | ||
| & | unpdg_sendspace, | ||
| 0 | , | ||
| "Default datagram send space." | |||
| ) |
| SYSCTL_ULONG | ( | _net_local_dgram | , |
| OID_AUTO | , | ||
| recvspace | , | ||
| CTLFLAG_RW | , | ||
| & | unpdg_recvspace, | ||
| 0 | , | ||
| "Default datagram receive space." | |||
| ) |
| SYSCTL_ULONG | ( | _net_local_seqpacket | , |
| OID_AUTO | , | ||
| maxseqpacket | , | ||
| CTLFLAG_RW | , | ||
| & | unpsp_sendspace, | ||
| 0 | , | ||
| "Default seqpacket send space." | |||
| ) |
| SYSCTL_ULONG | ( | _net_local_seqpacket | , |
| OID_AUTO | , | ||
| recvspace | , | ||
| CTLFLAG_RW | , | ||
| & | unpsp_recvspace, | ||
| 0 | , | ||
| "Default seqpacket receive space." | |||
| ) |
|
static |
Definition at line 340 of file uipc_usrreq.c.
References unp_drop(), UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 360 of file uipc_usrreq.c.
References malloc(), UNP_LINK_RLOCK, UNP_LINK_RUNLOCK, UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 389 of file uipc_usrreq.c.
References panic(), soreserve(), unp_count, unp_dhead, unp_gencnt, UNP_LIST_LOCK, UNP_LIST_UNLOCK, UNP_PCB_LOCK_INIT, unp_shead, unp_sphead, unp_zone, unpdg_recvspace, unpdg_sendspace, unpsp_recvspace, unpsp_sendspace, unpst_recvspace, and unpst_sendspace.

|
static |
Definition at line 454 of file uipc_usrreq.c.
References buf, free(), malloc(), namei(), NDFREE(), sodupsockaddr(), UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, UNP_PCB_UNLOCK, vn_finished_write(), vn_start_write(), vput(), and vrele().

|
static |
Definition at line 581 of file uipc_usrreq.c.
References unp_disconnect(), UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 569 of file uipc_usrreq.c.
References unp_connect(), UNP_LINK_WLOCK, and UNP_LINK_WUNLOCK.

|
static |
Definition at line 601 of file uipc_usrreq.c.
References unp_connect2(), UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 1158 of file uipc_usrreq.c.
References OPTSET, sooptcopyin(), sooptcopyout(), UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 621 of file uipc_usrreq.c.
References free(), taskqueue_enqueue_timeout(), unp_count, unp_disconnect(), unp_drop(), unp_gc_task, unp_gencnt, UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, UNP_LIST_LOCK, UNP_LIST_UNLOCK, UNP_PCB_LOCK, UNP_PCB_LOCK_DESTROY, UNP_PCB_UNLOCK, unp_rights, unp_zone, and vrele().

|
static |
Definition at line 690 of file uipc_usrreq.c.
References unp_disconnect(), UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 711 of file uipc_usrreq.c.
References cru2x(), solisten_proto(), solisten_proto_check(), UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 738 of file uipc_usrreq.c.
References malloc(), UNP_LINK_RLOCK, UNP_LINK_RUNLOCK, UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 771 of file uipc_usrreq.c.
References chgsbsize(), panic(), UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 818 of file uipc_usrreq.c.
References chgsbsize(), m_freem(), panic(), sbappend_locked(), sbappendaddr_locked(), sbappendaddr_nospacecheck_locked(), sbappendcontrol_locked(), socantsendmore(), unp_addsockcred(), unp_connect(), unp_disconnect(), unp_dispose(), unp_internalize(), UNP_LINK_RLOCK, UNP_LINK_RUNLOCK, UNP_LINK_WLOCK, UNP_LINK_WLOCK_ASSERT, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, UNP_PCB_UNLOCK, and unp_shutdown().

|
static |
Definition at line 1034 of file uipc_usrreq.c.
References unp_ino, UNP_LINK_RLOCK, UNP_LINK_RUNLOCK, UNP_PCB_LOCK, and UNP_PCB_UNLOCK.
|
static |
Definition at line 1061 of file uipc_usrreq.c.
References socantsendmore(), UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, UNP_PCB_UNLOCK, and unp_shutdown().

|
static |
Definition at line 1078 of file uipc_usrreq.c.
References malloc(), UNP_PCB_LOCK, and UNP_PCB_UNLOCK.

|
static |
Definition at line 2113 of file uipc_usrreq.c.
References fptounp().
Referenced by unp_gc_process().


|
static |
Definition at line 1966 of file uipc_usrreq.c.
References sbcreatecontrol().
Referenced by uipc_send().


|
static |
Definition at line 1252 of file uipc_usrreq.c.
References buf, cru2x(), free(), Giant, malloc(), namei(), NDFREE(), sonewconn(), unp_connect2(), UNP_LINK_WLOCK, UNP_LINK_WLOCK_ASSERT, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, UNP_PCB_UNLOCK, and vput().
Referenced by uipc_connect(), and uipc_send().


|
static |
Definition at line 1413 of file uipc_usrreq.c.
References panic(), soisconnected(), soisconnecting(), UNP_LINK_WLOCK_ASSERT, and UNP_PCB_LOCK_ASSERT.
Referenced by uipc_connect2(), and unp_connect().


|
static |
Definition at line 2029 of file uipc_usrreq.c.
References closef(), malloc(), taskqueue_enqueue(), unp_defer_task, UNP_DEFERRED_LOCK, UNP_DEFERRED_UNLOCK, and unp_externalize_fp().
Referenced by unp_dispose(), and unp_freerights().


|
static |
Definition at line 1455 of file uipc_usrreq.c.
References soisdisconnected(), UNP_LINK_WLOCK_ASSERT, and UNP_PCB_LOCK_ASSERT.
Referenced by uipc_close(), uipc_detach(), uipc_disconnect(), uipc_send(), and unp_drop().


|
static |
Definition at line 2266 of file uipc_usrreq.c.
References unp_discard(), and unp_scan().
Referenced by uipc_send().


|
static |
Definition at line 1654 of file uipc_usrreq.c.
References unp_disconnect(), UNP_LINK_WLOCK_ASSERT, UNP_PCB_LOCK, UNP_PCB_LOCK_ASSERT, and UNP_PCB_UNLOCK.
Referenced by uipc_abort(), and uipc_detach().


|
static |
Definition at line 1685 of file uipc_usrreq.c.
References fdallocn(), m_freem(), sbcreatecontrol(), unp_externalize_fp(), unp_freerights(), and UNP_LINK_UNLOCK_ASSERT.

|
static |
Definition at line 2088 of file uipc_usrreq.c.
References fptounp(), UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, and unp_rights.
Referenced by unp_discard(), and unp_externalize().


|
static |
Definition at line 1672 of file uipc_usrreq.c.
References unp_discard().
Referenced by unp_externalize().


|
static |
Definition at line 2180 of file uipc_usrreq.c.
References free(), malloc(), sorflush(), unp_dhead, unp_gc_process(), UNP_LINK_RLOCK, UNP_LINK_RUNLOCK, UNP_LIST_LOCK, UNP_LIST_UNLOCK, unp_shead, and unp_sphead.
Referenced by unp_init().


|
static |
Definition at line 2127 of file uipc_usrreq.c.
References unp_accessable(), and unp_scan().
Referenced by unp_gc().


|
static |
Definition at line 1792 of file uipc_usrreq.c.
References maxsockets, panic(), unp_defer_task, UNP_DEFERRED_LOCK_INIT, unp_dhead, unp_gc(), unp_gc_task, UNP_LINK_LOCK_INIT, UNP_LIST_LOCK_INIT, unp_process_defers(), unp_shead, unp_sphead, unp_zone, and unp_zone_change().

|
static |
Definition at line 1818 of file uipc_usrreq.c.
References bintime(), fd, m_freem(), microtime(), sbcreatecontrol(), unp_internalize_fp(), and UNP_LINK_UNLOCK_ASSERT.
Referenced by uipc_send().


|
static |
Definition at line 2073 of file uipc_usrreq.c.
References fptounp(), UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, and unp_rights.
Referenced by unp_internalize().


|
static |
Definition at line 1492 of file uipc_usrreq.c.
References cr_cansee(), free(), malloc(), panic(), so_gencnt, sotoxsocket(), unp_count, unp_dhead, unp_gencnt, UNP_LIST_LOCK, UNP_LIST_UNLOCK, UNP_PCB_LOCK, UNP_PCB_LOCK_DESTROY, UNP_PCB_UNLOCK, unp_shead, unp_sphead, and unp_zone.

|
static |
|
static |
Definition at line 2046 of file uipc_usrreq.c.
References closef(), count, free(), SLIST_HEAD(), UNP_DEFERRED_LOCK, and UNP_DEFERRED_UNLOCK.

|
static |
Definition at line 2274 of file uipc_usrreq.c.
Referenced by unp_dispose(), and unp_gc_process().

|
static |
Definition at line 1636 of file uipc_usrreq.c.
References socantrcvmore(), UNP_LINK_WLOCK_ASSERT, and UNP_PCB_LOCK_ASSERT.
Referenced by uipc_send(), and uipc_shutdown().


|
static |
Definition at line 1785 of file uipc_usrreq.c.
References maxsockets, and unp_zone.
Referenced by unp_init().

| void vfs_unp_reclaim | ( | struct vnode * | vp | ) |
Definition at line 2328 of file uipc_usrreq.c.
References UNP_LINK_WLOCK, UNP_LINK_WUNLOCK, UNP_PCB_LOCK, UNP_PCB_UNLOCK, and vunref().
Referenced by vgonel().


|
static |
Definition at line 294 of file uipc_usrreq.c.
|
static |
Definition at line 297 of file uipc_usrreq.c.
|
static |
Definition at line 1097 of file uipc_usrreq.c.
|
static |
Definition at line 296 of file uipc_usrreq.c.
|
static |
Definition at line 295 of file uipc_usrreq.c.
|
static |
Definition at line 112 of file uipc_usrreq.c.
Referenced by uipc_attach(), uipc_detach(), and unp_pcblist().
|
static |
Definition at line 141 of file uipc_usrreq.c.
Referenced by unp_discard(), and unp_init().
|
static |
Definition at line 235 of file uipc_usrreq.c.
|
static |
Definition at line 116 of file uipc_usrreq.c.
Referenced by uipc_attach(), unp_gc(), unp_init(), and unp_pcblist().
|
static |
Definition at line 134 of file uipc_usrreq.c.
Referenced by uipc_detach(), and unp_init().
|
static |
Definition at line 111 of file uipc_usrreq.c.
Referenced by uipc_attach(), uipc_detach(), and unp_pcblist().
|
static |
Definition at line 113 of file uipc_usrreq.c.
Referenced by uipc_sense().
|
static |
Definition at line 233 of file uipc_usrreq.c.
|
static |
Definition at line 234 of file uipc_usrreq.c.
|
static |
Definition at line 2109 of file uipc_usrreq.c.
|
static |
Definition at line 2171 of file uipc_usrreq.c.
|
static |
Definition at line 114 of file uipc_usrreq.c.
Referenced by uipc_detach(), unp_externalize_fp(), and unp_internalize_fp().
|
static |
Definition at line 115 of file uipc_usrreq.c.
Referenced by uipc_attach(), unp_gc(), unp_init(), and unp_pcblist().
|
static |
Definition at line 117 of file uipc_usrreq.c.
Referenced by uipc_attach(), unp_gc(), unp_init(), and unp_pcblist().
|
static |
Definition at line 2175 of file uipc_usrreq.c.
|
static |
Definition at line 2110 of file uipc_usrreq.c.
|
static |
Definition at line 110 of file uipc_usrreq.c.
Referenced by uipc_attach(), uipc_detach(), unp_init(), unp_pcblist(), and unp_zone_change().
|
static |
Definition at line 158 of file uipc_usrreq.c.
Referenced by uipc_attach().
|
static |
Definition at line 157 of file uipc_usrreq.c.
Referenced by uipc_attach().
|
static |
Definition at line 160 of file uipc_usrreq.c.
Referenced by uipc_attach().
|
static |
Definition at line 159 of file uipc_usrreq.c.
Referenced by uipc_attach().
|
static |
Definition at line 156 of file uipc_usrreq.c.
Referenced by uipc_attach().
|
static |
Definition at line 155 of file uipc_usrreq.c.
Referenced by uipc_attach().