Catch up to the changes to the kthread API.

This commit is contained in:
jhb 2000-12-15 20:39:35 +00:00
parent 82f46e4827
commit 656396e81a
2 changed files with 46 additions and 31 deletions

View File

@ -85,10 +85,10 @@ MLINKS+=devstat.9 devstat_end_transaction.9
MLINKS+=fetch.9 fubyte.9 fetch.9 fuswintr.9 fetch.9 fusword.9 fetch.9 fuword.9
MLINKS+=ifnet.9 if_data.9 ifnet.9 ifaddr.9 ifnet.9 ifqueue.9
MLINKS+=kernacc.9 useracc.9
MLINKS+=kthread.9 kproc_start.9 kthread.9 kproc_suspend_loop.9
MLINKS+=kthread.9 kproc_start.9 kthread.9 kproc_shutdown.9
MLINKS+=kthread.9 kthread_create.9 kthread.9 kthread_exit.9
MLINKS+=kthread.9 resume_kproc.9 kthread.9 shutdown_kproc.9
MLINKS+=kthread.9 suspend_kproc.9
MLINKS+=kthread.9 kthread_resume.9 kthread.9 kthread_suspend.9
MLINKS+=kthread.9 kthread_suspend_check.9
MLINKS+=make_dev.9 destroy_dev.9
MLINKS+=malloc.9 FREE.9 malloc.9 MALLOC.9 malloc.9 free.9
MLINKS+=mi_switch.9 cpu_switch.9

View File

@ -30,29 +30,29 @@
.Os
.Sh NAME
.Nm kproc_start ,
.Nm kproc_suspend_loop ,
.Nm kproc_shutdown ,
.Nm kthread_create ,
.Nm kthread_exit ,
.Nm resume_kproc ,
.Nm shutdown_kproc ,
.Nm suspend_kproc
.Nm kthread_resume ,
.Nm kthread_suspend ,
.Nm kthread_suspend_check
.Nd kernel threads
.Sh SYNOPSIS
.Fd #include <sys/kthread.h>
.Ft void
.Fn kproc_start "const void *udata"
.Ft void
.Fn kproc_suspend_loop "struct proc *p"
.Fn kproc_shutdown "void *arg" "int howto"
.Ft int
.Fn kthread_create "void (*func)(void *)" "void *arg" "struct proc **newpp" "int flags" "const char *fmt" "..."
.Ft void
.Fn kthread_exit "int ecode"
.Ft int
.Fn resume_kproc "struct proc *p"
.Ft void
.Fn shutdown_kproc "void *arg" "int howto"
.Fn kthread_resume "struct proc *p"
.Ft int
.Fn suspend_kproc "struct proc *p" "int timo"
.Fn kthread_suspend "struct proc *p" "int timo"
.Ft void
.Fn kthread_suspend_check "struct proc *p"
.Sh DESCRIPTION
.Pp
The function
@ -140,14 +140,14 @@ The
argument specifies the exit status of the thread.
.Pp
The
.Fn kproc_suspend_loop ,
.Fn resume_kproc ,
.Fn kthread_resume ,
.Fn kthread_suspend ,
and
.Fn suspend_kproc
.Fn kthread_suspend_check
functions are used to suspend and resume a kernel thread.
During the main loop of its execution, a kernel thread that wishes to allow
itself to be suspended should call
.Fn kproc_suspend_loop
.Fn kthread_suspend_check
passing in
.Va curproc
as the only argument.
@ -165,25 +165,25 @@ argument points to the
.Li struct proc
of the kernel thread to suspend or resume.
For
.Fn suspend_kproc ,
.Fn kthread_suspend ,
the
.Fa timo
argument specifies a timeout to wait for the kernel thread to acknowledge the
suspend request and suspend itself.
.Pp
The
.Fn shutdown_kproc
.Fn kproc_shutdown
function is meant to be registered as a shutdown event for kernel threads that
need to be suspended voluntarily during system shutdown so as not to interfere
with system shutdown activities.
The actual suspension of the kernel thread is done with
.Fn suspend_kproc .
.Fn kthread_suspend .
.Sh RETURN VALUES
The
.Fn kthread_create ,
.Fn resume_kproc ,
.Fn kthread_resume ,
and
.Fn suspend_kproc
.Fn kthread_suspend
functions return zero on success and non-zero on failure.
Upon failure, the global variable
.Va errno
@ -193,9 +193,9 @@ This example demonstrates the use of a
.Li struct kproc_desc
and the functions
.Fn kproc_start ,
.Fn shutdown_kproc,
.Fn kproc_shutdown ,
and
.Fn kproc_suspend_loop
.Fn kthread_suspend_check
to run the
.Dq bufdaemon
process.
@ -217,20 +217,20 @@ buf_daemon()
/*
* This process needs to be suspended prior to shutdown sync.
*/
EVENTHANDLER_REGISTER(shutdown_pre_sync, shutdown_kproc,
EVENTHANDLER_REGISTER(shutdown_pre_sync, kproc_shutdown,
bufdaemonproc, SHUTDOWN_PRI_LAST);
...
for (;;) {
kproc_suspend_loop(bufdaemonproc);
kthread_suspend_check(bufdaemonproc);
...
}
}
.Ed
.Sh ERRORS
The
.Fn resume_kproc
.Fn kthread_resume
and
.Fn suspend_kproc
.Fn kthread_suspend
functions will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
@ -265,15 +265,30 @@ The
function first appeared in
.Fx 2.2 .
The
.Fn kproc_suspend_loop ,
.Fn kproc_shutdown ,
.Fn kthread_create ,
.Fn kthread_exit ,
.Fn kthread_resume ,
.Fn kthread_suspend ,
and
.Fn kthread_suspend_check
functions were introducted in
.Fx 4.0 .
Prior to
.Fx 5.0 ,
the
.Fn kproc_shutdown ,
.Fn kthread_resume ,
.Fn kthread_suspend ,
and
.Fn kthread_suspend_check
functions were named
.Fn shutdown_kproc ,
.Fn resume_kproc ,
.Fn shutdown_kproc ,
and
.Fn suspend_kproc
functions were introducted in
.Fx 4.0 .
.Fn kproc_suspend_loop ,
respectively.
.Sh BUGS
If a kernel thread exits its main function (specified as the
.Fa func