Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Add callback(9) man page. Reviewed and improved by <wiz>, t...
details: https://anonhg.NetBSD.org/src/rev/f5e3d6bd2a51
branches: trunk
changeset: 747926:f5e3d6bd2a51
user: rmind <rmind%NetBSD.org@localhost>
date: Mon Oct 05 23:44:10 2009 +0000
description:
Add callback(9) man page. Reviewed and improved by <wiz>, thanks!
diffstat:
distrib/sets/lists/comp/mi | 20 +++++++-
share/man/man9/Makefile | 9 ++-
share/man/man9/callback.9 | 121 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 146 insertions(+), 4 deletions(-)
diffs (203 lines):
diff -r 54c7a6e7a864 -r f5e3d6bd2a51 distrib/sets/lists/comp/mi
--- a/distrib/sets/lists/comp/mi Mon Oct 05 23:39:27 2009 +0000
+++ b/distrib/sets/lists/comp/mi Mon Oct 05 23:44:10 2009 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1318 2009/10/05 14:52:36 njoly Exp $
+# $NetBSD: mi,v 1.1319 2009/10/05 23:44:10 rmind Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -8392,6 +8392,12 @@
./usr/share/man/cat9/cache_purge.0 comp-sys-catman .cat
./usr/share/man/cat9/cache_purgevfs.0 comp-sys-catman .cat
./usr/share/man/cat9/cache_revlookup.0 comp-sys-catman .cat
+./usr/share/man/cat9/callback.0 comp-sys-catman .cat
+./usr/share/man/cat9/callback_head_init.0 comp-sys-catman .cat
+./usr/share/man/cat9/callback_head_destroy.0 comp-sys-catman .cat
+./usr/share/man/cat9/callback_register.0 comp-sys-catman .cat
+./usr/share/man/cat9/callback_run_roundrobin.0 comp-sys-catman .cat
+./usr/share/man/cat9/callback_unregister.0 comp-sys-catman .cat
./usr/share/man/cat9/callout.0 comp-sys-catman .cat
./usr/share/man/cat9/callout_ack.0 comp-sys-catman .cat
./usr/share/man/cat9/callout_active.0 comp-obsolete obsolete
@@ -13824,6 +13830,12 @@
./usr/share/man/html9/cache_purge.html comp-sys-htmlman html
./usr/share/man/html9/cache_purgevfs.html comp-sys-htmlman html
./usr/share/man/html9/cache_revlookup.html comp-sys-htmlman html
+./usr/share/man/html9/callback.html comp-sys-htmlman html
+./usr/share/man/html9/callback_head_init.html comp-sys-htmlman html
+./usr/share/man/html9/callback_head_destroy.html comp-sys-htmlman html
+./usr/share/man/html9/callback_register.html comp-sys-htmlman html
+./usr/share/man/html9/callback_run_roundrobin.html comp-sys-htmlman html
+./usr/share/man/html9/callback_unregister.html comp-sys-htmlman html
./usr/share/man/html9/callout.html comp-sys-htmlman html
./usr/share/man/html9/callout_ack.html comp-sys-htmlman html
./usr/share/man/html9/callout_destroy.html comp-sys-htmlman html
@@ -19367,6 +19379,12 @@
./usr/share/man/man9/cache_purge.9 comp-sys-man .man
./usr/share/man/man9/cache_purgevfs.9 comp-sys-man .man
./usr/share/man/man9/cache_revlookup.9 comp-sys-man .man
+./usr/share/man/man9/callback.9 comp-sys-man .man
+./usr/share/man/man9/callback_head_init.9 comp-sys-man .man
+./usr/share/man/man9/callback_head_destroy.9 comp-sys-man .man
+./usr/share/man/man9/callback_register.9 comp-sys-man .man
+./usr/share/man/man9/callback_run_roundrobin.9 comp-sys-man .man
+./usr/share/man/man9/callback_unregister.9 comp-sys-man .man
./usr/share/man/man9/callout.9 comp-sys-man .man
./usr/share/man/man9/callout_ack.9 comp-sys-man .man
./usr/share/man/man9/callout_active.9 comp-obsolete obsolete
diff -r 54c7a6e7a864 -r f5e3d6bd2a51 share/man/man9/Makefile
--- a/share/man/man9/Makefile Mon Oct 05 23:39:27 2009 +0000
+++ b/share/man/man9/Makefile Mon Oct 05 23:44:10 2009 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.293 2009/10/02 18:50:13 elad Exp $
+# $NetBSD: Makefile,v 1.294 2009/10/05 23:44:10 rmind Exp $
# Makefile for section 9 (kernel function and variable) manual pages.
@@ -6,8 +6,8 @@
altq.9 arc4random.9 arp.9 audio.9 autoconf.9 \
bcdtobin.9 bcmp.9 bcopy.9 bluetooth.9 boothowto.9 \
buffercache.9 bufq.9 bus_dma.9 bus_space.9 byteorder.9 bzero.9 \
- callout.9 cardbus.9 cnmagic.9 condvar.9 config.9 cons.9 copy.9 \
- coredump_write.9 \
+ callback.9 callout.9 cardbus.9 cnmagic.9 condvar.9 config.9 \
+ cons.9 copy.9 coredump_write.9 \
cpu_configure.9 cpu_coredump.9 cpu_dumpconf.9 \
cpu_lwp_fork.9 \
cpu_idle.9 cpu_initclocks.9 cpu_need_resched.9 \
@@ -159,6 +159,9 @@
byteorder.9 le16dec.9 byteorder.9 le32dec.9 byteorder.9 le64dec.9 \
byteorder.9 be16enc.9 byteorder.9 be32enc.9 byteorder.9 be64enc.9 \
byteorder.9 le16enc.9 byteorder.9 le32enc.9 byteorder.9 le64enc.9
+MLINKS+=callback.9 callback_head_init.9 callback.9 callback_head_destroy.9 \
+ callback.9 callback_register.9 callback.9 callback_unregister.9 \
+ callback.9 callback_run_roundrobin.9
MLINKS+=callout.9 callout_init.9 callout.9 callout_destroy.9 \
callout.9 callout_reset.9 callout.9 callout_schedule.9 \
callout.9 callout_setfunc.9 callout.9 callout_stop.9 \
diff -r 54c7a6e7a864 -r f5e3d6bd2a51 share/man/man9/callback.9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/man/man9/callback.9 Mon Oct 05 23:44:10 2009 +0000
@@ -0,0 +1,121 @@
+.\" $NetBSD: callback.9,v 1.1 2009/10/05 23:44:10 rmind Exp $
+.\"
+.\" Copyright (c) 2009 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd October 6, 2009
+.Dt CALLBACK 9
+.Os
+.Sh NAME
+.Nm callback
+.Nd generic callback interface
+.Sh SYNOPSIS
+.In sys/callback.h
+.Ft void
+.Fn callback_head_init "struct callback_head *ch" "int ipl"
+.Ft void
+.Fn callback_head_destroy "struct callback_head *ch"
+.Ft void
+.Fn callback_register \
+"struct callback_head *ch" "struct callback_entry *ce" "void *obj" \
+"int (*fn)(struct callback_entry *, void *, void *)"
+.Ft void
+.Fn callback_unregister "struct callback_head *ch" "struct callback_entry *ce"
+.Ft int
+.Fn callback_run_roundrobin "struct callback_head *ch" "void *arg"
+.Sh DESCRIPTION
+The generic
+.Nm callback
+interface allows lower-level layer code to execute a registered function,
+or set of functions, from the higher-level layer.
+.Pp
+Registered functions must return one of these constants:
+.Bl -tag -width Dv
+.It Dv CALLBACK_CHAIN_CONTINUE
+Indicates that the function call was successful.
+The following functions in the chain will be called.
+.It Dv CALLBACK_CHAIN_ABORT
+Indicates a failure case in the function call.
+Any following functions in the chain will not be executed.
+.El
+.Sh FUNCTIONS
+The callback structure
+.Vt callback_head
+should be initialized and destroyed using the functions described below.
+This structure contains the list of callback entries and other internal data.
+.Pp
+The
+.Vt callback_entry
+structure is an entry, normally associated with the higher-level object.
+It contains the internal data of the callback interface.
+.Bl -tag -width compact
+.It Fn callback_head_init "ch" "ipl"
+Initialize the callback structure specified by
+.Fa ch .
+The highest IPL at which this callback can be used is specified by
+.Fa ipl .
+.It Fn callback_head_destroy "ch"
+Destroy the callback structure specified by
+.Fa ch .
+The caller must unregister all functions before destroying the callback structure.
+.It Fn callback_register "ch" "ce" "obj" "fn"
+Register the callback function in the callback structure specified by
+.Fa ch .
+.Fa ce
+should point to the entry structure of the callback object.
+The callback object itself is specified by
+.Fa obj .
+The function pointer is specified by
+.Fa fn .
+.It Fn callback_unregister "ch" "ce"
+Unregister the callback function from the structure specified by
+.Fa ch .
+The entry should be passed as
+.Fa ce .
+This function may block.
+.It Fn callback_run_roundrobin "ch" "arg"
+Executes all functions registered in the callback
+structure, specified by
+.Fa ch .
+The functions are executed in round-robin fashion.
+The entry should be passed as
+.Fa ce .
+The value of
+.Fa arg
+will be passed to the callback functions.
+.Sh CODE REFERENCES
+This section describes places within the
+.Nx
+source tree where actual code implementing the
+.Nm
+interface can be found.
+All pathnames are relative to
+.Pa /usr/src .
+.Pp
+The
+.Nm
+interface is implemented within the file
+.Pa sys/kern/subr_callback.c .
+.Sh SEE ALSO
+.Xr intro 9
Home |
Main Index |
Thread Index |
Old Index