hello; This patch does the following: 1) Enhances the kernel-doc script to strip out macros from header files 2) Corrects path to videodev.c in makefile, kernel-api.tmpl and videobook.tmpl 3) Adds docbook tags to /asm-i386/atomic.h and /linux/init.h 4) Adds atomic and module calls to kernel-api.tmpl TIA; armin diff -ru ../linux-2.4.0-test8_org/Documentation/DocBook/Makefile ./Documentation/DocBook/Makefile --- ../linux-2.4.0-test8_org/Documentation/DocBook/Makefile Tue Sep 26 01:55:33 2000 +++ ./Documentation/DocBook/Makefile Tue Sep 26 02:48:40 2000 @@ -55,11 +55,11 @@ $(TOPDIR)/scripts/docgen $(TOPDIR)/arch/i386/kernel/mca.c \ <mcabook.tmpl >mcabook.sgml -videobook.sgml: videobook.tmpl $(TOPDIR)/drivers/char/videodev.c - $(TOPDIR)/scripts/docgen $(TOPDIR)/drivers/char/videodev.c \ +videobook.sgml: videobook.tmpl $(TOPDIR)/drivers/media/video/videodev.c + $(TOPDIR)/scripts/docgen $(TOPDIR)/drivers/media/video/videodev.c \ <videobook.tmpl >videobook.sgml -APISOURCES := $(TOPDIR)/drivers/char/videodev.c \ +APISOURCES := $(TOPDIR)/drivers/media/video/videodev.c \ $(TOPDIR)/arch/i386/kernel/mca.c \ $(TOPDIR)/arch/i386/kernel/mtrr.c \ $(TOPDIR)/drivers/char/misc.c \ diff -ru ../linux-2.4.0-test8_org/Documentation/DocBook/kernel-api.tmpl ./Documentation/DocBook/kernel-api.tmpl --- ../linux-2.4.0-test8_org/Documentation/DocBook/kernel-api.tmpl Tue Sep 26 01:55:33 2000 +++ ./Documentation/DocBook/kernel-api.tmpl Tue Sep 26 02:48:40 2000 @@ -34,8 +34,20 @@ </bookinfo> <toc></toc> - <chapter id="adt"> - <title>Data Types</title> + + <chapter id="Basics"> + <title>Driver Basic</title> + <sect1><title>Driver Entry and Exit points</title> +!Iinclude/linux/init.h + </sect1> + + <sect1><title>Atomics</title> +!Iinclude/asm-i386/atomic.h + </sect1> + </chapter> + + <chapter id="adt"> + <title>Data Types</title> <sect1><title>Doubly Linked Lists</title> !Iinclude/linux/list.h </sect1> @@ -141,7 +153,7 @@ <chapter id="viddev"> <title>Video4Linux</title> -!Edrivers/char/videodev.c +!Edrivers/media/video/videodev.c </chapter> <chapter id="snddev"> diff -ru ../linux-2.4.0-test8_org/Documentation/DocBook/videobook.tmpl ./Documentation/DocBook/videobook.tmpl --- ../linux-2.4.0-test8_org/Documentation/DocBook/videobook.tmpl Wed Mar 15 10:28:32 2000 +++ ./Documentation/DocBook/videobook.tmpl Tue Sep 26 02:48:40 2000 @@ -66,7 +66,7 @@ vertical blanking data interfaces are also provided. </para> </chapter> - <chapter> + <chapter id="radio"> <title>Radio Devices</title> <para> There are a wide variety of radio interfaces available for PC's, and these @@ -1657,7 +1657,7 @@ <chapter id="pubfunctions"> <title>Public Functions Provided</title> -!Edrivers/char/videodev.c +!Edrivers/media/video/videodev.c </chapter> </book> diff -ru ../linux-2.4.0-test8_org/include/asm-i386/atomic.h ./include/asm-i386/atomic.h --- ../linux-2.4.0-test8_org/include/asm-i386/atomic.h Tue Sep 26 01:56:09 2000 +++ ./include/asm-i386/atomic.h Tue Sep 26 06:09:07 2000 @@ -23,9 +23,30 @@ #define ATOMIC_INIT(i) { (i) } +/** + * atomic_read - reads variable + * @v: pointer of type atomic_t + * + * Reads the atomic value of the interger "v" + */ #define atomic_read(v) ((v)->counter) + +/** + * atomic_set - sets variable + * @v: pointer of type atomic_t + * @i: variable to + * + * Sets the atomic value of the interger "v" to "i" + */ #define atomic_set(v,i) (((v)->counter) = (i)) +/** + * atomic_add - Add interger to atomic variable + * @i: interger + * @v: pointer of type atomic_t + * + * Adds interger "i" to atomic variable pointed to by "v" + */ static __inline__ void atomic_add(int i, atomic_t *v) { __asm__ __volatile__( @@ -34,6 +55,13 @@ :"ir" (i), "m" (v->counter)); } +/** + * atomic_sub - Subtract the atomic variable + * @i: interger + * @v: pointer of type atomic_t + * + * Subtracts interger "i" from atomic variable pointed to by "v" + */ static __inline__ void atomic_sub(int i, atomic_t *v) { __asm__ __volatile__( @@ -42,6 +70,15 @@ :"ir" (i), "m" (v->counter)); } +/** + * atomic_sub_and_test - test variable then subtract + * @i: interger + * @v: pointer of type atomic_t + * + * Subtracts by interger "i" from atomic variable pointed + * to by "v" and returns true if value is 0 else false + * for all other cases + */ static __inline__ int atomic_sub_and_test(int i, atomic_t *v) { unsigned char c; @@ -53,6 +90,13 @@ return c; } +/** + * atomic_inc - Increaments atomic variable + * @v: pointer of type atomic_t + * + * Increaments by 1 the atomic value pointed + * to by "v" + */ static __inline__ void atomic_inc(atomic_t *v) { __asm__ __volatile__( @@ -61,6 +105,13 @@ :"m" (v->counter)); } +/** + * atomic_dec - Decreament the atomic variable + * @v: pointer of type atomic_t + * + * Decreament by 1 the atomic value pointed to + * by "v" + */ static __inline__ void atomic_dec(atomic_t *v) { __asm__ __volatile__( @@ -69,6 +120,14 @@ :"m" (v->counter)); } +/** + * atomic_dec_and_test - Decreament by 1 and test + * @v: pointer of type atomic_t + * + * Decreament the value pointed to by "v" by 1 and + * return true if result is 0 else false for all other + * cases + */ static __inline__ int atomic_dec_and_test(atomic_t *v) { unsigned char c; @@ -80,6 +139,14 @@ return c != 0; } +/** + * atomic_inc_and_test - Increament by 1 and test + * @v: pointer of type atomic_t + * + * Increament by 1 the atomic value pointed to by "v" + * and return true if result is 0 else false for all + * other cases + */ static __inline__ int atomic_inc_and_test(atomic_t *v) { unsigned char c; @@ -91,6 +158,15 @@ return c != 0; } +/** + * atomic_add_and_negative - Add and test for negative + * @v: pointer of type atomic_t + * @i: interger i + * + * Add intergter "i" to atomic variable pointed to by + * "v" and return true if the result is negative else + * return false when result is greater than or equall to 0 + */ static __inline__ int atomic_add_negative(int i, atomic_t *v) { unsigned char c; diff -ru ../linux-2.4.0-test8_org/include/linux/init.h ./include/linux/init.h --- ../linux-2.4.0-test8_org/include/linux/init.h Fri Sep 8 12:52:41 2000 +++ ./include/linux/init.h Tue Sep 26 02:48:45 2000 @@ -85,7 +85,27 @@ #define __FINIT .previous #define __INITDATA .section ".data.init","aw" +/** + * module_init() - Driver initialization entry point + * @x: funtion to be run at kernel boot time + * or module insertion + * + * module_init() will add the driver initialization routine in + * the __initcall.int code segment if the driver is checked as + * "y" or static else it will wrape the driver initialization + * routine with init_module which is used by insmod and + * modprobe when the driver is used as a module + */ #define module_init(x) __initcall(x); + +/** + * module_exit() - Driver exit entry point + * @x: funtion to be run at when driver is removed + * + * module_exit() will do nothing if static else it will + * wrape the driver cleanup code with cleanup_module + * when used with rmmod when the driver is a module + */ #define module_exit(x) __exitcall(x); #else diff -ru ../linux-2.4.0-test8_org/scripts/kernel-doc ./scripts/kernel-doc --- ../linux-2.4.0-test8_org/scripts/kernel-doc Wed Jul 5 12:56:01 2000 +++ ./scripts/kernel-doc Tue Sep 26 02:48:45 2000 @@ -2,6 +2,9 @@ ## Copyright (c) 1998 Michael Zucchi, All Rights Reserved ## ## Copyright (C) 2000 Tim Waugh <[EMAIL PROTECTED]> ## +## + ## +## #define enhancements by Armin Kuster <[EMAIL PROTECTED]> ## +## Copyright (c) 2000 MontaVista Software, Inc. + ## ## ## ## This software falls under the GNU General Public License. ## ## Please read the COPYING file for more information ## @@ -662,8 +665,14 @@ $prototype =~ s/^extern+ //; $prototype =~ s/^inline+ //; $prototype =~ s/^__inline__+ //; + $prototype =~ s/^#define+ //; #ak added - if ($prototype =~ m/^()([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || + if ($prototype =~ m/^()([a-zA-Z0-9_~:]+)\s*\(([^\(]*)\)/ || + $prototype =~ m/^(\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\(]*)\)/ || + $prototype =~ m/^(\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\(]*)\)/ || + $prototype =~ m/^(\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\(]*)\)/ || + $prototype =~ m/^(\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\(]*)\)/ || + $prototype =~ m/^()([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || $prototype =~ m/^(\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || $prototype =~ m/^(\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || $prototype =~ m/^(\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\{]*)\)/ || @@ -876,7 +885,7 @@ elsif (/([^\{]*)/) { $prototype .= $1; } - if (/\{/) { + if (/\{/ || /\#/) { # added for #define AK $prototype =~ s@/\*.*?\*/@@gos; # strip comments. $prototype =~ s@[\r\n]+@ @gos; # strip newlines/cr's. $prototype =~ s@^ +@@gos; # strip leading spaces - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] Please read the FAQ at http://www.tux.org/lkml/