sys/sys/socketvar.h changed with revision 1.57 date: 2014/11/03 17:20:46; author: bluhm; state: Exp; lines: +16 -9; commitid: Jo3b0hfgHpuqTRST; Put the socket splicing fields into a seperate struct sosplice that gets only allocated when needed. This way struct socket shrinks from 472 to 392 bytes on amd64. When splicing gets active, another 88 bytes are allocated for struct sosplice. OK dlg@
but sosplice(9) still documents the old unexisting structures, so let's change it to mention the new struct sosplice. The following sounds a bit quirky; any better way to put it? [...] by setting these additional fields in the struct sosplice *so_sp field in struct socket: Note how I also changed the mdoc macro `Fa' (function argument) to `Va' (variable name) as that seems more appropiate. Ingo? Feedback? OK? Index: sosplice.9 =================================================================== RCS file: /cvs/src/share/man/man9/sosplice.9,v retrieving revision 1.8 diff -u -p -r1.8 sosplice.9 --- sosplice.9 13 Jun 2016 21:24:43 -0000 1.8 +++ sosplice.9 14 Aug 2018 20:16:56 -0000 @@ -59,28 +59,30 @@ See the .Sx ERRORS section for possible failures. The connection between both sockets is implemented by setting these -additional fields in +additional fields in the +.Vt struct sosplice Va *so_sp +field in .Vt struct socket : .Pp .Bl -dash -compact -offset indent .It -.Vt struct socket Fa *so_splice +.Vt struct socket Va *ssp_socket links from the source to the drain socket. .It -.Vt struct socket Fa *so_spliceback +.Vt struct socket Va *ssp_soback links back from the drain to the source socket. .It -.Vt off_t Fa so_splicelen +.Vt off_t Va ssp_len counts the number of bytes spliced so far from this socket. .It -.Vt off_t Fa so_splicemax +.Vt off_t Va ssp_max specifies the maximum number of bytes to splice from this socket if non-zero. .It -.Vt struct timeval Fa so_idletv +.Vt struct timeval Va ssp_idletv specifies the maximum idle time if non-zero. .It -.Vt struct timeout Fa so_idleto +.Vt struct timeout Va ssp_idleto provides storage for the kernel timeout if idle time is used. .El .Pp