31 Mar, 2011

1 commit


07 Jan, 2011

1 commit

  • Move 'main' code vs. subroutines around so that they are not so
    intermixed, for better readability/understanding (relative to Perl).
    It was messy to follow the primary flow of code execution with the
    code being mixed. Now the code begins with data initialization,
    followed by all subroutines, then ends with the main code execution.

    This is almost totally source code movement, with a few changes as
    needed for forward declarations.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

19 Nov, 2010

1 commit

  • scripts/kernel-doc was leaving unescaped '', and '&' in
    generated xml output for structs. This causes xml parser errors.
    Convert these characters to "<", ">", and "&" as needed
    to prevent errors.

    Most of the conversion was already done; complete it just before
    output.

    Documentation/DocBook/device-drivers.xml:41883: parser error : StartTag: invalid element name
    #define INPUT_KEYMAP_BY_INDEX (1 << 0)

    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

12 Sep, 2010

2 commits

  • When you don't use !E or !I but only !F, then it's very easy to miss
    including some functions, structs etc. in documentation. To help
    finding which ones were missed, allow printing out the unused ones as
    warnings.

    For example, using this on mac80211 yields a lot of warnings like this:

    Warning: didn't use docs for DOC: mac80211 workqueue
    Warning: didn't use docs for ieee80211_max_queues
    Warning: didn't use docs for ieee80211_bss_change
    Warning: didn't use docs for ieee80211_bss_conf

    when generating the documentation for it.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johannes Berg
     
  • There are valid attributes that could have upper case letters, but we
    still want to remove, like for example
    __attribute__((aligned(NETDEV_ALIGN)))
    as encountered in the wireless code.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johannes Berg
     

11 Aug, 2010

1 commit

  • Fix mtd/nand_base.c kernel-doc warnings and typos.

    Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'mtd'
    Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'ofs'
    Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'len'
    Warning(drivers/mtd/nand/nand_base.c:893): No description found for parameter 'invert'
    Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'mtd'
    Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'ofs'
    Warning(drivers/mtd/nand/nand_base.c:930): No description found for parameter 'len'
    Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'mtd'
    Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'ofs'
    Warning(drivers/mtd/nand/nand_base.c:987): No description found for parameter 'len'
    Warning(drivers/mtd/nand/nand_base.c:2087): No description found for parameter 'len'

    Signed-off-by: Randy Dunlap
    Cc: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

25 Mar, 2010

2 commits

  • Fix a fatal error in scripts/kernel-doc when a function signature uses
    __init_or_module (just ignore that string):

    Error(drivers/base/platform.c:568): cannot understand prototype: 'struct platform_device * __init_or_module platform_create_bundle(struct platform_driver *driver, int (*probe)(struct platform_device *), struct resource *res, unsigned int n_res, const void *data, size_t size) '

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • scripts/kernel-doc erroneously says:

    Warning(include/linux/skbuff.h:410): Excess struct/union/enum/typedef member 'cb' description in 'sk_buff'

    on this line in struct sk_buff:
    char cb[48] __aligned(8);

    due to treating the last field as the struct member name, so teach
    kernel-doc to ignore __aligned(x) in structs.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

13 Mar, 2010

1 commit

  • scripts/kernel-doc mishandles a function that has a multi-line function
    short description and no function parameters. The observed problem was
    from drivers/scsi/scsi_netlink.c:

    /**
    * scsi_netlink_init - Called by SCSI subsystem to intialize
    * the SCSI transport netlink interface
    *
    **/

    kernel-doc treated the " * " line as a Description: section with only a
    newline character in the Description contents. This caused
    output_highlight() to complain: "output_highlight got called with no
    args?", plus produce a perl call stack backtrace.

    The fix is just to ignore Description sections if they only contain "\n".

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

27 Feb, 2010

2 commits

  • I also found the -filelist option, but apparently the implementation
    is broken, and it was broken from the very first git commit.
    For the -filelist option I suggest the removal (I wasn't able to find
    any users of it, moreover it's not even listed in the
    usage() output, so presumably nobody knows about it).

    Signed-off-by: Ilya Dryomov
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Ilya Dryomov
     
  • The problem is that $. keeps track of the current record number (which
    is line number by default). But if you pass it multiple files, it does
    not wrap at the end of file, and therefore contains the *total* number
    of processed lines.
    I suppose we can fix line numbering by introducing a simple assignment
    $. = 1
    before processing every new file.

    Signed-off-by: Ilya Dryomov
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Ilya Dryomov
     

02 Dec, 2009

1 commit

  • The introduction of the new 'DECLARE_EVENT_CLASS()' obviates the
    need for the 'TRACE_EVENT()' macro in some cases. Thus, docbook
    style comments that used to live with 'TRACE_EVENT()' are now
    moved to 'DEFINE_EVENT()'. Thus, we need to make the docbook
    system understand the new 'DEFINE_EVENT()' macro. In addition
    I've tried to futureproof the patch, by also adding support for
    'DEFINE_SINGLE_EVENT()', since there has been discussion about
    renaming: TRACE_EVENT() -> DEFINE_SINGLE_EVENT().

    Without this patch the tracepoint docbook fails to build.

    I've verified that this patch correctly builds the tracepoint
    docbook which currently covers signals, and irqs.

    Changes in v2:
    - properly indent perl 'if' statements

    Signed-off-by: Jason Baron
    Acked-by: Steven Rostedt
    Acked-by: Randy Dunlap
    Cc: William Cohen
    Cc: Frederic Weisbecker
    Cc: Mathieu Desnoyers
    Cc: Masami Hiramatsu
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jason Baron
     

19 Sep, 2009

1 commit

  • Allow the short description after symbol name and dash in a kernel-doc
    comment to span multiple lines, e.g. like this:

    /**
    * unmap_mapping_range - unmap the portion of all mmaps in the
    * specified address_space corresponding to the specified
    * page range in the underlying file.
    * @mapping: the address space containing mmaps to be unmapped.
    * ...
    */

    The short description ends with a parameter description, an empty line
    or the end of the comment block.

    Signed-off-by: Johannes Weiner
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     

02 Jul, 2009

1 commit


20 Jun, 2009

2 commits

  • Fix function actual parameter vs. kernel-doc description matching
    so that a warning is not printed when it should not be:

    Warning(include/linux/etherdevice.h:199): Excess function parameter 'addr' description in 'is_etherdev_addr'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     
  • Teach kernel-doc to ignore kmemcheck_bitfield_{begin,end} sugar
    so that it won't generate warnings like this:

    Warning(include/net/sock.h:297): No description found for parameter 'kmemcheck_bitfield_begin(flags)'
    Warning(include/net/sock.h:297): No description found for parameter 'kmemcheck_bitfield_end(flags)'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     

15 Jun, 2009

1 commit

  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (53 commits)
    .gitignore: ignore *.lzma files
    kbuild: add generic --set-str option to scripts/config
    kbuild: simplify argument loop in scripts/config
    kbuild: handle non-existing options in scripts/config
    kallsyms: generalize text region handling
    kallsyms: support kernel symbols in Blackfin on-chip memory
    documentation: make version fix
    kbuild: fix a compile warning
    gitignore: Add GNU GLOBAL files to top .gitignore
    kbuild: fix delay in setlocalversion on readonly source
    README: fix misleading pointer to the defconf directory
    vmlinux.lds.h update
    kernel-doc: cleanup perl script
    Improve vmlinux.lds.h support for arch specific linker scripts
    kbuild: fix headers_exports with boolean expression
    kbuild/headers_check: refine extern check
    kbuild: fix "Argument list too long" error for "make headers_check",
    ignore *.patch files
    Remove bashisms from scripts
    menu: fix embedded menu presentation
    ...

    Linus Torvalds
     

10 Jun, 2009

1 commit

  • Various cleanups of scripts/kernel-doc:
    - don't use **/ as an ending kernel-doc block since it's not preferred;
    - typos/spellos
    - add whitespace around ==, after comma, & around . operator;

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     

07 May, 2009

1 commit


03 May, 2009

1 commit

  • scripts/kernel-doc can (incorrectly) delete struct members that are
    surrounded by /* ... */ /* ... */ if there is a /*
    private: */ comment in there somewhere also.

    Fix that by making the "/* private:" only allow whitespace between /* and
    "private:", not anything/everything in the world.

    This fixes some erroneous kernel-doc warnings that popped up while
    processing include/linux/usb/composite.h.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

01 May, 2009

1 commit

  • Add support to kernel-doc for tracepoint comments above TRACE_EVENT()
    macro definitions. Paves the way for tracepoint docbook.

    [ Impact: extend DocBook infrastructure ]

    Signed-off-by: Jason Baron
    Acked-by: Randy Dunlap
    Cc: akpm@linux-foundation.org
    Cc: rostedt@goodmis.org
    Cc: fweisbec@gmail.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: wcohen@redhat.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jason Baron
     

12 Feb, 2009

1 commit

  • Fix kernel-doc processing of SYSCALL wrappers.

    The SYSCALL wrapper patches played havoc with kernel-doc for
    syscalls. Syscalls that were scanned for DocBook processing
    reported warnings like this one, for sys_tgkill:

    Warning(kernel/signal.c:2285): No description found for parameter 'tgkill'
    Warning(kernel/signal.c:2285): No description found for parameter 'pid_t'
    Warning(kernel/signal.c:2285): No description found for parameter 'int'

    because the macro parameters all "look like" function parameters,
    although they are not:

    /**
    * sys_tgkill - send signal to one specific thread
    * @tgid: the thread group ID of the thread
    * @pid: the PID of the thread
    * @sig: signal to be sent
    *
    * This syscall also checks the @tgid and returns -ESRCH even if the PID
    * exists but it's not belonging to the target process anymore. This
    * method solves the problem of threads exiting and PIDs getting reused.
    */
    SYSCALL_DEFINE3(tgkill, pid_t, tgid, pid_t, pid, int, sig)
    {
    ...

    This patch special-cases the handling SYSCALL_DEFINE* function
    prototypes by expanding them to
    long sys_foobar(type1 arg1, type1 arg2, ...)

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

20 Dec, 2008

1 commit

  • Add functionality to check for function parameters or structure (or
    union/typedef/enum) field members that are described in kernel-doc but
    are not part of the expected (declared) parameters or structure.
    These generate warnings that are called "Excess" descriptions.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     

02 Dec, 2008

1 commit

  • The method for listing varargs in kernel-doc notation is:
    * @...: these arguments are printed by the @fmt argument

    but scripts/kernel-doc is confused: it always lists varargs as:
    ... variable arguments
    and ignores the @...: line's description, but then prints that
    line after the list of function parameters as though it's
    not part of the function parameters.

    This patch makes kernel-doc print the supplied @... description if it is
    present; otherwise a boilerplate "variable arguments" is printed.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

27 Oct, 2008

1 commit


23 Sep, 2008

1 commit

  • Struct members may be marked as private by using
    /* private: */
    before them, as noted in Documentation/kernel-doc-nano-HOWTO.txt

    Fix kernel-doc to handle structs whose members are all private;
    otherwise invalid XML is generated:

    xmlto: input does not validate (status 3)
    linux-2.6.27-rc6-git4/Documentation/DocBook/debugobjects.xml:146: element variablelist: validity error : Element variablelist content does not follow the DTD, expecting ((title , titleabbrev?)? , varlistentry+), got ()
    Document linux-2.6.27-rc6-git4/Documentation/DocBook/debugobjects.xml does not validate
    make[1]: *** [Documentation/DocBook/debugobjects.html] Error 3

    Signed-off-by: Randy Dunlap
    Reported-by: Roland McGrath
    Cc: Roland McGrath
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

06 Aug, 2008

1 commit

  • Fix handling of nested structs or unions. The regex to strip (eliminate)
    nested structs or unions was limited to only 0 or 1 matches. This can
    cause an uneven number of left/right braces to be stripped, which causes
    this:

    Warning(linux-2.6.27-rc1-git2//include/net/mac80211.h:336): No description found for parameter '}'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

26 Jul, 2008

1 commit

  • Handle __init in functions with kernel-doc notation by stripping the
    __init away from the output doc. This is already being done for
    "__devinit". This patch fixes these kernel-doc error/aborts:

    Error(linux-next-20080619//drivers/usb/gadget/config.c:132): cannot understand prototype: 'struct usb_descriptor_header **__init usb_copy_descriptors(struct usb_descriptor_header **src) '
    Error(linux-next-20080619//drivers/usb/gadget/config.c:182): cannot understand prototype: 'struct usb_endpoint_descriptor *__init usb_find_endpoint( struct usb_descriptor_header **src, struct usb_descriptor_header **copy, struct usb_endpoint_descriptor *match ) '

    Signed-off-by: Randy Dunlap
    Cc: David Brownell
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     

20 May, 2008

1 commit

  • Allow for unnamed bit-fields and skip them instead of printing an
    erroneous warning message for them, such as:

    Warning(include/asm-s390/cio.h:103): No description found for parameter 'u32'

    which contains:

    struct tm_scsw {
    u32 :1;

    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Randy Dunlap
     

28 Apr, 2008

2 commits

  • Print a warning when a kernel-doc comment block ends with text on the same
    line as the ending comment characters, e.g.:

    * this text is lost. */

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • I saw this problem recently. With this kernel-doc:

    * Note: some important info
    *
    * Note: other important info

    kernel-doc uses the "section name" (preceding the ':', like "Note") as a hash
    key for storing the descriptive text ("blah important info"). It is (was)
    possible to have duplicate (colliding) section names, without any kind of
    warning or error.

    kernel-doc happily used the latter descriptive text for all instances of
    printing the descriptive text and the former important info
    was lost.

    One way to "fix" this is to modify the kernel-doc comments, e.g.:

    * Note1: foo bar
    *
    * Note.2: blah zay

    For now, kernel-doc will signal an error when it sees colliding section names
    like this.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

14 Mar, 2008

1 commit

  • Honor the environment variable "KBUILD_VERBOSE=1" (as set by make V=1) to
    enable verbose mode in scripts/kernel-doc. Useful for getting more info and
    warnings from kernel-doc.

    Signed-off-by: Randy Dunlap
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

24 Feb, 2008

1 commit

  • When running "make htmldocs" I'm seeing some non-fatal perl errors caused
    by trying to parse the callback function definitions in blk-core.c.

    The errors are "Use of uninitialized value in concatenation (.)..."
    in combination with:
    Warning(linux-2.6.25-rc2/block/blk-core.c:1877): No description found for parameter ''

    The function pointers are defined without a * i.e.
    int (drv_callback)(struct request *)

    The compiler is happy with them, but kernel-doc isn't.

    This patch teaches create_parameterlist in kernel-doc to parse this type of
    function pointer definition, but is it the right way to fix the problem ?
    The problem only seems to occur in blk-core.c.

    However with the patch applied, kernel-doc finds the correct parameter
    description for the callback in blk_end_request_callback, which is doesn't
    normally.

    I thought it would be a bit odd to change to code to use the more normal
    form of function pointers just to get the documentation to work, so I fixed
    kernel-doc instead - even though this is teaching it to understand code
    that might go away (The comment for blk_end_request_callback says that it
    should not be used and will removed at some point).

    Signed-off-by: Richard Kennedy
    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Kennedy
     

15 Feb, 2008

1 commit

  • fastcall is gone from the tree, no need to adjust the function prototypes
    anymore for this.

    Signed-off-by: Harvey Harrison
    Acked-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     

08 Feb, 2008

3 commits

  • Make kernel-doc warn when a function/struct/union/typedef does not contain
    a properly formatted short description, such as:
    * scsi_devinfo: set up the dynamic device list
    or
    * scsi_devinfo -

    This warning is only generated when verbose (-v) mode is used.

    Also explain the -v command line option in the -h output.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Prevent duplicate output of a Description: section when there is a "blank"
    ("*") line between the initial function name/description line and the
    "Description:" header.

    Test case: drivers/scsi/scsi_devinfo.c::scsi_init_devinfo().

    Rob Landley hit this while he was producing SCSI kernel-doc.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Fix kernel-doc function prototype parsing which was exposed by vunmap() by
    allowing more than one '*' before the function name.

    Error(linux-2.6.24-mm1//mm/vmalloc.c:438): cannot understand prototype: 'struct page **vunmap(const void *addr) '

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

29 Jan, 2008

3 commits

  • This flag is necessary for the next patch for docproc to output
    only the functions and not DOC: sections when a function list
    is requested.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Johannes Berg
     
  • Currently, DOC: sections are always output even if only a single
    function is requested, fix this and also make it possible to just
    output a single DOC: section by giving its title as the function
    name to output.

    Also fixes docbook XML well-formedness for sections with examples.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Johannes Berg
     
  • The kernel-doc script triggers a perl warning when invoked
    without KERNELVERSION in the environment, rather make it use
    the string "unknown kernel version" instead.

    Signed-off-by: Johannes Berg
    Signed-off-by: Randy Dunlap
    Signed-off-by: Sam Ravnborg

    Johannes Berg