-.\" $OpenBSD: socreate.9,v 1.5 2015/11/03 00:13:17 dlg Exp $
+.\" $OpenBSD: socreate.9,v 1.6 2016/07/27 13:02:50 phessler Exp $
.\"
.\" Copyright (c) 2006 Robert N. M. Watson
.\" All rights reserved.
.\"
.\" $FreeBSD: src/share/man/man9/socket.9,v 1.2 2006/12/16 10:32:10 rwatson Exp $
.\"
-.Dd $Mdocdate: November 3 2015 $
+.Dd $Mdocdate: July 27 2016 $
.Dt SOCREATE 9
.Os
.Sh NAME
.Nm soconnect ,
.Nm socreate ,
.Nm soreceive ,
+.Nm so_upcall ,
.Nm sosetopt ,
.Nm sogetopt ,
.Nm sosend ,
.Fa "struct mbuf **mp0" "struct mbuf **controlp" "int *flagsp"
.Fa "socklen_t controllen"
.Fc
+.Ft void
+.Fn (*so_upcall) "struct socket *so" "caddr_t arg" "int waitflag"
.Ft int
.Fn sosetopt "struct socket *so" "int level" "int optname" "struct mbuf *m0"
.Ft int
.Xr recvmsg 2
system call.
.Pp
+When the
+.Fn so_upcall
+function pointer is not NULL, it is called when
+.Xr soreceive 9
+matches an incoming connection.
+.Pp
The
.Fn sosend
function is equivalent to the