qemu-e2k/scripts
Markus Armbruster 2dbc4ebc17 scripts: New clean-header-guards.pl
The conventional way to ensure a header can be included multiple times
is to bracket it like this:

    #ifndef HEADER_NAME_H
    #define HEADER_NAME_H
    ...
    #endif

where HEADER_NAME_H is a symbol unique to this header.

The endif may be optionally decorated like this:

    #endif /* HEADER_NAME_H */

Unconventional ways present in our code:

* Identifiers reserved for any use:
    #define _FILEOP_H

* Lowercase (bad idea for object-like macros):
    #define __linux_video_vga_h__

* Roundabout ways to say the same thing (and hide from grep):
    #if !defined(__PPC_MAC_H__)
    #endif /* !defined(__PPC_MAC_H__) */

* Redundant values:
    #define HW_ALPHA_H 1

* Funny redundant values:
    # define PXA_H                 "pxa.h"

* Decorations with bangs:

    #endif /* !QEMU_ARM_GIC_INTERNAL_H */

  The negation actually makes sense, but almost all our header guard
  #endif decorations don't negate.

* Useless decorations:

   #endif  /* audio.h */

Header guards are not the place to show off creativity.  This script
normalizes them to the conventional way, and cleans up whitespace
while there.  It warns when it renames guard symbols, and explains how
to find occurences of these symbols that may have to be updated
manually.

Another issue is use of the same guard symbol in multiple headers.
That's okay only for headers that cannot be used together, such as the
*-user/*/target_syscall.h.  This script can't tell, so it warns when
it sees a reuse.

The script also warns when preprocessing a header with its guard
symbol defined produces anything but whitespace.

The next commits will put the script to use.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
2016-07-12 16:19:16 +02:00
..
coccinelle coccinelle: Remove unnecessary variables for function return value 2016-06-20 16:38:13 +02:00
kvm
qemu-guest-agent
qemugdb
qmp
tracetool
analyse-9p-simpletrace.py
analyze-inclusions
analyze-migration.py
check-qerror.sh
checkpatch.pl checkpatch: There is no qemu_strtod() 2016-06-30 15:24:36 +02:00
clean-header-guards.pl scripts: New clean-header-guards.pl 2016-07-12 16:19:16 +02:00
clean-includes
cleanup-trace-events.pl
cocci-macro-file.h
coverity-model.c
create_config
disas-objdump.pl
dump-guest-memory.py
extract-vsssdk-headers
feature_to_c.sh
get_maintainer.pl
gtester-cat
hxtool
make_device_config.sh
make-release
ordereddict.py
qapi-commands.py qapi: Add new visit_complete() function 2016-07-06 10:52:04 +02:00
qapi-event.py qapi: Add new visit_complete() function 2016-07-06 10:52:04 +02:00
qapi-introspect.py
qapi-types.py qapi: Add new visit_free() function 2016-07-06 10:52:04 +02:00
qapi-visit.py qapi: Add parameter to visit_end_* 2016-07-06 10:52:04 +02:00
qapi.py
qemu-binfmt-conf.sh
qemu-gdb.py
qtest.py
refresh-pxe-roms.sh
shaderinclude.pl
signrom.py
simpletrace.py
switch-timer-api
texi2pod.pl
tracetool.py
update-linux-headers.sh
vmstate-static-checker.py vmstate-static-checker: fix size mismatch detection in unused fields 2016-06-17 18:24:33 +05:30