From: Rolf Eike Beer <eike-kernel@sf-tec.de>
To: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: Martin Waitz <tali@admingilde.org>,
Randy Dunlap <rdunlap@xenotime.net>,
Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org
Subject: [PATCH][kernel-doc] Add DocBook documentation for workqueue functions
Date: Thu, 20 Jul 2006 14:22:32 +0200 [thread overview]
Message-ID: <200607201422.32798.eike-kernel@sf-tec.de> (raw)
In-Reply-To: <44BF6DC5.4030708@s5r6.in-berlin.de>
[kernel-doc] Add DocBook documentation for workqueue functions
kernel/workqueue.c was omitted from generating kernel documentation. This
adds a new section "Workqueues and Kevents" and adds documentation for
some of the functions.
Some functions in this file already had DocBook-style comments, now they
finally become visible.
Signed-off-by: Rolf Eike Beer <eike-kernel@sf-tec.de>
---
commit 35687dd5b77d8dede736e7d622e1359f6c25b8f8
tree bbdd1cf655fb5ac9cd2a1205cd428fa0d6a21be8
parent a050dbf5ec50ebb71ebb455fac68dfd0a9e21bb6
author Rolf Eike Beer <eike-kernel@sf-tec.de> Thu, 20 Jul 2006 14:19:44 +0200
committer Rolf Eike Beer <beer@siso-eb-i34d.silicon-software.de> Thu, 20 Jul 2006 14:19:44 +0200
Documentation/DocBook/kernel-api.tmpl | 3 ++
kernel/workqueue.c | 66 +++++++++++++++++++++++++++++++--
2 files changed, 65 insertions(+), 4 deletions(-)
Version 2 of patch: fixed two copy&waste errors found by Stefan Richter. Also
added comment on CPU to description of schedule_delayed_work_on.
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl
index 1ae4dc0..2d0cc38 100644
--- a/Documentation/DocBook/kernel-api.tmpl
+++ b/Documentation/DocBook/kernel-api.tmpl
@@ -59,6 +59,9 @@
!Iinclude/linux/hrtimer.h
!Ekernel/hrtimer.c
</sect1>
+ <sect1><title>Workqueues and Kevents</title>
+!Ekernel/workqueue.c
+ </sect1>
<sect1><title>Internal Functions</title>
!Ikernel/exit.c
!Ikernel/signal.c
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 7fada82..f7777b8 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -93,9 +93,13 @@ static void __queue_work(struct cpu_work
spin_unlock_irqrestore(&cwq->lock, flags);
}
-/*
- * Queue work on a workqueue. Return non-zero if it was successfully
- * added.
+/**
+ * queue_work - queue work on a workqueue
+ *
+ * @wq: workqueue to use
+ * @work: work to queue
+ *
+ * Returns non-zero if it was successfully added.
*
* We queue the work to the CPU it was submitted, but there is no
* guarantee that it will be processed by that CPU.
@@ -128,6 +132,15 @@ static void delayed_work_timer_fn(unsign
__queue_work(per_cpu_ptr(wq->cpu_wq, cpu), work);
}
+/**
+ * queue_delayed_work - queue work on a workqueue after delay
+ *
+ * @wq: workqueue to use
+ * @work: work to queue
+ * @delay: number of jiffies to wait before queueing
+ *
+ * Returns non-zero if it was successfully added.
+ */
int fastcall queue_delayed_work(struct workqueue_struct *wq,
struct work_struct *work, unsigned long delay)
{
@@ -150,6 +163,16 @@ int fastcall queue_delayed_work(struct w
}
EXPORT_SYMBOL_GPL(queue_delayed_work);
+/**
+ * queue_delayed_work_on - queue work on specific CPU after delay
+ *
+ * @cpu: CPU number to execute work on
+ * @wq: workqueue to use
+ * @work: work to queue
+ * @delay: number of jiffies to wait before queueing
+ *
+ * Returns non-zero if it was successfully added.
+ */
int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
struct work_struct *work, unsigned long delay)
{
@@ -275,9 +298,11 @@ static void flush_cpu_workqueue(struct c
}
}
-/*
+/**
* flush_workqueue - ensure that any scheduled work has run to completion.
*
+ * @wq: workqueue to flush
+ *
* Forces execution of the workqueue and blocks until its completion.
* This is typically used in driver shutdown handlers.
*
@@ -400,6 +425,13 @@ static void cleanup_workqueue_thread(str
kthread_stop(p);
}
+/**
+ * destroy_workqueue - safely terminate a workqueue
+ *
+ * @wq: target workqueue
+ *
+ * Safely destroy a workqueue. All work currently pending will be done first.
+ */
void destroy_workqueue(struct workqueue_struct *wq)
{
int cpu;
@@ -425,18 +457,44 @@ EXPORT_SYMBOL_GPL(destroy_workqueue);
static struct workqueue_struct *keventd_wq;
+/**
+ * schedule_work - put work task in global workqueue
+ *
+ * @work: job to be done
+ *
+ * This puts a job in the kernel-global workqueue.
+ */
int fastcall schedule_work(struct work_struct *work)
{
return queue_work(keventd_wq, work);
}
EXPORT_SYMBOL(schedule_work);
+/**
+ * schedule_delayed_work - put work task in global workqueue after delay
+ *
+ * @work: job to be done
+ * @delay: number of jiffies to wait
+ *
+ * After waiting for a given time this puts a job in the kernel-global
+ * workqueue.
+ */
int fastcall schedule_delayed_work(struct work_struct *work, unsigned long delay)
{
return queue_delayed_work(keventd_wq, work, delay);
}
EXPORT_SYMBOL(schedule_delayed_work);
+/**
+ * schedule_delayed_work_on - queue work in global workqueue on CPU after delay
+ *
+ * @cpu: cpu to use
+ * @work: job to be done
+ * @delay: number of jiffies to wait
+ *
+ * After waiting for a given time this puts a job in the kernel-global
+ * workqueue on the specified CPU.
+ */
int schedule_delayed_work_on(int cpu,
struct work_struct *work, unsigned long delay)
{
next prev parent reply other threads:[~2006-07-20 12:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-20 9:45 [PATCH][kernel-doc] Add DocBook documentation for workqueue functions Rolf Eike Beer
2006-07-20 11:49 ` Stefan Richter
2006-07-20 12:22 ` Rolf Eike Beer [this message]
2006-07-20 12:52 ` Randy.Dunlap
2006-07-20 13:03 ` Rolf Eike Beer
2006-07-20 13:11 ` Rolf Eike Beer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200607201422.32798.eike-kernel@sf-tec.de \
--to=eike-kernel@sf-tec.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rdunlap@xenotime.net \
--cc=stefanr@s5r6.in-berlin.de \
--cc=tali@admingilde.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.