From owner-man-jp@jp.FreeBSD.org Mon Sep 29 16:32:07 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id h8T7W7W53893;
	Mon, 29 Sep 2003 16:32:07 +0900 (JST)
	(envelope-from owner-man-jp@jp.FreeBSD.org)
Received: from mx02.mitsumi.co.jp (mx02.mitsumi.co.jp [202.33.112.205])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id h8T7W5J53887
	for <man-jp@jp.FreeBSD.org>; Mon, 29 Sep 2003 16:32:05 +0900 (JST)
	(envelope-from a_ikeuchi@mic.mitsumi.co.jp)
Received: from mvc01.mitsumi.co.jp ([192.168.1.254])
	by mx02.mitsumi.co.jp (8.11.6p2/8.11.6) with ESMTP id h8T7bTD10508
	for <man-jp@jp.FreeBSD.org>; Mon, 29 Sep 2003 16:37:29 +0900
Received: from mmx01.mitsumi.co.jp (localhost [127.0.0.1] (may be forged))
	by mvc01.mitsumi.co.jp (8.11.6/8.11.6) with ESMTP id h8T7UZu24469
	for <man-jp@jp.FreeBSD.org>; Mon, 29 Sep 2003 16:30:35 +0900
Received: from ml01.mic.mitsumi.co.jp (mic.mitsumi.co.jp [172.17.5.244] (may be forged))
	by mmx01.mitsumi.co.jp (8.9.3p2+3.2W/3.7W) with ESMTP id QAA15393
	for <man-jp@jp.FreeBSD.org>; Mon, 29 Sep 2003 16:31:50 +0900
Received: from mic.mitsumi.co.jp (a-ikeuchi.mic.mitsumi.co.jp [172.17.40.89])
	by ml01.mic.mitsumi.co.jp (8.10.2/8.10.2) with ESMTP id h8T7GU806064;
	Mon, 29 Sep 2003 16:16:35 +0900
Message-ID: <3F77E041.8070309@mic.mitsumi.co.jp>
From: Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030718
X-Accept-Language: ja, en-us, en
MIME-Version: 1.0
To: man-jp@jp.FreeBSD.org
References: <3F77DDB5.70803@mic.mitsumi.co.jp>
In-Reply-To: <3F77DDB5.70803@mic.mitsumi.co.jp>
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Reply-To: man-jp@jp.FreeBSD.org
Precedence: list
Date: Mon, 29 Sep 2003 16:33:21 +0900
X-Sequence: man-jp 4773
Subject: [man-jp 4773] Re: (man9) many new entries
Sender: owner-man-jp@jp.FreeBSD.org
X-Originator: a_ikeuchi@mic.mitsumi.co.jp
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+030902

$BCSFb$G$9!#(B

man9 $B$N?75,Lu$G$9!#%A%'%C%/$*4j$$$7$^$9!#(B

bus_activate_resource.9, bus_child_present.9,
bus_set_resource.9, byteorder.9, cdevsw_add.9,
cdevsw_remove.9, condvar.9, device_get_name.9,
device_get_parent.9, device_ids.9,
device_printf.9, device_set_driver.9, devsw.9,
groupmember.9, pseudofs.9, sema.9, sx.9,
taskqueue.9

$B0J>e!"(B18 $B%U%!%$%k$H(B Makefile $B$N99?7$G$9!#(B




diff -ur original/Makefile japanese/Makefile
--- original/Makefile	Tue Aug 26 15:27:37 2003
+++ japanese/Makefile	Mon Sep 22 22:02:26 2003
@@ -74,14 +74,21 @@
 	bios.9\
 	boot.9\
 	buf.9\
+	bus_activate_resource.9\
 	bus_alloc_resource.9\
+	bus_child_present.9\
 	bus_generic_attach.9\
 	bus_generic_detach.9\
 	bus_generic_print_child.9\
 	bus_generic_read_ivar.9\
 	bus_generic_shutdown.9\
 	bus_release_resource.9\
+	bus_set_resource.9\
+	byteorder.9\
 	cd.9\
+	cdevsw_add.9\
+	cdevsw_remove.9\
+	condvar.9\
 	copy.9\
 	devclass.9\
 	devclass_add_driver.9\
@@ -100,18 +107,25 @@
 	device_get_devclass.9\
 	device_get_driver.9\
 	device_get_ivars.9\
+	device_get_name.9\
+	device_get_parent.9\
 	device_get_softc.9\
 	device_get_state.9\
 	device_get_unit.9\
+	device_ids.9\
+	device_printf.9\
 	device_probe_and_attach.9\
 	device_quiet.9\
 	device_set_desc.9\
+	device_set_driver.9\
 	device_set_flags.9\
 	devstat.9\
+	devsw.9\
 	devtoname.9\
 	driver.9\
 	extattr.9\
 	fetch.9\
+	groupmember.9\
 	inittodr.9\
 	intro.9\
 	kernacc.9\
@@ -126,16 +140,20 @@
 	panic.9\
 	physio.9\
 	printf.9\
+	pseudofs.9\
 	psignal.9\
 	resettodr.9\
 	sbuf.9\
+	sema.9\
 	sleep.9\
 	spl.9\
 	store.9\
 	style.9\
 	suser.9\
+	sx.9\
 	sysctl_add_oid.9\
 	sysctl_ctx_init.9\
+	taskqueue.9\
 	time.9\
 	timeout.9\
 	tvtohz.9\
@@ -172,6 +190,7 @@
 MLINKS+=VOP_RDWR.9 VOP_READ.9
 MLINKS+=VOP_RDWR.9 VOP_WRITE.9
 MLINKS+=VOP_REMOVE.9 VOP_RMDIR.9
+MLINKS+=bus_activate_resource.9 bus_deactivate_resource.9
 MLINKS+=copy.9 copyin.9 copy.9 copyinstr.9 copy.9 copyout.9 copy.9 copystr.9
 MLINKS+=devstat.9 devicestat.9
 MLINKS+=devstat.9 devstat_add_entry.9
@@ -210,10 +229,13 @@
 MLINKS+=device_enable.9 device_disable.9
 MLINKS+=device_enable.9 device_is_enabled.9
 MLINKS+=device_get_ivars.9 device_set_ivars.9
+MLINKS+=device_get_name.9 device_get_nameunit.9
 MLINKS+=device_get_state.9 device_busy.9
 MLINKS+=device_get_state.9 device_unbusy.9
 MLINKS+=device_get_state.9 device_is_alive.9
 MLINKS+=device_get_state.9 device_is_attached.9
+MLINKS+=device_ids.9 major.9 device_ids.9 umajor.9
+MLINKS+=device_ids.9 minor.9 device_ids.9 uminor.9
 MLINKS+=device_quiet.9 device_verbose.9
 MLINKS+=device_quiet.9 device_is_quiet.9
 MLINKS+=device_set_desc.9 device_get_desc.9
@@ -224,9 +246,26 @@
 MLINKS+=BUS_READ_IVAR.9 BUS_WRITE_IVAR.9
 MLINKS+=bus_generic_read_ivar.9 bus_generic_write_ivar.9

-MLINKS+= lock.9 lockinit.9 lock.9 lockdestroy.9
-MLINKS+= lock.9 lockcount.9 lock.9 lockmgr.9
-MLINKS+= lock.9 lockstatus.9 lock.9 lockmgr_printinfo.9
+MLINKS+=byteorder.9 bswap16.9 byteorder.9 bswap32.9  byteorder.9 bswap64.9
+MLINKS+=byteorder.9 be16toh.9 byteorder.9 be32toh.9  byteorder.9 be64toh.9
+MLINKS+=byteorder.9 htobe16.9 byteorder.9 htobe32.9  byteorder.9 htobe64.9
+MLINKS+=byteorder.9 le16toh.9 byteorder.9 le32toh.9  byteorder.9 le64toh.9
+MLINKS+=byteorder.9 htole16.9 byteorder.9 htole32.9  byteorder.9 htole64.9
+MLINKS+=byteorder.9 be16enc.9 byteorder.9 be32enc.9  byteorder.9 be64enc.9
+MLINKS+=byteorder.9 be16dec.9 byteorder.9 be32dec.9  byteorder.9 be64dec.9
+MLINKS+=byteorder.9 le16enc.9 byteorder.9 le32enc.9  byteorder.9 le64enc.9
+MLINKS+=byteorder.9 le16dec.9 byteorder.9 le32dec.9  byteorder.9 le64dec.9
+
+MLINKS+=condvar.9 cv_init.9 condvar.9 cv_destroy.9
+MLINKS+=condvar.9 cv_wait.9 condvar.9 cv_wait_sig.9
+MLINKS+=condvar.9 cv_timedwait.9 condvar.9 cv_timedwait_sig.9
+MLINKS+=condvar.9 cv_signal.9 condvar.9 cv_broadcast.9
+MLINKS+=condvar.9 cv_waitq_remove.9 condvar.9 cv_waitq_empty.9
+MLINKS+=condvar.9 cv_wmesg.9
+
+MLINKS+=lock.9 lockinit.9 lock.9 lockdestroy.9
+MLINKS+=lock.9 lockcount.9 lock.9 lockmgr.9
+MLINKS+=lock.9 lockstatus.9 lock.9 lockmgr_printinfo.9

 MLINKS+=microtime.9 getmicrotime.9
 MLINKS+=microtime.9 nanotime.9
@@ -235,11 +274,16 @@
 MLINKS+=microuptime.9 nanouptime.9
 MLINKS+=microuptime.9 getnanouptime.9

-MLINKS+= printf.9 uprintf.9
-MLINKS+= printf.9 tprintf.9
+MLINKS+=printf.9 uprintf.9
+MLINKS+=printf.9 tprintf.9

 MLINKS+=suser.9 suser_cred.9

+MLINKS+=sx.9 sx_init.9 sx.9 sx_destroy.9 sx.9 sx_slock.9 sx.9 sx_xlock.9
+MLINKS+=sx.9 sx_try_slock.9 sx.9 sx_try_xlock.9 sx.9 sx_sunlock.9
+MLINKS+=sx.9 sx_xunlock.9 sx.9 sx_try_upgrade.9 sx.9 sx_downgrade.9
+MLINKS+=sx.9 sx_assert.9 sx.9 SX_SYSINIT.9
+
 MLINKS+=sysctl_add_oid.9 sysctl_remove_oid.9
 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_OID.9
 MLINKS+=sysctl_add_oid.9 SYSCTL_ADD_NODE.9
@@ -270,6 +314,19 @@
 MLINKS+=sbuf.9 sbuf_delete.9
 MLINKS+=sbuf.9 sbuf_trim.9
 MLINKS+=sbuf.9 sbuf_vprintf.9
+
+MLINKS+=sema.9 sema_init.9 sema.9 sema_destroy.9 sema.9 sema_post.9
+MLINKS+=sema.9 sema_wait.9 sema.9 sema_timedwait.9
+MLINKS+=sema.9 sema_trywait.9 sema.9 sema_value.9
+
+MLINKS+=taskqueue.9 TASKQUEUE_DECLARE.9
+MLINKS+=taskqueue.9 TASKQUEUE_DEFINE.9
+MLINKS+=taskqueue.9 TASK_INIT.9
+MLINKS+=taskqueue.9 taskqueue_create.9
+MLINKS+=taskqueue.9 taskqueue_enqueue.9
+MLINKS+=taskqueue.9 taskqueue_find.9
+MLINKS+=taskqueue.9 taskqueue_free.9
+MLINKS+=taskqueue.9 taskqueue_run.9

 MLINKS+=zone.9 uma.9
 MLINKS+=zone.9 uma_zalloc.9
diff -ur original/bus_activate_resource.9 japanese/bus_activate_resource.9
--- original/bus_activate_resource.9	Tue Sep  9 09:50:58 2003
+++ japanese/bus_activate_resource.9	Tue Sep  9 10:05:09 2003
@@ -31,10 +31,10 @@
 .Dd March 28, 2003
 .Dt BUS_ACTIVATE_RESOURCE 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm bus_activate_resource , bus_deactivate_resource
-.Nd activate or deactivate a resource
-.Sh SYNOPSIS
+.Nd $B%j%=!<%9$N3h@-2=$^$?$OHs3h@-2=(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/bus.h
 .Pp
@@ -49,45 +49,46 @@
 .Fo bus_deactivate_resource
 .Fa "device_t dev" "int type" "int rid" "struct resource *r"
 .Fc
-.Sh DESCRIPTION
-These functions activate or deactivate a previously allocated resource.
-In general, resources must be activated before they can be accessed by
-the driver so that the bus driver can map the resource into the
-devices space.
+.Sh $B2r@b(B
+$B$3$l$i$N4X?t$O!"$=$NA0$K3d$jEv$F$i$l$?%j%=!<%9$r3h@-2=$^$?$OHs3h@-2=$7$^$9!#(B
+$B0lHLE*$K!"%P%9%I%i%$%P$,$=$N%j%=!<%9$r%G%P%$%96u4V$K%^%C%W$G$-$k$h$&$K(B
+$B$9$k$?$a!"%j%=!<%9$O%I%i%$%P$K$h$C$F%"%/%;%9$5$l$kA0$K3h@-2=$5$l$J$1$l$P(B
+$B$J$j$^$;$s!#(B
 .Pp
-The arguments are as follows:
+$B0z?t$O0J2<$NDL$j$G$9!#(B
 .Bl -tag -width indent
 .It Fa dev
-The device that requests ownership of the resource.
-Before allocation, the resource is owned by the parent bus.
+$B$=$N%j%=!<%9$N=jM-$rMW5a$9$k%G%P%$%9$G$9!#(B
+$B3d$jEv$F$NA0$K$O!"$=$N%j%=!<%9$O?F$N%P%9$K$h$C$F=jM-$5$l$F$$$^$9!#(B
 .It Fa type
-The type of resource you want to allocate.
-It is one of:
+$B3d$jEv$F$?$$%j%=!<%9$N7?$G$9!#(B
+$B$3$l$O2<5-$NCf$N(B 1 $B$D$G$9!#(B
 .Pp
 .Bl -tag -width ".Dv SYS_RES_MEMORY" -compact
 .It Dv SYS_RES_IRQ
-for IRQs
+IRQ $B$N%j%=!<%9$G$9!#(B
 .It Dv SYS_RES_DRQ
-for ISA DMA lines
+ISA DMA $B%i%$%s$N%j%=!<%9$G$9!#(B
 .It Dv SYS_RES_IOPORT
-for I/O ports
+I/O $B%]!<%H$N%j%=!<%9$G$9!#(B
 .It Dv SYS_RES_MEMORY
-for I/O memory
+I/O $B%a%b%j$N%j%=!<%9$G$9!#(B
 .El
 .It Fa rid
-A pointer to a bus specific handle that identifies the resource being allocated.
+$B3d$jEv$F$i$l$F$$$k%j%=!<%9$r<1JL$9$k%P%9FCM-$N%O%s%I%k$X$N%]%$%s%?$G$9!#(B
 .It Fa r
-A pointer to the
+.Xr bus_alloc_resource 9
+$B$K$h$C$FJV$5$l$k(B
 .Vt "struct resource"
-returned by
-.Xr bus_alloc_resource 9 .
+$B$X$N%]%$%s%?$G$9!#(B
 .El
-.Sh RETURN VALUES
-Zero is returned on success, otherwise an error is returned.
-.Sh SEE ALSO
+.Sh $BLa$jCM(B
+$B@.8y;~$K$O(B 0 $B$,JV$5$l!"$=$&$G$J$1$l$P%(%i!<$,JV$5$l$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr bus_alloc_resource 9 ,
 .Xr device 9 ,
 .Xr driver 9
-.Sh AUTHORS
-This manual page was written by
-.An Warner Losh Aq imp@FreeBSD.org .
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Warner Losh Aq imp@FreeBSD.org
+$B$,=q$-$^$7$?!#(B
diff -ur original/bus_child_present.9 japanese/bus_child_present.9
--- original/bus_child_present.9	Tue Sep  9 09:50:58 2003
+++ japanese/bus_child_present.9	Fri Sep 19 11:46:13 2003
@@ -31,10 +31,10 @@
 .Dd March 27, 2003
 .Dt BUS_CHILD_PRESENT 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm bus_child_present
-.Nd "ask the bus driver to see if this device is still really present"
-.Sh SYNOPSIS
+.Nd $B%P%9%I%i%$%P$X$N%G%P%$%9$,<B:]$KB8:_$7$F$$$k$+$I$&$+$N3NG'$NLd$$9g$o$;(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/bus.h
 .Pp
@@ -43,34 +43,33 @@
 .In machine/resource.h
 .Ft int
 .Fn bus_child_present "device_t dev"
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn bus_child_present
-function requests that the parent device driver of
+$B4X?t$O!"?F%G%P%$%9$N%I%i%$%P$N(B
 .Fa dev
-check to see if the
-hardware represented by
+$B$,!"(B
 .Fa dev
-is still physically accessible at this time.
-While the notion of accessible varies from bus to bus, generally
-hardware that is not acceessible cannot be accessed via the
+$B$G5-=R$5$l$k%O!<%I%&%'%"$,$=$N;~E@$G$$$^$@$KJ*M}E*$K%"%/%;%92DG=$G$"$k$+(B
+$B$I$&$+$r%A%'%C%/$9$k$3$H$rMW5a$7$^$9!#(B
+$BMxMQ2DG=$N9M$($,%P%9$+$i%P%9$XJQ2=$9$k4V!"MxMQ$G$-$J$$%O!<%I%&%'%"$O!"(B
+$B$=$&$G$J$$>l9g$K%G%P%$%9$X%"%/%;%9$9$k$?$a$K;HMQ$5$l$k(B
 .Fn bus_space*
-methods that would otherwise be used to access the device.
+$B%a%=%C%I$r2p$7$FIaDL$O%"%/%;%9$9$k$3$H$,$G$-$^$;$s!#(B
 .Pp
-This does not ask the question
-.Dq does this device have children?
-which can better be answered by
-.Xr device_get_children 9 .
-.Sh RETURN VALUES
-A zero return value indicates that the device is not present in the
-system.
-A non-zero return value indicates that the device is present in the
-system, or that the state of the device cannot be determined.
-.Sh EXAMPLES
-This is some example code.
-It only calls stop when the
+$B$3$l$O(B
+.Dq $B$3$N%G%P%$%9$O;R%G%P%$%9$r;}$C$F$$$^$9$+(B?
+$B$H$$$&<ALd$r?R$M$^$;$s!#(B
+$B$3$N<ALd$O(B
+.Xr device_get_children 9
+$B$K$h$C$F$h$jNI$/2sEz$5$l$k$3$H$,2DG=$G$9!#(B
+.Sh $BLa$jCM(B
+0 $B$NLa$jCM$O%7%9%F%`Fb$K$=$N%G%P%$%9$,B8:_$7$J$$$3$H$r<($7$^$9!#(B
+0 $B$G$O$J$$La$jCM$O%7%9%F%`Fb$K$=$N%G%P%$%9$,B8:_$9$k$3$H!"$^$?$O(B
+$B$=$N%G%P%$%9$N>uBV$,7hDj$G$-$J$$$3$H$r<($7$^$9!#(B
+.Sh $B;HMQNc(B
+$B$3$l$O$"$k%5%s%W%k%3!<%I$G$9!#(B
 .Xr dc 4
-device is actually present.
+$B%G%P%$%9$,<B:]$KB8:_$9$k;~$K!"(Bstop $B$r8F$S=P$9$@$1$G$9!#(B
 .Bd -literal -offset indent
 device_t dev;
 dc_softc *sc;
@@ -79,9 +78,10 @@
 if (bus_child_present(dev))
 	dc_stop(sc);
 .Ed
-.Sh SEE ALSO
+.Sh $B4XO"9`L\(B
 .Xr device 9 ,
 .Xr driver 9
-.Sh AUTHORS
-This man page was written by
-.An Warner Losh Aq imp@FreeBSD.org .
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Warner Losh Aq imp@FreeBSD.org
+$B$,=q$-$^$7$?!#(B
diff -ur original/bus_set_resource.9 japanese/bus_set_resource.9
--- original/bus_set_resource.9	Tue Sep  9 09:50:58 2003
+++ japanese/bus_set_resource.9	Thu Sep 11 12:15:26 2003
@@ -31,10 +31,10 @@
 .Dd March 29, 2003
 .Dt BUS_SET_RESOURCE 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm bus_set_resource
-.Nd "associate a definite resource with a given resource ID"
-.Sh SYNOPSIS
+.Nd "$B3NDj$7$?%j%=!<%9$HM?$($i$l$?%j%=!<%9(B ID $B$H$N4XO"IU$1(B"
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/bus.h
 .Pp
@@ -45,51 +45,50 @@
 .Fo bus_set_resource
 .Fa "device_t dev" "int type" "int rid" "u_long start" "u_long count"
 .Fc
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn bus_set_resource
-function
-sets the start address of the resource
+$B4X?t$O%j%=!<%9$N3+;O%"%I%l%9!"(B
 .Fa type , rid
-pair to be
+$B$N%Z%"$H$J$k$Y$-(B
 .Fa count
-long.
-Typically, client drivers do not use this interface.
-Bus drivers, however, often use it to set up the resources a client
-driver uses.
+$BD9$5$r@_Dj$7$^$9!#(B
+$BDL>o$O!"%/%i%$%"%s%H%I%i%$%P$O$3$N%$%s%?%U%'!<%9$r;HMQ$7$^$;$s!#(B
+$B$7$+$7$J$,$i!"%P%9%I%i%$%P$O%/%i%$%"%s%H%I%i%$%P$,;HMQ$9$k%j%=!<%9$r(B
+$B@_Dj$9$k$?$a$K$7$P$7$P;HMQ$7$^$9!#(B
 .Pp
-The arguments are as follows:
+$B0z?t$O0J2<$NDL$j$G$9!#(B
 .Bl -tag -width indent
 .It Fa dev
-The device to set the resource on.
+$B%j%=!<%9$r@_Dj$9$k%G%P%$%9$G$9!#(B
 .It Fa type
-The type of resource you want to allocate.
-It is one of:
+$B3d$jEv$F$?$$%j%=!<%9$N7?$G$9!#(B
+$B$3$l$O2<5-$NCf$N(B 1 $B$D$G$9!#(B
 .Pp
 .Bl -tag -width ".Dv SYS_RES_MEMORY" -compact
 .It Dv SYS_RES_IRQ
-for IRQs
+IRQ $B$N%j%=!<%9$G$9!#(B
 .It Dv SYS_RES_DRQ
-for ISA DMA lines
+ISA DMA $B%i%$%s$N%j%=!<%9$G$9!#(B
 .It Dv SYS_RES_IOPORT
-for I/O ports
+I/O $B%]!<%H$N%j%=!<%9$G$9!#(B
 .It Dv SYS_RES_MEMORY
-for I/O memory
+I/O $B%a%b%j$N%j%=!<%9$G$9!#(B
 .El
 .It Fa rid
-A pointer to a bus specific handle that identifies the resource being allocated.
+$B3d$jEv$F$i$l$F$$$k%j%=!<%9$r<1JL$9$k%P%9FCM-$N%O%s%I%k$X$N%]%$%s%?$G$9!#(B
 .It Fa start
-The start address of this resource.
+$B$3$N%j%=!<%9$N3+;O%"%I%l%9$G$9!#(B
 .It Fa count
-The length of the resource.
+$B$3$N%j%=!<%9$ND9$5$G$9!#(B
 .El
-.Sh RETURN VALUES
-Zero is returned on success, otherwise an error is returned.
-.Sh SEE ALSO
+.Sh $BLa$jCM(B
+$B@.8y;~$K$O(B 0 $B$,JV$5$l!"$=$&$G$J$1$l$P%(%i!<$,JV$5$l$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr bus_alloc_resource 9 ,
 .Xr bus_get_resource 9 ,
 .Xr device 9 ,
 .Xr driver 9
-.Sh AUTHORS
-This man page was written by
-.An Warner Losh Aq imp@FreeBSD.org .
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Warner Losh Aq imp@FreeBSD.org
+$B$,=q$-$^$7$?!#(B
diff -ur original/byteorder.9 japanese/byteorder.9
--- original/byteorder.9	Thu Sep  4 21:57:15 2003
+++ japanese/byteorder.9	Fri Sep  5 13:10:49 2003
@@ -27,14 +27,14 @@
 .Dd April 29, 2002
 .Dt BYTEORDER 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm bswap16 , bswap32 , bswap64 ,
 .Nm be16toh , be32toh , be64toh , htobe16 , htobe32 , htobe64 ,
 .Nm htole16 , htole32 , htole64 , le16toh , le32toh , le64toh ,
 .Nm be16enc , be16dec , be32enc , be32dec , be64enc , be64dec ,
 .Nm le16enc , le16dec , le32enc , le32dec , le64enc , le64dec
-.Nd byte order operations
-.Sh SYNOPSIS
+.Nd $B%P%$%H%*!<%@$NA`:n(B
+.Sh $B=q<0(B
 .In sys/endian.h
 .Ft uint16_t
 .Fn bswap16 "uint16_t int16"
@@ -90,53 +90,49 @@
 .Fn le32enc "void *" uint32_t
 .Ft void
 .Fn le64enc "void *" uint64_t
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn bswap16 ,
-.Fn bswap32 ,
-and
+.Fn bswap32
+$B$*$h$S(B
 .Fn bswap64
-functions return a byte order swapped integer.
-On big endian systems, the number is converted to little endian byte order.
-On little endian systems, the number is converted to big endian byte order.
+$B4X?t$O%P%$%H%*!<%@$,8r49$5$l$?@0?t$rJV$7$^$9!#(B
+$B%S%C%0%(%s%G%#%"%s$N%7%9%F%`>e$G$O!"(B
+$B$=$N?tCM$O%j%H%k%(%s%G%#%"%s$N%P%$%H%*!<%@$KJQ49$5$l$^$9!#(B
+$B%j%H%k%(%s%G%#%"%s$N%7%9%F%`>e$G$O!"(B
+$B$=$N?tCM$O%S%C%0%(%s%G%#%"%s$N%P%$%H%*!<%@$KJQ49$5$l$^$9!#(B
 .Pp
-The
 .Fn be16toh ,
-.Fn be32toh ,
-and
+.Fn be32toh
+$B$*$h$S(B
 .Fn be64toh
-functions return a big endian byte ordered integer
-converted to the system's native byte order.
-The return value will be the same as the argument on big endian systems.
+$B4X?t$O%S%C%0%(%s%G%#%"%s$N%P%$%H%*!<%@$N@0?t$r%7%9%F%`$N%M%$%F%#%V$J(B
+$B%P%$%H%*!<%@$KJQ49$7$FJV$7$^$9!#(B
+$B%S%C%0%(%s%G%#%"%s$N%7%9%F%`>e$G$O!"La$jCM$O0z?t$HF1$8$K$J$j$^$9!#(B
 .Pp
-The
 .Fn le16toh ,
-.Fn le32toh ,
-and
+.Fn le32toh
+$B$*$h$S(B
 .Fn le64toh
-functions return a little endian byte ordered integer
-converted to the system's native byte order.
-The return value will be the same as the argument on little endian systems.
+$B4X?t$O%j%H%k%(%s%G%#%"%s$N%P%$%H%*!<%@$N@0?t$r%7%9%F%`$N%M%$%F%#%V$J(B
+$B%P%$%H%*!<%@$KJQ49$7$FJV$7$^$9!#(B
+$B%j%H%k%(%s%G%#%"%s$N%7%9%F%`>e$G$O!"La$jCM$O0z?t$HF1$8$K$J$j$^$9!#(B
 .Pp
-The
 .Fn htobe16 ,
-.Fn htobe32 ,
-and
+.Fn htobe32
+$B$*$h$S(B
 .Fn htobe64
-functions return a integer in the system's native
-byte order converted to big endian byte order.
-The return value will be the same as the argument on big endian systems.
+$B4X?t$O%7%9%F%`$N%M%$%F%#%V$J%P%$%H%*!<%@$N@0?t$r%S%C%0%(%s%G%#%"%s$N(B
+$B%P%$%H%*!<%@$KJQ49$7$FJV$7$^$9!#(B
+$B%S%C%0%(%s%G%#%"%s$N%7%9%F%`>e$G$O!"La$jCM$O0z?t$HF1$8$K$J$j$^$9!#(B
 .Pp
-The
 .Fn htole16 ,
-.Fn htole32 ,
-and
+.Fn htole32
+$B$*$h$S(B
 .Fn htole64
-functions return a integer in the system's native
-byte order converted to little endian byte order.
-The return value will be the same as the argument on little endian systems.
+$B4X?t$O%7%9%F%`$N%M%$%F%#%V$J%P%$%H%*!<%@$N@0?t$r%j%H%k%(%s%G%#%"%s$N(B
+$B%P%$%H%*!<%@$KJQ49$7$FJV$7$^$9!#(B
+$B%j%H%k%(%s%G%#%"%s$N%7%9%F%`>e$G$O!"La$jCM$O0z?t$HF1$8$K$J$j$^$9!#(B
 .Pp
-The
 .Fn be16enc ,
 .Fn be16dec ,
 .Fn be32enc ,
@@ -148,22 +144,23 @@
 .Fn le32enc ,
 .Fn le32dec ,
 .Fn le64enc ,
-and
+$B$*$h$S(B
 .Fn le64dec
-functions encode and decode integers to/from byte strings on any alignment
-in big/little endian format.
-.Sh SEE ALSO
+$B4X?t$O%S%C%0(B/$B%j%H%k%(%s%G%#%"%s$N$"$i$f$k%"%i%$%a%s%H$N!"(B
+$B@0?t$+$i%P%$%H%9%H%j%s%0$X%(%s%3!<%I$*$h$S(B
+$B%P%$%H%3!<%I$+$i@0?t$X%G%3!<%I$r9T$$$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr byteorder 3
-.Sh HISTORY
-The
+.Sh $BNr;K(B
 .Fn hto*
-and
-.Fn toh*
-functions first appeared in
-.Fx 5.0 ,
-and were originally developed by the
+$B$*$h$S(B
+.Fn *toh
+$B4X?t$O(B
+.Fx 5.0
+$B$G$O$8$a$FEP>l$7!"85!9$O(B
 .Nx
-project.
+$B%W%m%8%'%/%H$K$h$C$F3+H/$5$l$F$$$^$7$?!#(B
 .Pp
-The encode/decode functions first appeared in
-.Fx 5.1 .
+$B%(%s%3!<%I(B/$B%G%3!<%I4X?t$O(B
+.Fx 5.1
+$B$G$O$8$a$FEP>l$7$^$7$?!#(B
diff -ur original/cdevsw_add.9 japanese/cdevsw_add.9
--- original/cdevsw_add.9	Mon Sep  8 14:38:58 2003
+++ japanese/cdevsw_add.9	Mon Sep  8 14:44:29 2003
@@ -29,37 +29,37 @@
 .Dd July 9, 2001
 .Dt CDEVSW_ADD 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm cdevsw_add
-.Nd adds a
+.Nd
 .Vt cdevsw
-entry
-.Sh SYNOPSIS
+$B%(%s%H%j$NDI2C(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/conf.h
 .Ft int
 .Fn cdevsw_add "struct cdevsw *newentry"
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn cdevsw_add
-function adds
+$B4X?t$O!"$=$N%a%8%c!<HV9f$,(B 0 $B0J>e$G$+$D(B
+.Dv NUMCDEVSW
+$B$h$j>.$5$$>l9g$K!"(B
 .Fa newentry
-to the
+$B%(%s%H%j$r(B
 .Va cdevsw
-table if its major number is greater than or equal to zero,
-and is less than
-.Dv NUMCDEVSW .
+$B%F!<%V%k$KDI2C$7$^$9!#(B
 .Pp
-Its argument is:
+$B0z?t$O0J2<$NDL$j$G$9!#(B
 .Bl -tag -width ".Fa newentry"
 .It Fa newentry
-The device to add to the table.
+$B%F!<%V%k$KDI2C$5$l$k$Y$-%G%P%$%9$G$9!#(B
 .El
-.Sh RETURN VALUES
-A value of 0 is returned on success; otherwise,
+.Sh $BLa$jCM(B
+$B@.8y;~$K$O(B 0 $B$NCM$,JV$5$l!"$=$&$G$J$$>l9g$K$O(B
+$B%a%8%c!<HV9f$,M-8z$JHO0O$K$O$J$$$3$H$r<($9(B
 .Er EINVAL
-is returned
-indicating that the major number is not in the valid range.
-.Sh AUTHORS
-This man page was written by
-.An Chad David Aq davidc@acns.ab.ca .
+$B$,JV$5$l$^$9!#(B
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Chad David Aq davidc@acns.ab.ca
+$B$,=q$-$^$7$?!#(B
diff -ur original/cdevsw_remove.9 japanese/cdevsw_remove.9
--- original/cdevsw_remove.9	Mon Sep  8 14:38:58 2003
+++ japanese/cdevsw_remove.9	Mon Sep  8 14:48:39 2003
@@ -29,37 +29,37 @@
 .Dd July 9, 2001
 .Dt CDEVSW_REMOVE 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm cdevsw_remove
-.Nd removes a
+.Nd
 .Vt cdevsw
-entry
-.Sh SYNOPSIS
+$B%(%s%H%j$N:o=|(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/conf.h
 .Ft int
 .Fn cdevsw_remove "struct cdevsw *oldentry"
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn cdevsw_remove
-function removes
+$B4X?t$O!"$=$N%a%8%c!<HV9f$,(B 0 $B0J>e$G$+$D(B
+.Dv NUMCDEVSW
+$B$h$j>.$5$$>l9g$K!"(B
 .Fa oldentry
-from the
+$B%(%s%H%j$r(B
 .Va cdevsw
-table if its major number is greater than or equal to zero,
-and is less than
-.Dv NUMCDEVSW .
+$B%F!<%V%k$+$i:o=|$7$^$9!#(B
 .Pp
-Its argument is:
+$B0z?t$O0J2<$NDL$j$G$9!#(B
 .Bl -tag -width ".Fa oldentry"
 .It Fa oldentry
-The device to remove from the table.
+$B%F!<%V%k$+$i:o=|$5$l$k$Y$-%G%P%$%9$G$9!#(B
 .El
-.Sh RETURN VALUES
-A value of 0 is returned on success; otherwise,
+.Sh $BLa$jCM(B
+$B@.8y;~$K$O(B 0 $B$NCM$,JV$5$l!"$=$&$G$J$$>l9g$K$O(B
+$B%a%8%c!<HV9f$,M-8z$JHO0O$K$O$J$$$3$H$r<($9(B
 .Er EINVAL
-is returned
-indicating that the major number is not in the valid range.
-.Sh AUTHORS
-This man page was written by
-.An Chad David Aq davidc@acns.ab.ca .
+$B$,JV$5$l$^$9!#(B
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Chad David Aq davidc@acns.ab.ca
+$B$,=q$-$^$7$?!#(B
diff -ur original/condvar.9 japanese/condvar.9
--- original/condvar.9	Thu Sep  4 11:20:38 2003
+++ japanese/condvar.9	Thu Sep  4 16:22:59 2003
@@ -29,7 +29,7 @@
 .Dd December 11, 2000
 .Dt CONDVAR 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm condvar ,
 .Nm cv_init ,
 .Nm cv_destroy ,
@@ -42,8 +42,8 @@
 .Nm cv_waitq_remove ,
 .Nm cv_waitq_empty ,
 .Nm cv_wmesg
-.Nd kernel condition variable
-.Sh SYNOPSIS
+.Nd $B%+!<%M%k>uBVJQ?t(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/proc.h
 .In sys/condvar.h
@@ -69,131 +69,141 @@
 .Fn cv_waitq_empty "struct cv *cvp"
 .Ft const char *
 .Fn cv_wmesg "struct cv *cvp"
-.Sh DESCRIPTION
-Condition variables are used in conjunction with mutexes to wait for conditions
-to occur.
-Condition variables are created with
-.Fn cv_init ,
-where
+.Sh $B2r@b(B
+$B>uBVJQ?t$O(B mutex $B$HO"7H$7$F>uBV$NH/@8$rBT$D$?$a$K;HMQ$5$l$^$9!#(B
+$B>uBVJQ?t$O(B
+.Fn cv_init
+$B$r;HMQ$7$F:n@.$5$l$^$9!#(B
+$B$3$3$G(B
 .Fa cvp
-is a pointer to space for a
-.Vt struct cv ,
-and
+$B$O(B
+.Vt struct cv
+$B$N$?$a$NNN0h$X$N%]%$%s%?!"(B
 .Fa desc
-is a pointer to a null-terminated character string that describes the condition
-variable.
-Condition variables are destroyed with
-.Fn cv_destroy .
-Threads wait on condition variables by calling
+$B$O$=$N>uBVJQ?t$r@bL@$9$k(B null $B$G=*C<$5$l$?J8;zNs$X$N%]%$%s%?$G$9!#(B
+$B>uBVJQ?t$O(B
+.Fn cv_destroy
+$B$r;HMQ$7$FGK2u$5$l$^$9!#(B
+$B%9%l%C%I$O(B
 .Fn cv_wait ,
 .Fn cv_wait_sig ,
-.Fn cv_timedwait ,
-or
-.Fn cv_timedwait_sig .
-Threads unblock waiters by calling
+.Fn cv_timedwait
+$B$^$?$O(B
+.Fn cv_timedwait_sig
+$B$N8F$S=P$7$K$h$C$F!">uBVJQ?t>e$G%&%'%$%H$7$^$9!#(B
+$B%9%l%C%I$O!"(B
+1 $B$D$N%&%'%$%H$N%V%m%C%/$r2r=|$9$k$?$a$K$O(B
 .Fn cv_signal
-to unblock one waiter, or
+$B$N!"$^$?$OA4$F$N%&%'%$%H$N%V%m%C%/$r2r=|$9$k$K$O(B
 .Fn cv_broadcast
-to unblock all waiters.
+$B$N8F$S=P$7$K$h$C$F%&%'%$%H$N%V%m%C%/2r=|$r9T$$$^$9!#(B
 .Fn cv_waitq_remove
-removes a waiting thread from a condition variable wait queue, if it is on one.
+$B$O>uBVJQ?t$N%&%'%$%H%-%e!<$+$i%&%'%$%H$7$F$$$k%9%l%C%I$r<h$j=|$-$^$9!#(B
 .Fn cv_waitq_empty
-reports whether there are any waiters on
-.Fa cvp .
+$B$O(B
+.Fa cvp
+$B>e$K%&%'%$%H$7$F$$$k$b$N$,B8:_$7$F$$$k$+$I$&$+$rJs9p$7$^$9!#(B
 .Fn cv_wmesg
-returns the description string of
-.Fa cvp ,
-as set by the initial call to
-.Fn cv_init .
+$B$O(B
+.Fn cv_init
+$B$X$N:G=i$N8F$S=P$7$K$h$C$F@_Dj$5$l$?(B
+.Fa cvp
+$B$N@bL@J8;zNs$rJV$7$^$9!#(B
 .Pp
-A thread must hold
-.Fa mp
-before calling
+$B%9%l%C%I$O(B
 .Fn cv_wait ,
 .Fn cv_wait_sig ,
-.Fn cv_timedwait ,
-or
-.Fn cv_timedwait_sig .
-When a thread waits on a condition,
+.Fn cv_timedwait
+$B$^$?$O(B
+.Fn cv_timedwait_sig
+$B$N8F$S=P$7$NA0$K(B
 .Fa mp
-is atomically released before the thread is blocked, then atomically reacquired
-before the function call returns.
-All waiters must pass the same
+$B$rJ];}$7$J$1$l$P$J$7$^$;$s!#(B
+$B%9%l%C%I$,$"$k>uBV$G%&%'%$%H$9$k$H$-$K!"(B
 .Fa mp
-in conjunction with
-.Fa cvp .
-A thread must hold
+$B$O$=$N%9%l%C%I$,%V%m%C%/$5$l$kA0$KIT2DJ,$K3+J|$5$l!"$=$l$+$i(B
+$B$=$N4X?t8F$S=P$7$,La$kA0$KIT2DJ,$K3MF@$5$l$^$9!#(B
+$BA4$F$N%&%'%$%H$9$k$b$N$O(B
+.Fa cvp
+$B$HO"7H$7$F$$$kF10l$N(B
 .Fa mp
-while calling
+$B$rEO$5$J$1$l$P$J$j$^$;$s!#(B
+$B%9%l%C%I$O(B
 .Fn cv_signal
-or
-.Fn cv_broadcast ,
-even though it isn't passed as an argument.
+$B$^$?$O(B
+.Fn cv_broadcast
+$B$r8F$S=P$7$F$$$k4V$O!"$?$H$(0z?t$H$7$FEO$7$F$$$J$$$H$7$F$b!"(B
+.Fa mp
+$B$rJ];}$7$J$1$l$P$J$j$^$;$s!#(B
 .Pp
-When
 .Fn cv_wait ,
 .Fn cv_wait_sig ,
-.Fn cv_timedwait ,
-and
+.Fn cv_timedwait
+$B$*$h$S(B
 .Fn cv_timedwait_sig
-unblock, their calling threads are made runnable.
+$B$N%V%m%C%/$,2r=|$5$l$?;~$K!"$3$l$i$N8F$S=P$7%9%l%C%I$,<B9T2DG=$K$5$l$^$9!#(B
 .Fn cv_timedwait
-and
+$B$*$h$S(B
 .Fn cv_timedwait_sig
-wait for at most
+$B$O%V%m%C%/$,2r=|$5$l(B
+.Er EWOULDBLOCK
+$B$rJV$9A0$K$[$\(B
 .Fa timo
 /
 .Dv HZ
-seconds before being unblocked and returning
-.Er EWOULDBLOCK ;
-otherwise, they return 0.
+$BIC4V%&%'%$%H$7$^$9!#(B
+$B$=$&$G$J$1$l$P!"(B0 $B$rJV$7$^$9!#(B
 .Fn cv_wait_sig
-and
+$B$*$h$S(B
 .Fn cv_timedwait_sig
-return prematurely with a value of
+$B$O!"%7%0%J%k$,$H$i$($i$l$?>l9g$K$OB(:B$K(B
 .Er EINTR
-or
+$B$^$?$O(B
 .Er ERESTART
-if a signal is caught, or 0 if signaled via
+$B$NCM$GLa$j$^$9!#(B
+$B$^$?$O!"(B
 .Fn cv_signal
-or
-.Fn cv_broadcast .
-.Sh RETURN VALUES
-If successful,
+$B$^$?$O(B
+.Fn cv_broadcast
+$B$r2p$7$F%7%0%J%k$r$H$i$($?>l9g$K$O(B 0 $B$NCM$GLa$j$^$9!#(B
+.Sh $BLa$jCM(B
+$B@.8y$N>l9g$K$O!"(B
 .Fn cv_wait_sig ,
-.Fn cv_timedwait ,
-and
+.Fn cv_timedwait
+$B$*$h$S(B
 .Fn cv_timedwait_sig
-return 0.
-Otherwise, a non-zero error code is returned.
+$B$O(B 0 $B$rJV$7$^$9!#(B
+$B$=$&$G$J$$>l9g$K$O!"(B0 $B$G$O$J$$%(%i!<%3!<%I$,JV$5$l$^$9!#(B
 .Pp
 .Fn cv_waitq_empty
-returns non-zero if there are no threads on the wait queue; 0 otherwise.
+$B$O!"%&%'%$%H%-%e!<>e$K%9%l%C%I$,B8:_$7$J$$>l9g$K$O(B
+$B$O(B 0 $B$G$O$J$$CM$r!"$=$&$G$J$$>l9g$K$O(B 0 $B$r!"JV$7$^$9!#(B
 .Pp
 .Fn cv_wmesg
-returns the description string that was passed to
-.Fn cv_init .
-.Sh ERRORS
+$B$O(B
+.Fn cv_init
+$B$KEO$5$l$?@bL@J8;zNs$rJV$7$^$9!#(B
+.Sh $B%(%i!<(B
 .Fn cv_wait_sig
-and
+$B$*$h$S(B
 .Fn cv_timedwait_sig
-will fail if:
+$B$O0J2<$N>l9g$K<:GT$7$^$9!#(B
 .Bl -tag -width Er
 .It Bq Er EINTR
-An unmasked signal was caught.
+$B%^%9%/$5$l$F$$$J$$%7%0%J%k$,$D$+$^$j$^$7$?!#(B
 .It Bq Er ERESTART
-A masked signal was caught.
+$B%^%9%/$5$l$F$$$k%7%0%J%k$,$D$+$^$j$^$7$?!#(B
 .El
 .Pp
 .Fn cv_timedwait
-and
+$B$*$h$S(B
 .Fn cv_timedwait_sig
-will fail if:
+$B$O0J2<$N>l9g$K<:GT$7$^$9!#(B
 .Bl -tag -width Er
 .It Bq Er EWOULDBLOCK
-Timeout expired.
+$B%?%$%`%"%&%H$,K~N;$7$^$7$?!#(B
 .El
-.Sh SEE ALSO
+.Sh $B4XO"9`L\(B
 .Xr msleep 9 ,
 .Xr mtx_pool 9 ,
 .Xr mutex 9 ,
diff -ur original/device_get_name.9 japanese/device_get_name.9
--- original/device_get_name.9	Mon Sep  8 13:38:58 2003
+++ japanese/device_get_name.9	Mon Sep  8 14:22:15 2003
@@ -31,26 +31,25 @@
 .Dd April 21, 2003
 .Dt DEVICE_GET_NAME 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm device_get_name , device_get_nameunit
-.Nd access the name of a device's device class or instance
-.Sh SYNOPSIS
+.Nd $B%G%P%$%9$N%G%P%$%9%/%i%9$^$?$O<BBN$NL>A0$X$N%"%/%;%9(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/bus.h
 .Ft int
 .Fn device_get_name "device_t dev"
 .Ft int
 .Fn device_get_nameunit "device_t dev"
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn device_get_name
-function returns the name of the device's device class.
+$B4X?t$O%G%P%$%9$N%G%P%$%9%/%i%9$NL>A0$rJV$7$^$9!#(B
 .Pp
-The
 .Fn device_get_nameunit
-function returns the name of the device's instance.
-.Sh SEE ALSO
+$B4X?t$O%G%P%$%9$N<BBN$NL>A0$rJV$7$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr device 9
-.Sh AUTHORS
-This man page was written by
-.An Warner Losh .
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Warner Losh
+$B$,=q$-$^$7$?!#(B
diff -ur original/device_get_parent.9 japanese/device_get_parent.9
--- original/device_get_parent.9	Mon Sep  8 13:38:58 2003
+++ japanese/device_get_parent.9	Mon Sep  8 14:26:19 2003
@@ -31,20 +31,20 @@
 .Dd April 21, 2003
 .Dt DEVICE_GET_PARENT 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm device_get_parent
-.Nd return the device's parent
-.Sh SYNOPSIS
+.Nd $B%G%P%$%9$N?F$N<hF@(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/bus.h
 .Ft device_t
 .Fn device_get_parent "device_t dev"
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn device_get_parent
-function returns the name of the device's parent device.
-.Sh SEE ALSO
+$B4X?t$O%G%P%$%9$N?F%G%P%$%9$NL>A0$rJV$7$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr device 9
-.Sh AUTHORS
-This man page was written by
-.An Warner Losh .
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Warner Losh
+$B$,=q$-$^$7$?!#(B
diff -ur original/device_ids.9 japanese/device_ids.9
--- original/device_ids.9	Thu Sep  4 11:26:14 2003
+++ japanese/device_ids.9	Thu Sep  4 11:40:20 2003
@@ -29,14 +29,14 @@
 .Dd July 9, 2001
 .Dt DEVICE_IDS 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm device_ids ,
 .Nm major ,
 .Nm minor ,
 .Nm umajor ,
 .Nm uminor
-.Nd "calculate device ids"
-.Sh SYNOPSIS
+.Nd $B%G%P%$%9(B ID $B$N7W;;(B
+.Sh $B=q<0(B
 .In sys/types.h
 .In sys/systm.h
 .Ft int
@@ -47,29 +47,31 @@
 .Fn umajor "udev_t id"
 .Ft int
 .Fn uminor "udev_t id"
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Nm
-family of functions take either the raw device ID,
-.Fa id ,
-or a pointer to the device structure,
-.Fa dev ,
-and return the integer
-value that is the major or minor device ID as requested.
+$B%U%!%_%j$N4X?t$O!"%m!<%G%P%$%9$N(B ID $B$G$"$k(B
+.Fa id
+$B$^$?$O%G%P%$%99=B$BN$X$N%]%$%s%?$G$"$k(B
+.Fa dev
+$B$r$H$j!"MW5a$5$l$?%a%8%c!<$^$?$O%^%$%J%G%P%$%9(B ID $B$N@0?tCM$rJV$7$^$9!#(B
 .Pp
-The actual major and minor device IDs are values masked from of the raw device ID.
-For details on the actual calculations used to determine the major or minor IDs see
-the actual source in
-.Pa kern_conf.c .
-.Sh RETURN VALUES
-An integer greater than zero and less than
-.Dv NUMCDEVSW .
+$B<B:]$N%a%8%c!<$*$h$S%^%$%J%G%P%$%9(B ID $B$O%m!<%G%P%$%9(B ID $B$+$i(B
+$B%^%9%/$5$l$?CM$G$9!#(B
+$B<B:]$N%a%8%c!<$*$h$S%^%$%J(B ID $B$r7hDj$9$k$?$a$K;HMQ$5$l$k7W;;>e$N>\:Y$O!"(B
+.Pa kern_conf.c
+$B$N<B:]$N%=!<%9$r;2>H$7$F2<$5$$!#(B
+.Sh $BLa$jCM(B
+0 $B$h$jBg$-$/$+$D(B
+.Dv NUMCDEVSW
+$B$h$j>.$5$$@0?tCM$G$9!#(B
+$B$=$N%G%P%$%9$,L58z$G$"$k>l9g$K$O!"(B
 .Fn major
-and
+$B$*$h$S(B
 .Fn minor
-will return
+$B$O(B
 .Dv NOUDEV
-if the device is invalid.
+$B$rJV$7$^$9!#(B
 .Sh AUTHORS
-This man page was written by
-.An Chad David Aq davidc@acns.ab.ca .
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Chad David Aq davidc@acns.ab.ca
+$B$,=q$-$^$7$?!#(B
diff -ur original/device_printf.9 japanese/device_printf.9
--- original/device_printf.9	Mon Sep  8 13:38:58 2003
+++ japanese/device_printf.9	Mon Sep  8 14:01:57 2003
@@ -28,31 +28,30 @@
 .Dd April 21, 2003
 .Dt DEVICE_PRINTF 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm device_printf
-.Nd formatted output conversion
-.Sh SYNOPSIS
+.Nd $B%U%)!<%^%C%H=PNO$NJQ49(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/bus.h
 .Ft int
 .Fn device_printf "device_t dev" "const char *fmt" ...
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn device_printf
-function is a convenience interface to the
+$B4X?t$O(B
 .Xr printf 9
-function.
-It outputs the name of the
+$B4X?t$X$NJXMx$J%$%s%?%U%'!<%9$G$9!#(B
+$B%3%m%s$*$h$S%9%Z!<%9$,8e$KB3$/(B
 .Fa dev
-device, followed by a colon and a space, and then what
-.Xr printf 9
-would print if you passed
+$B%G%P%$%9$NL>A0$r=PNO$7$^$9!#(B
+$B$=$l$+$i!"(B
 .Fa fmt
-and the remaining arguments to it.
-.Sh RETURN VALUES
-The
+$B$*$h$S$=$l$X$N;D$j$N0z?t$,EO$5$l$?>l9g$K$O(B
+.Xr printf 9
+$B$,0u;z$9$k$b$N$r=PNO$7$^$9!#(B
+.Sh $BLa$jCM(B
 .Fn device_printf
-function returns the number of characters displayed.
-.Sh SEE ALSO
+$B4X?t$OI=<($5$l$?J8;z?t$rJV$7$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr printf 3 ,
 .Xr printf 9
diff -ur original/device_set_driver.9 japanese/device_set_driver.9
--- original/device_set_driver.9	Mon Sep  8 13:38:58 2003
+++ japanese/device_set_driver.9	Mon Sep  8 14:17:43 2003
@@ -31,25 +31,26 @@
 .Dd April 21, 2003
 .Dt DEVICE_SET_DRIVER 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm device_set_driver
-.Nd "associate a specific driver with a device node in the tree"
-.Sh SYNOPSIS
+.Nd "$B;XDj$7$?%I%i%$%P$H%D%j!<$NCf$N%G%P%$%9%N!<%I$H$N4XO"IU$1(B"
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/bus.h
 .Ft void
 .Fn device_set_driver "device_t dev" "driver_t *driver"
-.Sh DESCRIPTION
-This function associates a specific driver with a given device node
-in the tree.
-It is typically used in
-.Xr DEVICE_IDENTIFY 9
-functions to add devices to a bus that does not support doing so
-automatically, such as the
+.Sh $B2r@b(B
+$B$3$N4X?t$O;XDj$7$?%I%i%$%P$H%D%j!<$NCf$NM?$($i$l$?%G%P%$%9%N!<%I$r(B
+$B4XO"IU$1$^$9!#(B
+$B$3$l$O0lHLE*$K$O(B
 .Xr isa 4
-bus.
-.Sh SEE ALSO
+$B%P%9$N$h$&$J!"4XO"IU$1$r<+F0E*$K9T$J$&$3$H$r%5%]!<%H$7$F$$$J$$%P%9$X(B
+$B%G%P%$%9$rDI2C$9$k$?$a$K!"(B
+.Xr DEVICE_IDENTIFY 9
+$B4X?t$NCf$G;HMQ$5$l$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr device 9
-.Sh AUTHORS
-This man page was written by
-.An M. Warner Losh .
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An M. Warner Losh
+$B$,=q$-$^$7$?!#(B
diff -ur original/devsw.9 japanese/devsw.9
--- original/devsw.9	Mon Sep  8 13:38:58 2003
+++ japanese/devsw.9	Mon Sep  8 13:56:01 2003
@@ -29,48 +29,44 @@
 .Dd July 9, 2001
 .Dt DEVSW 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm devsw
-.Nd returns the
+.Nd
 .Vt cdevsw
-structure
-.Sh SYNOPSIS
+$B9=B$BN$N<hF@(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/conf.h
 .Ft "struct cdevsw *"
 .Fn devsw "dev_t dev"
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn devsw
-function returns a pointer to the
+$B4X?t$O$3$NJ8;z7?%G%P%$%9(B ID $B$K4XO"IU$1$i$l$?(B
 .Vt cdevsw
-structure associated
-with this character device ID.
-If
+$B9=B$BN$X$N%]%$%s%?$rJV$7$^$9!#(B
 .Fa dev->si_cdevsw
-is set it is
-returned; otherwise, the
-.Xr major 9
-offset into the
+$B$,@_Dj$5$l$F$$$k>l9g$K$O$=$l$,JV$5$l!"$=$&$G$J$$>l9g$K$O(B
 .Va cdevsw
-array is returned.
+$BG[Ns$X(B
+.Xr major 9
+$BCMJ,%*%U%;%C%H$5$;$?$b$N$,JV$5$l$^$9!#(B
 .Pp
-Its argument is:
+$B0z?t$O0J2<$NDL$j$G$9!#(B
 .Bl -tag -width ".Fa dev"
 .It Fa dev
-The device whose
+$BJV$5$l$k$Y$-(B
 .Vt cdevsw
-entry should be returned.
+$B%(%s%H%j$N%G%P%$%9$G$9!#(B
 .El
-.Sh RETURN VALUES
-A pointer to a
+.Sh $BLa$jCM(B
 .Vt cdevsw
-structure.
-.Sh SEE ALSO
+$B9=B$BN$X$N%]%$%s%?$G$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr major 9 ,
 .Xr minor 9 ,
 .Xr umajor 9 ,
 .Xr uminor 9
-.Sh AUTHORS
-This man page was written by
-.An Chad David Aq davidc@acns.ab.ca .
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Chad David Aq davidc@acns.ab.ca
+$B$,=q$-$^$7$?!#(B
diff -ur original/groupmember.9 japanese/groupmember.9
--- original/groupmember.9	Mon Sep  8 17:04:49 2003
+++ japanese/groupmember.9	Mon Sep  8 17:13:04 2003
@@ -29,32 +29,31 @@
 .Dd July 9, 2001
 .Dt GROUPMEMBER 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm groupmember
-.Nd checks group set for a group ID
-.Sh SYNOPSIS
+.Nd $B%0%k!<%W(B ID $B$N$?$a$N%0%k!<%W%;%C%H$N%A%'%C%/(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/ucred.h
 .Ft int
 .Fn groupmember "gid_t gid" "struct ucred *cred"
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Fn groupmember
-function checks to see if the given
+$B4X?t$OM?$($i$l$?(B
 .Fa gid
-is in the group set of the credentials.
+$B$,>ZL@$N%0%k!<%W%;%C%HFb$K$"$k$+$I$&$+$r!"8+$k$?$a$K%A%'%C%/$7$^$9!#(B
 .Pp
-Its arguments are:
+$B0z?t$O0J2<$NDL$j$G$9!#(B
 .Bl -tag -width ".Fa cred"
 .It Fa gid
-The group ID to check for.
+$B%A%'%C%/$9$k$Y$-%0%k!<%W(B ID $B$G$9!#(B
 .It Fa cred
-The credentials to search for the group in.
+$B%0%k!<%WFb$N8!:w$5$l$k$Y$->ZL@$G$9!#(B
 .El
-.Sh RETURN VALUES
-If the
+.Sh $BLa$jCM(B
 .Fa gid
-is found, 1 is returned; otherwise, 0 is returned.
-.Sh AUTHORS
-This man page was written by
-.An Chad David Aq davidc@acns.ab.ca .
+$B$,8+$D$+$C$?>l9g$K$O(B 1 $B$,JV$5$l!"$=$&$G$J$$>l9g$K$O(B 0 $B$,JV$5$l$^$9!#(B
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Chad David Aq davidc@acns.ab.ca
+$B$,=q$-$^$7$?!#(B
diff -ur original/pseudofs.9 japanese/pseudofs.9
--- original/pseudofs.9	Mon Sep  8 21:25:54 2003
+++ japanese/pseudofs.9	Fri Sep 19 11:56:36 2003
@@ -1,5 +1,5 @@
 .\"-
-.\" Copyright (c) 2001 Dag-Erling Co$B!&(Ban Sm?grav
+.\" Copyright (c) 2001 Dag-Erling Co)B$B!&(Ban Sm?grav
 .\" All rights reserved.
 .\"
 .\" Redistribution and use in source and binary forms, with or without
@@ -28,42 +28,41 @@
 .Dd September 30, 2001
 .Dt PSEUDOFS 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm pseudofs
-.Nd pseudo file system construction kit
-.Sh SYNOPSIS
+.Nd $B5?;w%U%!%$%k%7%9%F%`9=C[%-%C%H(B
+.Sh $B=q<0(B
 .In fs/pseudofs/pseudofs.h
-.\" Insert usage example here
-.Sh DESCRIPTION
-The
+.\" $B$3$3$K;HMQNc$rA^F~$9$k(B
+.Sh $B2r@b(B
 .Nm
-module offers an abstract API for pseudo-file systems such as
+$B%b%8%e!<%k$O(B
 .Xr procfs 5
-and
-.Xr linprocfs 5 .
-It takes care of all the hairy bits like interfacing with the VFS
-system, enforcing access control, keeping track of file numbers, and
-cloning files and directories that are process-specific.
-The consumer module, i.e. the module that implements the actual guts
-of the file system, needs only provide the directory structure
-(represented by a collection of structures declared and initialized by
-macros provided by
-.Nm )
-and callbacks that report file attributes or write the actual file
-contents into sbufs.
-.\" Insert more info here
-.Sh SEE ALSO
+$B$*$h$S(B
+.Xr linprocfs 5
+$B$N$h$&$J5?;w%U%!%$%k%7%9%F%`$N$?$a$NCj>](B API $B$rDs6!$7$^$9!#(B
+$B$3$l$O(B VFS $B%7%9%F%`$H$N%$%s%?%U%'!<%9!"%"%/%;%9@)8f$N6/@)!"%U%!%$%k?t$N(B
+$BDI@W$N0];}!"$*$h$S%W%m%;%9FCM-$N%U%!%$%k$H%G%#%l%/%H%j$NJ#@=!"(B
+$B$N$h$&$JA4$F$NJ#;($J%S%C%H$KG[N8$7$^$9!#(B
+$B%3%s%7%e!<%^%b%8%e!<%k!"$9$J$o$A%U%!%$%k%7%9%F%`$N<B:]$NCf?4It$r(B
+$B<BAu$9$k%b%8%e!<%k$O!"(B($B@k8@$5$l$?9=B$BN$N=89g$K$h$C$F5-=R$5$l!"(B
+.Nm
+$B$K$h$C$FDs6!$5$l$k%^%/%m$K$h$C$F=i4|2=$5$l$?(B) $B%G%#%l%/%H%j9=B$$*$h$S!"(B
+$B%U%!%$%k$NB0@-$NJs9p$^$?$O(B sbuf $B$K%U%!%$%k$NFbMF$r(B
+$B<B:]$K=q$-9~$`%3!<%k%P%C%/$@$1$r!"Ds6!$9$kI,MW$,$"$j$^$9!#(B
+.\" $B$3$3$K$h$jB?$/$N>pJs$rA^F~$9$k(B
+.Sh $B4XO"9`L\(B
 .Xr linprocfs 5 ,
 .Xr procfs 5 ,
 .Xr sbuf 9 ,
 .Xr vnode 9
-.Sh HISTORY
-The
+.Sh $BNr;K(B
 .Nm
-module appeared in
-.Fx 5.0 .
-.Sh AUTHORS
-The
+$B%b%8%e!<%k$O(B
+.Fx 5.0
+$B$GEP>l$7$^$7$?!#(B
+.Sh $B:n<T(B
 .Nm
-module and this manual page were written by
-.An Dag-Erling Sm\(/orgrav .
+$B%b%8%e!<%k$H$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Dag-Erling Sm\(/orgrav
+$B$,=q$-$^$7$?!#(B
diff -ur original/sema.9 japanese/sema.9
--- original/sema.9	Thu Sep  4 11:19:27 2003
+++ japanese/sema.9	Thu Sep  4 20:44:51 2003
@@ -29,7 +29,7 @@
 .Dd August 13, 2001
 .Dt SEMA 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm sema ,
 .Nm sema_init ,
 .Nm sema_destroy ,
@@ -38,8 +38,8 @@
 .Nm sema_timedwait ,
 .Nm sema_trywait ,
 .Nm sema_value
-.Nd kernel counting semaphore
-.Sh SYNOPSIS
+.Nd $B%+!<%M%k%+%&%s%H%;%^%U%)(B
+.Sh $B=q<0(B
 .In sys/types.h
 .In sys/lock.h
 .In sys/sema.h
@@ -57,55 +57,58 @@
 .Fn sema_trywait "struct sema *sema"
 .Ft int
 .Fn sema_value "struct sema *sema"
-.Sh DESCRIPTION
-Counting semaphores provide a mechanism for synchronizing access to a pool of
-resources.
-Unlike mutexes, semaphores do not have the concept of an owner, so they can also
-be useful in situations where one thread needs to acquire a resource, and
-another thread needs to release it.
-Each semaphore has an integer value associated with it.
-Posting (incrementing) always succeeds, but waiting (decrementing) can only
-successfully complete if the resulting value of the semaphore is greater than or
-equal to zero.
+.Sh $B2r@b(B
+$B%;%^%U%)$r%+%&%s%H$9$k$3$H$O%j%=!<%9$N%W!<%k$X$N%"%/%;%9$NF14|$N$?$a$N(B
+$B;EAH$_$rDs6!$7$^$9!#(B
+mutex $B$H$O0c$$!"%;%^%U%)$O=jM-<T$N35G0$O;}$C$F$$$J$$$?$a!"(B
+1 $B$D$N%9%l%C%I$,%j%=!<%9$N3MF@$rI,MW$H$7!"JL$N%9%l%C%I$,$=$N%j%=!<%9$N(B
+$B3+J|$rI,MW$H$9$k$h$&$J>u67$G$b!"MxMQ$G$-$^$9!#(B
+$B3F!9$N%;%^%U%)$O!"$=$l$K4XO"IU$1$i$l$?@0?tCM$r;}$C$F$$$^$9!#(B
+$B%]%9%H(B ($B%$%s%/%j%a%s%H(B) $B$O>o$K@.8y$7$^$9$,!"%&%'%$%H(B ($B%G%/%j%a%s%H(B) $B$O(B
+$B$=$N%;%^%U%)$NCM$,(B 0 $B0J>e$K$J$k>l9g$K$N$_!"@.8y$7$F40N;$9$k$3$H$,2DG=$G$9!#(B
 .Pp
-Semaphores should not be used where mutexes and condition variables
-will suffice.
-Semaphores are a more complex synchronization mechanism than mutexes and
-condition variables, and are not as efficient.
+$B%;%^%U%)$O(B mutex $B$H>uBVJQ?t$G==J,$G$"$k$h$&$J$H$3$m$G$O;HMQ$9$k$Y$-$G$O(B
+$B$"$j$^$;$s!#(B
+$B%;%^%U%)$O(B mutex $B$H>uBVJQ?t$h$jJ#;($JF14|$N;EAH$_$G!"(B
+$B$=$N$?$a8zN(E*$G$O$"$j$^$;$s!#(B
 .Pp
-Semaphores are created with
-.Fn sema_init ,
-where
+$B%;%^%U%)$O(B
+.Fn sema_init
+$B$r;HMQ$7$F:n@.$5$l$^$9!#(B
+$B$3$3$G(B
 .Fa sema
-is a pointer to space for a
-.Vt "struct sema" ,
+$B$O(B
+.Vt "struct sema"
+$B$N$?$a$N6u4V$X$N%]%$%s%?$G!"(B
 .Fa value
-is the initial value of the semaphore, and
+$B$O%;%^%U%)$N=i4|CM$G!"(B
 .Fa description
-is a pointer to a null-terminated character string that describes the semaphore.
-Semaphores are destroyed with
-.Fn sema_destroy .
-A semaphore is posted (incremented) with
-.Fn sema_post .
-A semaphore is waited on (decremented) with
+$B$O$=$N%;%^%U%)$r@bL@$9$k(B null $B$G=*C<$5$l$?J8;zNs$X$N%]%$%s%?$G$9!#(B
+$B%;%^%U%)$O(B
+.Fn sema_destroy
+$B$r;HMQ$7$FGK2u$5$l$^$9!#(B
+$B%;%^%U%)$O(B
+.Fn sema_post
+$B$r;HMQ$7$F%]%9%H(B ($B%$%s%/%j%a%s%H(B) $B$5$l$^$9!#(B
+$B%;%^%U%)$O(B
 .Fn sema_wait ,
-.Fn sema_timedwait ,
-or
-.Fn sema_trywait .
-The
-.Fa timo
-argument to
 .Fn sema_timedwait
-specifies the minimum time in ticks to wait before returning with failure.
+$B$^$?$O(B
+.Fn sema_trywait
+$B$r;HMQ$7$F%&%'%$%H(B ($B%G%/%j%a%s%H(B) $B$5$l$^$9!#(B
+.Fn sema_timedwait
+$B$X$N(B
+.Fa timo
+$B0z?t$O<:GT$7$FLa$kA0$K%&%'%$%H$9$k$?$a$N(B tick $BC10L$G$N:G>.;~4V$r;XDj$7$^$9!#(B
 .Fn sema_value
-returns the current value of the semaphore.
+$B$O8=:_$N%;%^%U%)$NCM$rJV$7$^$9!#(B
 .Pp
 .Fn sema_timedwait
-and
+$B$*$h$S(B
 .Fn sema_trywait
-will return 0 if waiting on the semaphore failed; otherwise a non-zero value
-will be returned to indicate success.
-.Sh SEE ALSO
+$B$O!"$=$N%;%^%U%)>e$G$N%&%'%$%H$K<:GT$7$?>l9g$K$O(B 0 $B$rJV$7$^$9!#(B
+$B$=$&$G$J$$>l9g$K$O!"@.8y$r<($9$?$a$K(B 0 $B$G$O$J$$CM$,JV$5$l$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr condvar 9 ,
 .Xr mtx_pool 9 ,
 .Xr mutex 9 ,
diff -ur original/sx.9 japanese/sx.9
--- original/sx.9	Mon Sep 29 15:34:24 2003
+++ japanese/sx.9	Mon Sep 29 15:33:41 2003
@@ -29,7 +29,7 @@
 .Dd August 14, 2001
 .Dt SX 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm sx ,
 .Nm sx_init ,
 .Nm sx_destroy ,
@@ -43,8 +43,8 @@
 .Nm sx_downgrade ,
 .Nm sx_assert ,
 .Nm SX_SYSINIT
-.Nd kernel shared/exclusive lock
-.Sh SYNOPSIS
+.Nd $B%+!<%M%k$N6&M-(B/$BGSB>%m%C%/(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/lock.h
 .In sys/mutex.h
@@ -72,113 +72,110 @@
 .Ft void
 .Fn sx_assert "struct sx *sx" "int what"
 .Fn SX_SYSINIT "name" "struct sx *sx" "const char *description"
-.Sh DESCRIPTION
-Shared/exclusive locks are used to protect data that are read far more often
-than they are written.
-Mutexes are inherently more efficient than shared/exclusive locks, so
-shared/exclusive locks should be used prudently.
-.Pp
-Shared/exclusive locks are created with
-.Fn sx_init ,
-where
+.Sh $B2r@b(B
+$B6&M-(B/$BGSB>%m%C%/$O=q$-9~$^$l$k$h$j$b!"FI$_9~$^$l$kJ}$,Hs>o$KB?$$%G!<%?$r(B
+$BJ]8n$9$k$?$a$K;HMQ$5$l$^$9!#(B
+mutex $B$OK\<AE*$K6&M-(B/$BGSB>%m%C%/$h$j$bG=N(E*$J$N$G!"6&M-(B/$BGSB>%m%C%/$O(B
+$BMQ?4?<$/;HMQ$5$l$k$Y$-$G$9!#(B
+.Pp
+$B6&M-(B/$BGSB>%m%C%/$O(B
+.Fn sx_init
+$B$r;HMQ$7$F:n@.$5$l$^$9!#$3$3$G(B
 .Fa sx
-is a pointer to space for a
-.Vt struct sx ,
-and
+$B$O(B
+.Vt struct sx
+$B$N$?$a$NNN0h$X$N%]%$%s%?$G!"(B
 .Fa description
-is a pointer to a null-terminated character string that describes the
-shared/exclusive lock.
-Shared/exclusive locks are destroyed with
-.Fn sx_destroy .
-Threads acquire and release a shared lock by calling
+$B$O$=$N6&M-(B/$BGSB>%m%C%/$r@bL@$9$k(B null $B$G=*C<$5$l$kJ8;zNs$X$N%]%$%s%?$G$9!#(B
+$B6&M-(B/$BGSB>%m%C%/$O(B
+.Fn sx_destroy
+$B$r;HMQ$7$FGK2u$5$l$^$9!#(B
+$B%9%l%C%I$O(B
 .Fn sx_slock
-or
+$B$^$?$O(B
 .Fn sx_try_slock
-and
-.Fn sx_sunlock .
-Threads acquire and release an exclusive lock by calling
+$B$*$h$S(B
+.Fn sx_sunlock
+$B$N8F$S=P$7$K$h$C$F6&M-%m%C%/$r3MF@$*$h$S2rJ|$7$^$9!#(B
+$B%9%l%C%I$O(B
 .Fn sx_xlock
-or
+$B$^$?$O(B
 .Fn sx_try_xlock
-and
-.Fn sx_xunlock .
-A thread can attempt to upgrade a currently owned shared lock to an exclusive
-lock by calling
-.Fn sx_try_upgrade .
-A thread that owns an exclusive lock can downgrade it to a shared lock by
-calling
-.Fn sx_downgrade .
+$B$*$h$S(B
+.Fn sx_xunlock
+$B$N8F$S=P$7$K$h$C$FGSB>%m%C%/$r3MF@$*$h$S2rJ|$7$^$9!#(B
+$B%9%l%C%I$O(B
+.Fn sx_try_upgrade
+$B$N8F$S=P$7$K$h$C$F!"8=:_=jM-$7$F$$$k6&M-%m%C%/$+$iGSB>%m%C%/$X$N(B
+$B%"%C%W%0%l!<%I$r;n$_$k$3$H$,2DG=$G$9!#(B
+$BGSB>%m%C%/$r=jM-$7$F$$$k%9%l%C%I$O!"(B
+.Fn sx_downgrade
+$B$N8F$S=P$7$K$h$C$F$=$NGSB>%m%C%/$+$i6&M-%m%C%/$X$N%@%&%s%0%l!<%I$,2DG=$G$9!#(B
 .Pp
 .Fn sx_try_slock
-and
+$B$*$h$S(B
 .Fn sx_try_xlock
-will return 0 if the shared/exclusive lock cannot be acquired immediately;
-otherwise the shared/exclusive lock will be acquired and a non-zero value will
-be returned.
+$B$O6&M-(B/$BGSB>%m%C%/$,$9$0$K3MF@$G$-$J$+$C$?>l9g$K$O(B 0 $B$rJV$7!"(B
+$B$=$&$G$J$$>l9g$K$O6&M-(B/$BGSB>%m%C%/$,3MF@$5$l(B 0 $B$G$O$J$$CM$,JV$5$l$^$9!#(B
 .Pp
 .Fn sx_try_upgrade
-will return 0 if the shared lock cannot be upgraded to an exclusive lock
-immediately; otherwise the exclusive lock will be acquired and a non-zero value
-will be returned.
+$B$O6&M-%m%C%/$r$9$0$KGSB>%m%C%/$K%"%C%W%0%l!<%I$G$-$J$$>l9g$K$O(B 0 $B$rJV$7!"(B
+$B$=$&$G$J$$>l9g$K$OGSB>%m%C%/$,3MF@$5$l(B 0 $B$G$O$J$$CM$,JV$5$l$^$9!#(B
 .Pp
-The
 .Fn sx_assert
-function tests specified conditions and panics if they are not met and the
-kernel is compiled with
-.Dv INVARIANTS .
+$B4X?t$O;XDj$5$l$?>uBV$r%F%9%H$7$F!"$=$N>uBV$K9g$o$:$+$D%+!<%M%k$,(B
+.Dv INVARIANTS
+$BIU$-$G%3%s%Q%$%k$5$l$F$$$k>l9g$K$O!"(Bpanic $B$7$^$9!#(B
 .Pp
-The
 .Fn SX_SYSINIT
-macro is used to generate a call to the
-.Fn sx_sysinit
-routine at system startup in order to initialize a given
+$B%^%/%m$O%7%9%F%`%9%?!<%H%"%C%W;~$KM?$($i$l$?(B
 .Fa sx
-lock.
-The parameters are the same as
+$B%m%C%/$r=i4|2=$9$k$?$a$K(B
+.Fn sx_sysinit
+$B$N8F$S=P$7$r@8@.$7$^$9!#(B
+$B0z?t$O(B
 .Fn sx_init
-but with an additional argument,
-.Fa name ,
-that is used in generating unique variable names for the related
-structures associated with the lock and the sysinit routine.
+$B$HF1MM$G$9$,!"(B
+$B$=$N%m%C%/$H(B sysinit $B%k!<%A%s$K4XO"IU$1$i$l$?9=B$BN$K4XO"$7$?M#0l$N(B
+$BJQ?tL>$r@8@.$9$k:]$K;HMQ$5$l$kDI2C$N0z?t$H$7$F(B
+.Fa name
+$B$r;}$A$^$9!#(B
 .Pp
-The following assertions are supported:
+$B0J2<$N%"%5!<%H$,%5%]!<%H$5$l$F$$$^$9!#(B
 .Bl -tag -width ".Dv SX_XLOCKED"
 .It Dv SX_LOCKED
-Assert that the current thread has either a shared or an exclusive lock on the
+$B8=:_$N%9%l%C%I$,!":G=i$N0z?t$K$h$C$F;X$5$l$F$$$k(B
 .Vt sx
-lock pointed to by the first argument.
+$B%m%C%/>e$K!"6&M-$^$?$OGSB>%m%C%/$N$$$:$l$+$r;}$C$F$$$k$3$H$r%"%5!<%H$7$^$9!#(B
 .It Dv SX_SLOCKED
-Assert that the current thread has a shared lock on the
+$B8=:_$N%9%l%C%I$,!":G=i$N0z?t$K$h$C$F;X$5$l$F$$$k(B
 .Vt sx
-lock pointed to by
-the first argument.
+$B%m%C%/>e$K!"6&M-%m%C%/$r;}$C$F$$$k$3$H$r%"%5!<%H$7$^$9!#(B
 .It Dv SX_XLOCKED
-Assert that the current thread has an exclusive lock on the
+$B8=:_$N%9%l%C%I$,!":G=i$N0z?t$K$h$C$F;X$5$l$F$$$k(B
 .Vt sx
-lock pointed to
-by the first argument.
+$B%m%C%/>e$K!"GSB>%m%C%/$r;}$C$F$$$k$3$H$r%"%5!<%H$7$^$9!#(B
 .El
 .Pp
-A thread may not own a shared lock and an exclusive lock simultaneously;
-attempting to do so will result in deadlock.
-.Sh CONTEXT
-It is allowed to own a shared lock or an exclusive lock while sleeping.
-.Sh SEE ALSO
+$B%9%l%C%I$O6&M-%m%C%/$HGSB>%m%C%/$rF1;~$K$O;}$D$3$H$,$G$-$^$;$s!#(B
+$BF1;~$K;}$D$3$H$O%G%C%I%m%C%/$r0z$-5/$3$9$3$H$K$J$k$?$a$G$9!#(B
+.Sh $B%3%s%F%-%9%H(B
+$B%9%j!<%W$7$F$$$k4V$K6&M-%m%C%/$^$?$OGSB>%m%C%/$r=jM-$9$k$3$H$O5v2D$5$l$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr condvar 9 ,
 .Xr mtx_pool 9 ,
 .Xr mutex 9 ,
 .Xr sema 9
-.Sh BUGS
-Currently there is no way to assert that a lock is not held.
-This is not possible in the
-.No non- Ns Dv WITNESS
-case for asserting that this thread
-does not hold a shared lock.
-In the
-.No non- Ns Dv WITNESS
-case, the
+.Sh $B%P%0(B
+$B8=:_!"%m%C%/$,J];}$5$l$F$$$J$$$3$H$r%"%5!<%H$9$kJ}K!$,$"$j$^$;$s!#(B
+.Dv WITNESS
+$B$G$O$J$$>l9g$K$O!"$3$N%9%l%C%I$,6&M-%m%C%/$rJ];}$7$F$$$J$$$3$H$r(B
+$B%"%5!<%H$9$k$3$H$OIT2DG=$G$9!#!!(B
+.Dv WITNESS
+$B$G$O$J$$>l9g$K$O!"(B
 .Dv SX_LOCKED
-and
+$B$*$h$S(B
 .Dv SX_SLOCKED
-assertions merely check that some thread holds a shared lock.
-They do not ensure that the current thread holds a shared lock.
+$B$N%"%5!<%H$O!"$"$k%9%l%C%I$,6&M-%m%C%/$rJ];}$7$F$$$k$3$H$r(B
+$BC1$K%A%'%C%/$9$k$K2a$.$^$;$s!#(B
+$B$3$l$i$O!"8=:_$N%9%l%C%I$,6&M-%m%C%/$rJ];}$7$F$$$k$3$H$rJ]>Z$7$^$;$s!#(B
diff -ur original/taskqueue.9 japanese/taskqueue.9
--- original/taskqueue.9	Mon Sep 29 15:34:40 2003
+++ japanese/taskqueue.9	Mon Sep 29 16:10:49 2003
@@ -31,10 +31,10 @@
 .Dd May 12, 2000
 .Dt TASKQUEUE 9
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm taskqueue
-.Nd asynchronous task execution
-.Sh SYNOPSIS
+.Nd $BHsF14|%?%9%/$N<B9T(B
+.Sh $B=q<0(B
 .In sys/param.h
 .In sys/kernel.h
 .In sys/malloc.h
@@ -46,11 +46,11 @@
 typedef void (*taskqueue_enqueue_fn)(void *context);

 struct task {
-	STAILQ_ENTRY(task)	ta_link;	/* link for queue */
-	int			ta_pending;	/* count times queued */
-	int			ta_priority;	/* priority of task in queue */
-	task_fn			ta_func;	/* task handler */
-	void			*ta_context;	/* argument for handler */
+	STAILQ_ENTRY(task)	ta_link;	/* $B%-%e!<$N$?$a$N%j%s%/(B */
+	int			ta_pending;	/* $B%-%e!<$KF~$C$?2s?t(B */
+	int			ta_priority;	/* $B%-%e!<Fb%?%9%/M%@hEY(B */
+	task_fn			ta_func;	/* $B%?%9%/%O%s%I%i(B */
+	void			*ta_context;	/* $B%O%s%I%i$N0z?t(B */
 };

 .Ed
@@ -67,154 +67,145 @@
 .Fn TASK_INIT "struct task *task" "int priority" "task_fn_t *func" "void *context"
 .Fn TASKQUEUE_DECLARE "name"
 .Fn TASKQUEUE_DEFINE "name" "taskqueue_enqueue_fn enqueue" "void *context" "init"
-.Sh DESCRIPTION
-These functions provide a simple interface for asynchronous execution
-of code.
+.Sh $B2r@b(B
+$B$3$l$i$N4X?t$O%3!<%I$NHsF14|$N<B9T$N$?$a$NC1=c$J%$%s%?%U%'!<%9$rDs6!$7$^$9!#(B
 .Pp
-The function
+$B4X?t(B
 .Fn taskqueue_create
-is used to create new queues.
-The arguments to
+$B$O?7$7$$%-%e!<$r:n@.$9$k$?$a$K;HMQ$5$l$^$9!#(B
 .Fn taskqueue_create
-include a name which should be unique,
-a set of
-.Xr malloc 9
-flags which specify whether the call to
+$B$X$N0z?t$O!"M#0l$G$"$k$Y$-L>A0!"(B
 .Fn malloc
-is allowed to sleep
-and a function which is called from
+$B$N8F$S=P$7$,%9%j!<%W$rG'$a$k$+$I$&$+$r;XDj$9$k(B
+.Xr malloc 9
+$B%U%i%0$NAH!"%?%9%/$,%-%e!<$KDI2C$5$l$?$H$-$K(B
 .Fn taskqueue_enqueue
-when a task is added to the queue
-.\" XXX	The rest of the sentence gets lots in relation to the first part.
-to allow the queue to arrange to be run later
-(for instance by scheduling a software interrupt or waking a kernel
-thread).
+$B$+$i8F$S=P$5$l$k4X?t$r4^$_$^$9!#(B
+.\" XXX	$B0J2<$NJ8$OB?$/$O:G=i$NItJ,$K4X78$7$F$$$^$9!#(B
+$B$3$l$O!"(B($B$?$H$($P!"%=%U%H%&%'%"3d$j9~$_$K$h$k%9%1%8%e!<%j%s%0$^$?$O(B
+$B%+!<%M%k%9%l%C%I$,5/$3$5$l$k$3$H$K$h$C$F(B) $B%-%e!<$,8e$G<B9T$5$l$k$?$a$K(B
+$B=`Hw$5$l$k$3$H$,$G$-$k$h$&$K$9$k$?$a$G$9!#(B
 .Pp
-The function
+$B4X?t(B
 .Fn taskqueue_free
-should be used to remove the queue from the global list of queues
-and free the memory used by the queue.
-Any tasks which are on the queue will be executed at this time.
-.Pp
-The system maintains a list of all queues which can be searched using
-.Fn taskqueue_find .
-The first queue whose name matches is returned, otherwise
-.Dv NULL .
+$B$O%-%e!<$N%0%m!<%P%k$J%j%9%H$+$i$=$N%-%e!<$r<h$j=|$/$?$a$H!"(B
+$B%-%e!<$K$h$C$F;HMQ$5$l$?%a%b%j$r3+J|$9$k$?$a$K;HMQ$5$l$k$Y$-$G$9!#(B
+$B%-%e!<>e$NA4$F$N%?%9%/$O$3$N$H$-<B9T$5$l$^$9!#(B
+.Pp
+$B%7%9%F%`$O!"(B
+.Fn taskqueue_find
+$B$r;HMQ$7$F8!:w$5$l$k$3$H$,2DG=$J!"A4$F$N%-%e!<$N%j%9%H$r4IM}$7$^$9!#(B
+$BL>A0$,0lCW$9$k:G=i$N%-%e!<$,JV$5$l!"$=$&$G$J$1$l$P(B
+.Dv NULL
+$B$,JV$5$l$^$9!#(B
 .Pp
-To add a task to the list of tasks queued on a taskqueue, call
+$B%?%9%/%-%e!<>e$N%-%e!<$KF~$l$i$l$?%?%9%/$N%j%9%H$K!"%?%9%/$rDI2C$9$k$?$a$K$O!"(B
+$B%-%e!<$X$N%]%$%s%?$H%?%9%/$X$N%]%$%s%?$r;XDj$7$F(B
 .Fn taskqueue_enqueue
-with pointers to the queue and task.
-If the task's
+$B$r8F$S=P$7$^$9!#(B
+$B%?%9%/$N(B
 .Va ta_pending
-field is non-zero,
-then it is simply incremented to reflect the number of times the task
-was enqueued.
-Otherwise,
-the task is added to the list before the first task which has a lower
+$B%U%#!<%k%I$,(B 0 $B$G$J$$>l9g$K$O!"%?%9%/$,%-%e!<$KF~$l$i$l$?2s?t$KH?1G$9$k$?$a$K(B
+$BC1=c$K%$%s%/%j%a%s%H$5$l$^$9!#(B
+$B$=$&$G$J$$>l9g$K$O!"$=$N%?%9%/$O$h$jDc$$(B
 .Va ta_priority
-value or at the end of the list if no tasks have a lower priority.
-Enqueueing a task does not perform any memory allocation which makes
-it suitable for calling from an interrupt handler.
-This function will return
+$BCM$r;}$D:G=i$N%?%9%/$NA0$K!"$^$?$O$h$jDc$$M%@hEY;}$D%?%9%/$,$J$$>l9g$O(B
+$B%j%9%H$N:G8e$K!"DI2C$5$l$^$9!#(B
+$B%?%9%/$r%-%e!<$KF~$l$k$3$H$O!"3d$j9~$_%O%s%I%i$NCf$+$i8F$S=P$5$l$k$3$H$K(B
+$BE,1~$9$k$?$a$K!"%a%b%j$N3d$jEv$F$r<B9T$7$^$;$s!#(B
+$B$3$N4X?t$O!"$=$N%-%e!<$,3+J|$5$l$h$&$H$7$F$$$k>l9g$K$O!"(B
 .Er EPIPE
-if the queue is being freed.
+$B$rJV$7$^$9!#(B
 .Pp
-To execute all the tasks on a queue,
-call
-.Fn taskqueue_run .
-When a task is executed,
-first it is removed from the queue,
-the value of
+$B%-%e!<>e$NA4$F$N%?%9%/$r<B9T$9$k$K$O!"(B
+.Fn taskqueue_run
+$B$r8F$S=P$7$^$9!#(B
+$B%?%9%/$,<B9T$5$l$k$H$-$K$O!"@h$:$=$N%?%9%/$,%-%e!<$+$i<h$j=|$+$l!"(B
 .Va ta_pending
-is recorded and then the field is zeroed.
-The function
+$B$NCM$,5-O?$5$l$=$l$+$i$=$N%U%#!<%k%I$,(B 0 $B$G%/%j%"$5$l$^$9!#(B
+task $B9=B$BN$N(B
 .Va ta_func
-from the task structure is called with the value of the field
+$B4X?t$O(B
 .Va ta_context
-as its first argument
-and the value of
+$B%U%#!<%k%I$NCM$r:G=i$N0z?t$H$7$F!"(B
 .Va ta_pending
-as its second argument.
+$B$NCM$r(B 2 $BHVL\$N0z?t$H$7$F!"8F$S=P$5$l$^$9!#(B
 .Pp
-A convenience macro,
+$BJXMx$J%^%/%m(B
 .Fn TASK_INIT "task" "priority" "func" "context"
-is provided to initialise a
+$B$O(B
 .Va task
-structure.
-The values of
+$B9=B$BN$r=i4|2=$9$k$?$a$KDs6!$5$l$F$$$^$9!#(B
 .Va priority ,
-.Va func ,
-and
+.Va func
+$B$*$h$S(B
 .Va context
-are simply copied into the task structure fields and the
+$B$NCM$OC1=c$K(B task $B9=B$BN$N%U%#!<%k%I$K%3%T!<$5$l!"(B
 .Va ta_pending
-field is cleared.
+$B%U%#!<%k%I$O%/%j%"$5$l$^$9!#(B
 .Pp
-Two macros
+2 $B$D$N%^%/%m(B
 .Fn TASKQUEUE_DECLARE "name"
-and
+$B$*$h$S(B
 .Fn TASKQUEUE_DEFINE "name" "enqueue" "context" "init"
-are used to declare a reference to a global queue
-and to define the implementation of the queue.
-The
+$B$O!"%0%m!<%P%k$J%-%e!<$X$N;2>H$N@k8@$*$h$S$=$N%-%e!<$N<BAu$NDj5A$N(B
+$B$?$a$K;HMQ$5$l$^$9!#(B
 .Fn TASKQUEUE_DEFINE
-macro arranges to call
-.Fn taskqueue_create
-with the values of its
+$B%^%/%m$O(B
 .Va name ,
 .Va enqueue
-and
+$B$*$h$S(B
 .Va context
-arguments during system initialisation.
-After calling
+$B0z?t$NCM$G!"%7%9%F%`$N=i4|2=$N4V$K(B
+.Fn taskqueue_create
+$B$r8F$S=P$9$?$a$N<jG[$r9T$$$^$9!#(B
 .Fn taskqueue_create ,
-the
+$B$N8F$S=P$7$N8e$G!"(B($B3d$j9~$_%O%s%I%i$NEPO?$J$I$N(B) $B$=$NB>$N=i4|2=$,(B
+$B<B9T$5$l$k$3$H$r2DG=$K$9$k$?$a$K!"$3$N%^%/%m$X$N(B
 .Va init
-argument to the macro is executed as a C statement,
-allowing any further initialisation to be performed
-(such as registering an interrupt handler etc.)
+$B0z?t$,(B C $B$N%9%F!<%H%a%s%H$H$7$F<B9T$5$l$^$9!#(B
 .Pp
-The system provides three global taskqueues,
+$B%7%9%F%`$O(B 3 $B$D$N%0%m!<%P%k$J%?%9%/%-%e!<(B
 .Va taskqueue_swi ,
 .Va taskqueue_swi_giant ,
-and
-.Va taskqueue_thread .
-The swi taskqueues are run via a software interrupt mechanism.
-The taskqueue_swi queue runs without the protection of the Giant kernel lock,
-and the taskqueue_swi_giant queue runs with the protection of the Giant
-kernel lock.
-The thread taskqueue runs in a kernel thread context, and tasks run from
-this thread do not run under the Giant kernel lock.
-If the caller wants to run under Giant, he should explicitly acquire and
-release Giant in his taskqueue handler routine.
-
-To use these queues,
-call
-.Fn taskqueue_enqueue
-with the value of the global taskqueue variable for the queue you wish to
-use (
+$B$*$h$S(B
+.Va taskqueue_thread
+$B$rDs6!$7$^$9!#(B
+swi $B%?%9%/%-%e!<$O%=%U%H%&%'%"3d$j9~$_$N;EAH$_$r2p$7$F<B9T$5$l$^$9!#(B
+taskqueue_swi $B%-%e!<$O%8%c%$%"%s%H%+!<%M%k%m%C%/$NJ]8nL5$7$G<B9T$7!"(B
+taskqueue_swi_giant $B%-%e!<$O%8%c%$%"%s%H%+!<%M%k%m%C%/$NJ]8nM-$j$G(B
+$B<B9T$7$^$9!#(B
+$B%9%l%C%I%?%9%/%-%e!<$O%+!<%M%k%9%l%C%I%3%s%F%-%9%H$G<B9T$5$l!"$3$N%9%l%C%I(B
+$B$+$i<B9T$5$l$k%?%9%/$O!"%8%c%$%"%s%H%+!<%M%k%m%C%/2=$G<B9T$5$l$^$;$s!#(B
+$B8F$S=P$7B&$,%8%c%$%"%s%H%m%C%/2=$G<B9T$7$?$$>l9g$K$O!"8F$S=P$7B&$N(B
+$B%?%9%/%-%e!<%O%s%I%i%k!<%A%s$NCf$G!"8F$S=P$7B&$,L@3N$K%8%c%$%"%s%H%m%C%/$N(B
+$B3MF@$*$h$S2rJ|$r9T$J$&$Y$-$G$9!#(B
+.Pp
+$B$3$N%-%e!<$r;HMQ$9$k$?$a$K$O!";HMQ$7$?$$%-%e!<(B (
 .Va taskqueue_swi ,
-.Va taskqueue_swi_giant ,
-or
+.Va taskqueue_swi_giant
+$B$^$?$O(B
 .Va taskqueue_thread
-).
+) $B$N$?$a$N%0%m!<%P%k%?%9%/%-%e!<JQ?t$NCM$G(B
+.Fn taskqueue_enqueue
+$B$r8F$S=P$7$^$9!#(B
 .Pp
-The software interrupt queues can be used,
-for instance, for implementing interrupt handlers which must perform a
-significant amount of processing in the handler.
-The hardware interrupt handler would perform minimal processing of the
-interrupt and then enqueue a task to finish the work.
-This reduces to a minimum
-the amount of time spent with interrupts disabled.
-.Pp
-The thread queue can be used, for instance, by interrupt level routines
-that need to call kernel functions that do things that can only be done
-from a thread context.
-(e.g., call malloc with the M_WAITOK flag.)
-.Sh HISTORY
-This interface first appeared in
-.Fx 5.0 .
-There is a similar facility called tqueue in the Linux kernel.
-.Sh AUTHORS
-This man page was written by
-.An Doug Rabson .
+$B%=%U%H%&%'%"3d$j9~$_%-%e!<$O!"Nc$($P!"%O%s%I%i$NCf$GCx$7$$NL$N=hM}$r<B9T(B
+$B$7$J$1$l$P$J$i$J$$3d$j9~$_%O%s%I%i$r<BAu$9$k$?$a$K!";HMQ$5$l$k$3$H$,2DG=$G$9!#(B
+$B%O!<%I%&%'%"3d$j9~$_%O%s%I%i$O!"$=$N3d$j9~$_$N:G>.$N=hM}$r<B9T$7!"$=$l$+$i(B
+$B:n6H$r40N;$5$;$k$?$a$K%?%9%/$r%-%e!<$KF~$l$^$9!#(B
+$B$3$l$O!"3d$j9~$_$,L58z2=$5$l$FHq$d$5$l$k;~4V$N:G>.NL$r!"=L>.$7$^$9!#(B
+.Pp
+$B%9%l%C%I%-%e!<$O!"Nc$($P!"%9%l%C%I%3%s%F%-%9%H$+$i$N$_<B9T$9$k$3$H$,2DG=$J(B
+$B2?$+$r9T$J$&%+!<%M%k4X?t$N8F$S=P$9$?$a$KI,MW$J3d$j9~$_%l%Y%k$N%k!<%A%s$K(B
+$B$h$C$F!";HMQ$5$l$k$3$H$,2DG=$G$9!#(B
+($BNc$($P!"(BM_WAITOK $B%U%i%0$rH<$C$?(B malloc $B$N8F$S=P$7$G$9!#(B)
+.Sh $BNr;K(B
+$B$3$N%$%s%?%U%'!<%9$O(B
+.Fx 5.0
+$B$G$O$8$a$FEP>l$7$^$7$?!#(B
+Linux $B%+!<%M%k$G(B tqueue $B$H8F$P$l$kF1MM$N%U%!%7%j%F%#$,$"$j$^$9!#(B
+.Sh $B:n<T(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B
+.An Doug Rabson
+$B$,=q$-$^$7$?!#(B


