From: | Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx> |
Date: | Sat, 21 Apr 2007 18:13:18 -0700 (PDT) |
dillon 2007/04/21 18:13:17 PDT DragonFly src repository Modified files: sys/conf files sys/kern sys_socket.c uipc_msg.c uipc_socket.c uipc_socket2.c uipc_syscalls.c uipc_usrreq.c vfs_aio.c sys/net netmsg.h raw_usrreq.c sys/net/accf_data accf_data.c sys/net/accf_http accf_http.c sys/net/ip_mroute ip_mroute.c sys/netgraph/ksocket ng_ksocket.c sys/netgraph/socket ng_socket.c sys/netinet ip_divert.c raw_ip.c sctp_indata.c sctp_input.c sctp_output.c sctp_pcb.c sctp_usrreq.c sctp_var.h sctputil.c sctputil.h tcp_input.c tcp_output.c tcp_sack.c tcp_subr.c tcp_syncache.c tcp_usrreq.c udp_usrreq.c sys/netinet6 icmp6.c ip6_mroute.c raw_ip6.c sctp6_usrreq.c udp6_usrreq.c sys/netproto/atalk ddp_input.c sys/netproto/atm atm_aal5.c atm_socket.c sys/netproto/ipsec keysock.c sys/netproto/ipx ipx_usrreq.c spx_usrreq.c sys/netproto/key keysock.c sys/netproto/natm natm.c natm.h sys/netproto/ncp ncp_ncp.c ncp_sock.c ncp_sock.h sys/netproto/ns idp_usrreq.c spp_usrreq.c sys/netproto/smb smb_trantcp.c sys/sys aio.h protosw.h socketops.h socketvar.h sys/vfs/fifofs fifo_vnops.c sys/vfs/nfs krpc_subr.c nfs_socket.c nfs_syscalls.c sys/vfs/portal portal_vnops.c Added files: sys/kern uipc_sockbuf.c sys/sys sockbuf.h Log: Give the sockbuf structure its own header file and supporting source file. Move all sockbuf-specific functions from kern/uipc_socket2.c into the new kern/uipc_sockbuf.c and move all the sockbuf-specific structures from sys/socketvar.h to sys/sockbuf.h. Change the sockbuf structure to only contain those fields required to properly management a chain of mbufs. Create a signalsockbuf structure to hold the remaining fields (e.g. selinfo, mbmax, etc). Change the so_rcv and so_snd structures in the struct socket from a sockbuf to a signalsockbuf. Remove the recently added sorecv_direct structure which was being used to provide a direct mbuf path to consumers for socket I/O. Use the newly revamped sockbuf base structure instead. This gives mbuf consumers direct access to the sockbuf API functions for use outside of a struct socket. This will also allow new API functions to be added to the sockbuf interface to ease the job of parsing data out of chained mbufs. Revision Changes Path 1.157 +1 -0 src/sys/conf/files 1.14 +7 -7 src/sys/kern/sys_socket.c 1.16 +7 -7 src/sys/kern/uipc_msg.c 1.45 +103 -109 src/sys/kern/uipc_socket.c 1.27 +123 -681 src/sys/kern/uipc_socket2.c 1.80 +16 -16 src/sys/kern/uipc_syscalls.c 1.34 +23 -21 src/sys/kern/uipc_usrreq.c 1.38 +9 -9 src/sys/kern/vfs_aio.c 1.5 +1 -1 src/sys/net/netmsg.h 1.13 +2 -2 src/sys/net/raw_usrreq.c 1.3 +2 -2 src/sys/net/accf_data/accf_data.c 1.4 +18 -17 src/sys/net/accf_http/accf_http.c 1.22 +4 -4 src/sys/net/ip_mroute/ip_mroute.c 1.14 +14 -14 src/sys/netgraph/ksocket/ng_ksocket.c 1.13 +2 -2 src/sys/netgraph/socket/ng_socket.c 1.28 +1 -1 src/sys/netinet/ip_divert.c 1.26 +2 -2 src/sys/netinet/raw_ip.c 1.7 +21 -21 src/sys/netinet/sctp_indata.c 1.11 +4 -4 src/sys/netinet/sctp_input.c 1.11 +32 -32 src/sys/netinet/sctp_output.c 1.12 +5 -5 src/sys/netinet/sctp_pcb.c 1.12 +6 -6 src/sys/netinet/sctp_usrreq.c 1.4 +1 -1 src/sys/netinet/sctp_var.h 1.8 +41 -163 src/sys/netinet/sctputil.c 1.6 +1 -1 src/sys/netinet/sctputil.h 1.67 +20 -20 src/sys/netinet/tcp_input.c 1.34 +13 -13 src/sys/netinet/tcp_output.c 1.6 +1 -1 src/sys/netinet/tcp_sack.c 1.57 +4 -4 src/sys/netinet/tcp_subr.c 1.29 +4 -4 src/sys/netinet/tcp_syncache.c 1.42 +8 -8 src/sys/netinet/tcp_usrreq.c 1.42 +2 -2 src/sys/netinet/udp_usrreq.c 1.26 +2 -2 src/sys/netinet6/icmp6.c 1.15 +1 -1 src/sys/netinet6/ip6_mroute.c 1.25 +2 -2 src/sys/netinet6/raw_ip6.c 1.10 +2 -2 src/sys/netinet6/sctp6_usrreq.c 1.26 +5 -5 src/sys/netinet6/udp6_usrreq.c 1.13 +1 -1 src/sys/netproto/atalk/ddp_input.c 1.13 +4 -4 src/sys/netproto/atm/atm_aal5.c 1.10 +1 -1 src/sys/netproto/atm/atm_socket.c 1.17 +3 -3 src/sys/netproto/ipsec/keysock.c 1.12 +1 -1 src/sys/netproto/ipx/ipx_usrreq.c 1.20 +28 -28 src/sys/netproto/ipx/spx_usrreq.c 1.18 +3 -3 src/sys/netproto/key/keysock.c 1.25 +5 -5 src/sys/netproto/natm/natm.c 1.6 +1 -1 src/sys/netproto/natm/natm.h 1.15 +6 -6 src/sys/netproto/ncp/ncp_ncp.c 1.18 +9 -11 src/sys/netproto/ncp/ncp_sock.c 1.5 +1 -1 src/sys/netproto/ncp/ncp_sock.h 1.14 +1 -1 src/sys/netproto/ns/idp_usrreq.c 1.22 +28 -28 src/sys/netproto/ns/spp_usrreq.c 1.19 +18 -18 src/sys/netproto/smb/smb_trantcp.c 1.5 +2 -2 src/sys/sys/aio.h 1.19 +3 -3 src/sys/sys/protosw.h 1.11 +1 -1 src/sys/sys/socketops.h 1.28 +118 -148 src/sys/sys/socketvar.h 1.37 +10 -15 src/sys/vfs/fifofs/fifo_vnops.c 1.12 +4 -4 src/sys/vfs/nfs/krpc_subr.c 1.44 +32 -32 src/sys/vfs/nfs/nfs_socket.c 1.29 +6 -6 src/sys/vfs/nfs/nfs_syscalls.c 1.35 +8 -8 src/sys/vfs/portal/portal_vnops.c http://www.dragonflybsd.org/cvsweb/src/sys/conf/files.diff?r1=1.156&r2=1.157&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/sys_socket.c.diff?r1=1.13&r2=1.14&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_msg.c.diff?r1=1.15&r2=1.16&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_socket.c.diff?r1=1.44&r2=1.45&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_socket2.c.diff?r1=1.26&r2=1.27&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_syscalls.c.diff?r1=1.79&r2=1.80&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/uipc_usrreq.c.diff?r1=1.33&r2=1.34&f=u http://www.dragonflybsd.org/cvsweb/src/sys/kern/vfs_aio.c.diff?r1=1.37&r2=1.38&f=u http://www.dragonflybsd.org/cvsweb/src/sys/net/netmsg.h.diff?r1=1.4&r2=1.5&f=u http://www.dragonflybsd.org/cvsweb/src/sys/net/raw_usrreq.c.diff?r1=1.12&r2=1.13&f=u http://www.dragonflybsd.org/cvsweb/src/sys/net/accf_data/accf_data.c.diff?r1=1.2&r2=1.3&f=u http://www.dragonflybsd.org/cvsweb/src/sys/net/accf_http/accf_http.c.diff?r1=1.3&r2=1.4&f=u http://www.dragonflybsd.org/cvsweb/src/sys/net/ip_mroute/ip_mroute.c.diff?r1=1.21&r2=1.22&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netgraph/ksocket/ng_ksocket.c.diff?r1=1.13&r2=1.14&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netgraph/socket/ng_socket.c.diff?r1=1.12&r2=1.13&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/ip_divert.c.diff?r1=1.27&r2=1.28&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/raw_ip.c.diff?r1=1.25&r2=1.26&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/sctp_indata.c.diff?r1=1.6&r2=1.7&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/sctp_input.c.diff?r1=1.10&r2=1.11&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/sctp_output.c.diff?r1=1.10&r2=1.11&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/sctp_pcb.c.diff?r1=1.11&r2=1.12&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/sctp_usrreq.c.diff?r1=1.11&r2=1.12&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/sctp_var.h.diff?r1=1.3&r2=1.4&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/sctputil.c.diff?r1=1.7&r2=1.8&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/sctputil.h.diff?r1=1.5&r2=1.6&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_input.c.diff?r1=1.66&r2=1.67&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_output.c.diff?r1=1.33&r2=1.34&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_sack.c.diff?r1=1.5&r2=1.6&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_subr.c.diff?r1=1.56&r2=1.57&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_syncache.c.diff?r1=1.28&r2=1.29&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/tcp_usrreq.c.diff?r1=1.41&r2=1.42&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet/udp_usrreq.c.diff?r1=1.41&r2=1.42&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/icmp6.c.diff?r1=1.25&r2=1.26&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/ip6_mroute.c.diff?r1=1.14&r2=1.15&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/raw_ip6.c.diff?r1=1.24&r2=1.25&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/sctp6_usrreq.c.diff?r1=1.9&r2=1.10&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netinet6/udp6_usrreq.c.diff?r1=1.25&r2=1.26&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/atalk/ddp_input.c.diff?r1=1.12&r2=1.13&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/atm/atm_aal5.c.diff?r1=1.12&r2=1.13&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/atm/atm_socket.c.diff?r1=1.9&r2=1.10&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ipsec/keysock.c.diff?r1=1.16&r2=1.17&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ipx/ipx_usrreq.c.diff?r1=1.11&r2=1.12&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ipx/spx_usrreq.c.diff?r1=1.19&r2=1.20&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/key/keysock.c.diff?r1=1.17&r2=1.18&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/natm/natm.c.diff?r1=1.24&r2=1.25&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/natm/natm.h.diff?r1=1.5&r2=1.6&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ncp/ncp_ncp.c.diff?r1=1.14&r2=1.15&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ncp/ncp_sock.c.diff?r1=1.17&r2=1.18&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ncp/ncp_sock.h.diff?r1=1.4&r2=1.5&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ns/idp_usrreq.c.diff?r1=1.13&r2=1.14&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/ns/spp_usrreq.c.diff?r1=1.21&r2=1.22&f=u http://www.dragonflybsd.org/cvsweb/src/sys/netproto/smb/smb_trantcp.c.diff?r1=1.18&r2=1.19&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/aio.h.diff?r1=1.4&r2=1.5&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/protosw.h.diff?r1=1.18&r2=1.19&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/socketops.h.diff?r1=1.10&r2=1.11&f=u http://www.dragonflybsd.org/cvsweb/src/sys/sys/socketvar.h.diff?r1=1.27&r2=1.28&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/fifofs/fifo_vnops.c.diff?r1=1.36&r2=1.37&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/krpc_subr.c.diff?r1=1.11&r2=1.12&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_socket.c.diff?r1=1.43&r2=1.44&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/nfs/nfs_syscalls.c.diff?r1=1.28&r2=1.29&f=u http://www.dragonflybsd.org/cvsweb/src/sys/vfs/portal/portal_vnops.c.diff?r1=1.34&r2=1.35&f=u