• Pantelis Antoniou's avatar
    vsprintf: Add %p extension "%pOF" for device tree · ce4fecf1
    Pantelis Antoniou authored
    90% of the usage of device node's full_name is printing it out in a
    kernel message. However, storing the full path for every node is
    wasteful and redundant. With a custom format specifier, we can generate
    the full path at run-time and eventually remove the full path from every
    node.
    
    For instance typical use is:
    	pr_info("Frobbing node %s\n", node->full_name);
    
    Which can be written now as:
    	pr_info("Frobbing node %pOF\n", node);
    
    '%pO' is the base specifier to represent kobjects with '%pOF'
    representing struct device_node. Currently, struct device_node is the
    only supported type of kobject.
    
    More fine-grained control of formatting includes printing the name,
    flags, path-spec name and others, explained in the documentation entry.
    
    Originally written by Pantelis, but pretty much rewrote the core
    function using existing string/number functions. The 2 passes were
    unnecessary and have been removed. Also, updated the checkpatch.pl
    check. The unittest code was written by Grant Likely.
    Signed-off-by: default avatarPantelis Antoniou <pantelis.antoniou@konsulko.com>
    Acked-by: default avatarJoe Perches <joe@perches.com>
    Signed-off-by: default avatarRob Herring <robh@kernel.org>
    ce4fecf1
printk-formats.txt 11.2 KB