Add DocBook documentation for workqueue functions
Subsystems (2)
PATCH 1/1 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
---
author Rolf Eike Beer <[email protected]> Thu, 20 Jul 2006 11:38:50 +0200
Documentation/DocBook/kernel-api.tmpl | 3 ++ kernel/workqueue.c | 66 +++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 4 deletions(-)
Documentation/DocBook/kernel-api.tmpl +3 -0
@@ -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
kernel/workqueue.c +62 -4
116 lines not on this page · raw message
Rolf Eike Beer wrote:
[...]
kernel/workqueue.c EXPORT_SYMBOL_GPL(destroy_workqueue); · line 474
Quoted 8 lines
int fastcall
schedule_work(struct work_struct *work){kernel/workqueue.c +2
-0return queue_work (keventd_wq, work); }EXPORT_SYMBOL (schedule_work); +/** +* schedule_work - put work task in global workqueue after delay
This should read "schedule_delayed_work".
Quoted 9 lines
+ *
+ * @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 fastcallschedule_delayed_work(struct work_struct *work, unsigned long delay){
kernel/workqueue.c EXPORT_SYMBOL_GPL(destroy_workqueue); · line 489
Quoted 6 lines
kernel/workqueue.c +2
-0return queue_delayed_work (keventd_wq, work, delay); }EXPORT_SYMBOL (schedule_delayed_work); +/** +* schedule_work - queue work in global workqueue on specific CPU after delay
"schedule_delayed_work_on"
Quoted 11 lines
+ *
+ * @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.
+ */
int schedule_delayed_work_on(int cpu,
structwork_struct*work, unsigned long delay)
{
Signature · 3 lines
Stefan Richter -=====-=-==- -=== =--== http://arcgraph.de/sr/
PATCH 1/1 Add DocBook documentation for workqueue functions
[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.
---
commit 35687dd5b77d8dede736e7d622e1359f6c25b8f8
tree bbdd1cf655fb5ac9cd2a1205cd428fa0d6a21be8
parent a050dbf5ec50ebb71ebb455fac68dfd0a9e21bb6
author Rolf Eike Beer <[email protected]> Thu, 20 Jul 2006 14:19:44 +0200 committer Rolf Eike Beer <[email protected]> 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.
Documentation/DocBook/kernel-api.tmpl +3 -0
@@ -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
kernel/workqueue.c +62 -4
116 lines not on this page · raw message
Quoted 6 lines · Rolf Eike Beer
kernel/workqueue.cwas 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
Cool, thanks much.
Did you test it? There should not be an empty ("*" only) line between the function name + short description and the function parameter line(s). If you generate output for these functions, the Description section will be there 2 times (i.e., repeated), so please just delete those lines and it will be Good.
Quoted 150 lines
Signed-off-by Rolf Eike Beer <[email protected]>---
author Rolf Eike Beer <[email protected]> Thu, 20 Jul 2006 11:38:50 +0200Documentation/DocBook/kernel-api.tmpl | 3 ++ kernel/workqueue.c | 66 +++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 4 deletions(-)Documentation/DocBook/kernel-api.tmpl +3
-0@@ -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.ckernel/workqueue.c +62
-4@@ -93,9 +93,13 @@ static void __queue_work(struct cpu_workspin_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(strkthread_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_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_work - queue work in global workqueue on specific 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. +*/ int schedule_delayed_work_on (int cpu,struct work_struct *work,unsigned long delay) {
Signature · 1 line
~Randy
Quoted 11 lines · Randy Dunlap
Quoted 6 lines · Rolf Eike Beer
kernel/workqueue.cwas 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
Cool, thanks much.
Did you test it?
At least two of them.
Quoted 5 lines
There should not be an empty ("*" only) line
between the function name + short description and the function parameter line(s). If you generate output for these functions, the Description section will be there 2 times (i.e., repeated), so please just delete those lines and it will be Good.
Yes, I saw that. That's a very common problem all over the kernel. Now I see that the nano-howto says it's this way, but I've seen the other way for years. One example is vmalloc_32_user that I touched on monday.
I'll submit a version 3 of this soon. In the meantime "make mandocs" should either warn of those or handle them the right way (aka ignore the newline). If it would also warn on duplicate descriptions, at least in the same file, this would have catched my copy&waste bug in the first version also.
Eike
PATCH 1/1 Add DocBook documentation for workqueue functions
In reply to Rolf Eike Beer[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.
---
commit 4223d94a33bdb10bad3f2c0adebb7fea40ae185a
tree 48f253544107cb9a5da1b438ff96c93a5f1b8964
parent a050dbf5ec50ebb71ebb455fac68dfd0a9e21bb6
author Rolf Eike Beer <[email protected]> Thu, 20 Jul 2006 15:06:54 +0200 committer Rolf Eike Beer <[email protected]> Thu, 20 Jul 2006 15:06:54 +0200
Documentation/DocBook/kernel-api.tmpl | 3 ++ kernel/workqueue.c | 58 +++++++++++++++++++++++++++++++-- 2 files changed, 57 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.
Version 3 of patch: removed newlines between short description and parameters causing Description section to appear twice (thanks to Randy Dunlap).
Documentation/DocBook/kernel-api.tmpl +3 -0
@@ -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
kernel/workqueue.c +54 -4
107 lines not on this page · raw message