Lines Matching defs:socket

102  * Kernel structure per socket.
124 /* We don't support BSD style socket filters */
128 struct socket {
130 short so_type; /* generic type, see socket.h */
131 u_int32_t so_options; /* from socket call, see socket.h */
139 * If so_head is 0, socket is not related to an accept.
140 * For head socket so_incomp queues partially completed connections,
145 * and limit on number of queued connections for this socket.
147 struct socket *so_head; /* back pointer to accept socket */
148 TAILQ_HEAD(, socket) so_incomp; /* q of partially unaccepted conns */
149 TAILQ_HEAD(, socket) so_comp; /* q of complete unaccepted conns */
150 TAILQ_ENTRY(socket) so_list; /* list of unaccepted connections */
161 TAILQ_HEAD(, aiocblist) so_aiojobq; /* AIO ops waiting on socket */
164 * Variables for socket buffering.
177 struct socket *sb_so; /* socket back ptr for kexts */
186 #define LOW_SB_MAX (2*9*1024) /* lower limit on max socket buffer size, 2 max datagrams */
201 #define SB_UNIX 0x800 /* UNIX domain socket buffer */
202 #define SB_AUTOSIZE 0x1000 /* automatically size socket buffer */
203 #define SB_TRIM 0x2000 /* Trim the socket buffer */
209 void (*so_upcall)(struct socket *so, caddr_t arg, int waitf);
211 kauth_cred_t so_cred; /* cred of who opened the socket */
224 struct socket *cache_next;
225 struct socket *cache_prev;
229 /* Plug-in support - make the socket interface overridable */
236 #define SOF_DEFUNCT 0x8 /* socket marked as inactive */
240 #define SOF_ABORTED 0x100 /* soabort was already called once on the socket */
241 #define SOF_OVERFLOW 0x200 /* socket was dropped as overflow of listen queue */
249 #define SOF_NODEFUNCT 0x8000 /* socket cannot be defunct'd */
252 #define SOF_INCOMP_INPROGRESS 0x40000 /* incomp socket still being processed */
254 #define SOF_KNOTE 0x100000 /* socket is on the EV_SOCK klist */
257 int so_usecount; /* refcounting of socket use */;
259 u_int32_t so_filteruse; /* usecount for the socket filters */
260 u_int32_t so_traffic_mgt_flags; /* traffic_mgt socket config */
273 struct label *so_label; /* MAC label for socket */
274 struct label *so_peerlabel; /* cached MAC label for socket peer */
275 thread_t so_background_thread; /* thread that marked this socket background */
278 // last process to interact with this socket
312 #define SS_ISCONNECTED 0x0002 /* socket connected to a peer */
325 #define SS_ISDISCONNECTED 0x2000 /* socket disconnected from peer */
355 * Externalized form of struct socket used by the sysctl(3) interface.
359 _XSOCKET_PTR(struct socket *) xso_so; /* makes a convenient handle */
459 * Macros for sockets and socket buffering.
465 * Functions for sockets and socket buffering.
473 int sosendallatonce(struct socket *so);
474 int soreadable(struct socket *so);
475 int sowriteable(struct socket *so);
480 void sorwakeup(struct socket *so);
481 void sowwakeup(struct socket *so);
505 /* Hints for socket event processing */
506 #define SO_FILT_HINT_LOCKED 0x00000001 /* socket is already locked */
647 extern int soabort(struct socket *so);
648 extern int soaccept(struct socket *so, struct sockaddr **nam);
649 extern int soacceptlock(struct socket *so, struct sockaddr **nam, int dolock);
650 extern int soacceptfilter(struct socket *so);
651 extern struct socket *soalloc(int waitok, int dom, int type);
652 extern int sobind(struct socket *so, struct sockaddr *nam);
653 extern void socantrcvmore(struct socket *so);
654 extern void socantsendmore(struct socket *so);
655 extern int soclose(struct socket *so);
656 extern int soconnect(struct socket *so, struct sockaddr *nam);
657 extern int soconnectlock(struct socket *so, struct sockaddr *nam, int dolock);
658 extern int soconnect2(struct socket *so1, struct socket *so2);
659 extern int socreate(int dom, struct socket **aso, int type, int proto);
660 extern void sodealloc(struct socket *so);
661 extern int sodisconnect(struct socket *so);
662 extern int sodisconnectlocked(struct socket *so);
663 extern void sofree(struct socket *so);
664 extern void soreference(struct socket *so);
665 extern void sodereference(struct socket *so);
666 extern void somultipages(struct socket *, boolean_t);
667 extern int sosetdefunct(struct proc *, struct socket *, int level, boolean_t);
668 extern int sodefunct(struct proc *, struct socket *, int level);
669 extern int sogetopt(struct socket *so, struct sockopt *sopt);
670 extern void sohasoutofband(struct socket *so);
671 extern void soisconnected(struct socket *so);
672 extern void soisconnecting(struct socket *so);
673 extern void soisdisconnected(struct socket *so);
674 extern void sodisconnectwakeup(struct socket *so);
675 extern void soisdisconnecting(struct socket *so);
676 extern int soisthrottled(struct socket *so);
677 extern int soisprivilegedtraffic(struct socket *so);
678 extern int solisten(struct socket *so, int backlog);
679 extern struct socket *sodropablereq(struct socket *head);
680 extern struct socket *sonewconn(struct socket *head, int connstatus,
685 extern int socket_lock(struct socket *so, int refcount);
686 extern int socket_unlock(struct socket *so, int refcount);
687 extern void sofreelastref(struct socket *, int);
688 extern int sogetaddr_locked(struct socket *, struct sockaddr **, int);
689 extern const char *solockhistory_nr(struct socket *);
690 extern void soevent(struct socket *so, long hint);
691 extern void get_sockev_state(struct socket *, u_int32_t *);
698 extern void set_packet_service_class(struct mbuf *, struct socket *,
700 extern void so_tc_update_stats(struct mbuf *, struct socket *, mbuf_svc_class_t );
705 extern void set_tcp_stream_priority(struct socket *so);
706 extern int so_set_traffic_class(struct socket *, int);
707 extern void so_set_default_traffic_class(struct socket *);
708 extern int so_set_opportunistic(struct socket *, int);
709 extern int so_get_opportunistic(struct socket *);
710 extern int so_set_recv_anyif(struct socket *, int);
711 extern int so_get_recv_anyif(struct socket *);
713 extern int so_set_tcdbg(struct socket *, struct so_tcdbg *);
714 extern int sogetopt_tcdbg(struct socket *, struct sockopt *);
715 extern void so_recv_data_stat(struct socket *, struct mbuf *, size_t);
716 extern int so_wait_for_if_feedback(struct socket *);
727 extern int sopoll(struct socket *so, int events, struct ucred *cred, void *wql);
728 extern int soreceive(struct socket *so, struct sockaddr **paddr,
730 extern int soreserve(struct socket *so, u_int32_t sndcc, u_int32_t rcvcc);
731 extern void sorflush(struct socket *so);
732 extern int sosend(struct socket *so, struct sockaddr *addr, struct uio *uio,
735 extern int sosetopt(struct socket *so, struct sockopt *sopt);
736 extern int soshutdown(struct socket *so, int how);
737 extern int soshutdownlock(struct socket *so, int how);
738 extern void sotoxsocket(struct socket *so, struct xsocket *xso);
740 extern void sotoxsocket64(struct socket *so, struct xsocket64 *xso);
743 extern void sowakeup(struct socket *so, struct sockbuf *sb);
744 extern int soioctl(struct socket *so, u_long cmd, caddr_t data, struct proc *p);