summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2015-12-09 06:29:02 +0000
committerdlg <dlg@openbsd.org>2015-12-09 06:29:02 +0000
commit67c15d4fbae3b285593caea2af4ee7b5efe76f89 (patch)
treeac2db44cde75b697f7d00b625fd6fad278457368
parentsync (diff)
downloadwireguard-openbsd-67c15d4fbae3b285593caea2af4ee7b5efe76f89.tar.xz
wireguard-openbsd-67c15d4fbae3b285593caea2af4ee7b5efe76f89.zip
document ifq_restart. or try to.
-rw-r--r--share/man/man9/Makefile4
-rw-r--r--share/man/man9/ifq_enqueue.916
2 files changed, 15 insertions, 5 deletions
diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile
index 89ef43d2c17..1d9428d2178 100644
--- a/share/man/man9/Makefile
+++ b/share/man/man9/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.267 2015/12/08 10:06:40 mpi Exp $
+# $OpenBSD: Makefile,v 1.268 2015/12/09 06:29:02 dlg Exp $
# $NetBSD: Makefile,v 1.4 1996/01/09 03:23:01 thorpej Exp $
# Makefile for section 9 (kernel function and variable) manual pages.
@@ -220,7 +220,7 @@ MLINKS+=if_rxr_init.9 if_rxr_get.9 if_rxr_init.9 if_rxr_put.9 \
MLINKS+=ifq_enqueue.9 ifq_dequeue.9 ifq_enqueue.9 ifq_purge.9 \
ifq_enqueue.9 ifq_len.9 ifq_enqueue.9 ifq_empty.9 \
ifq_enqueue.9 ifq_set_oactive.9 ifq_enqueue.9 ifq_clr_oactive.9 \
- ifq_enqueue.9 ifq_is_oactive.9
+ ifq_enqueue.9 ifq_is_oactive.9 ifq_enqueue.9 ifq_restart.9
MLINKS+=ifq_deq_begin.9 ifq_deq_commit.9 ifq_deq_begin.9 ifq_deq_rollback.9
MLINKS+=iic.9 iic_acquire_bus.9 iic.9 iic_release_bus.9 iic.9 iic_exec.9 \
iic.9 iic_smbus_write_byte.9 iic.9 iic_smbus_read_byte.9 \
diff --git a/share/man/man9/ifq_enqueue.9 b/share/man/man9/ifq_enqueue.9
index 03c5909b0ca..17d48e95727 100644
--- a/share/man/man9/ifq_enqueue.9
+++ b/share/man/man9/ifq_enqueue.9
@@ -1,4 +1,4 @@
-.\" $OpenBSD: ifq_enqueue.9,v 1.4 2015/11/25 03:09:57 dlg Exp $
+.\" $OpenBSD: ifq_enqueue.9,v 1.5 2015/12/09 06:29:02 dlg Exp $
.\"
.\" Copyright (c) 2015 David Gwynne <dlg@openbsd.org>
.\"
@@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: November 25 2015 $
+.Dd $Mdocdate: December 9 2015 $
.Dt IFQ_ENQUEUE 9
.Os
.Sh NAME
@@ -25,7 +25,8 @@
.Nm ifq_empty ,
.Nm ifq_set_oactive ,
.Nm ifq_clr_oactive ,
-.Nm ifq_is_oactive
+.Nm ifq_is_oactive ,
+.Nm ifq_restart
.Nd interface send queue API
.Sh SYNOPSIS
.In net/if_var.h
@@ -45,6 +46,8 @@
.Fn ifq_clr_oactive "struct ifqueue *ifq"
.Ft unsigned int
.Fn ifq_is_oactive "struct ifqueue *ifq"
+.Ft void
+.Fn ifq_restart "struct ifqueue *ifq"
.Sh DESCRIPTION
The ifqueue API provides implementions of data structures and
operations for the network stack to queue mbufs for a network driver
@@ -97,6 +100,13 @@ meaning it is now able to transmit packets.
Return if the hardware associated with the interface send queue
.Fa ifq
is unable to transmit more packets.
+.It Fn ifq_restart "struct ifqueue *ifq"
+Dispatch a call to
+.Fn ifq_clr_oactive
+and the interfaces start routine.
+This call is serialised with other calls to the start routine via
+.Fn if_start
+and therefore provides race free modification of the "active" mark.
.El
.Sh CONTEXT
.Fn ifq_enqueue ,