|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.13] xen: Drop bogus BOOLEAN definitions, TRUE and FALSE
On Mon, 11 Nov 2019, Andrew Cooper wrote:
> actypes.h and efidef.h both define BOOLEAN as unsigned char, which is buggy in
> combination with logic such as "BOOLEAN b = (a & 0x100);" Redefine BOOLEAN as
> bool instead, which doesn't truncate.
>
> Both also define TRUE and FALSE, with actypes.h being extra rude and replacing
> whatever exists thus far. Drop all uses of TRUE and FALSE, replacing them
> with true/false respectively, and drop the declarations.
>
> Also drop the pointless conditional declaration of NULL while cleaning this
> up.
>
> Finally, correct all the comments which which were found by sed.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Tested-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> ---
> CC: Jan Beulich <JBeulich@xxxxxxxx>
> CC: Wei Liu <wl@xxxxxxx>
> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> CC: Julien Grall <julien@xxxxxxx>
> CC: Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
> CC: Juergen Gross <jgross@xxxxxxxx>
>
> This is based on top of Rogers patch adjusting part of io_apic.c
>
> Compile tested on ARM, fully texted on x86.
>
> RFC for 4.13 - I thought I'd got all of the boolean truncation bugs back in
> 4.8 but clearly not...
> ---
> xen/arch/x86/io_apic.c | 12 ++++++------
> xen/arch/x86/x86_64/mm.c | 2 +-
> xen/common/kexec.c | 6 +++---
> xen/common/timer.c | 4 ++--
> xen/drivers/acpi/tables/tbfadt.c | 4 ++--
> xen/drivers/passthrough/vtd/utils.c | 2 +-
> xen/include/acpi/acconfig.h | 2 +-
> xen/include/acpi/actypes.h | 20 ++------------------
> xen/include/asm-arm/arm64/efibind.h | 2 +-
> xen/include/asm-arm/regs.h | 2 +-
> xen/include/asm-x86/regs.h | 2 +-
> xen/include/asm-x86/x86_64/efibind.h | 2 +-
> xen/include/efi/efidef.h | 11 +----------
> xen/include/xen/mm.h | 2 +-
> xen/include/xen/sched.h | 2 +-
> 15 files changed, 25 insertions(+), 50 deletions(-)
>
> diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c
> index 732b57995c..6517eb5ae9 100644
> --- a/xen/arch/x86/io_apic.c
> +++ b/xen/arch/x86/io_apic.c
> @@ -285,7 +285,7 @@ static void __io_apic_eoi(unsigned int apic, unsigned int
> vector, unsigned int p
> {
> /* If vector is unknown, read it from the IO-APIC */
> if ( vector == IRQ_VECTOR_UNASSIGNED )
> - vector = __ioapic_read_entry(apic, pin, TRUE).vector;
> + vector = __ioapic_read_entry(apic, pin, true).vector;
>
> *(IO_APIC_BASE(apic)+16) = vector;
> }
> @@ -296,28 +296,28 @@ static void __io_apic_eoi(unsigned int apic, unsigned
> int vector, unsigned int p
> struct IO_APIC_route_entry entry;
> bool need_to_unmask = false;
>
> - entry = __ioapic_read_entry(apic, pin, TRUE);
> + entry = __ioapic_read_entry(apic, pin, true);
>
> if ( ! entry.mask )
> {
> /* If entry is not currently masked, mask it and make
> * a note to unmask it later */
> entry.mask = 1;
> - __ioapic_write_entry(apic, pin, TRUE, entry);
> + __ioapic_write_entry(apic, pin, true, entry);
> need_to_unmask = true;
> }
>
> /* Flip the trigger mode to edge and back */
> entry.trigger = 0;
> - __ioapic_write_entry(apic, pin, TRUE, entry);
> + __ioapic_write_entry(apic, pin, true, entry);
> entry.trigger = 1;
> - __ioapic_write_entry(apic, pin, TRUE, entry);
> + __ioapic_write_entry(apic, pin, true, entry);
>
> if ( need_to_unmask )
> {
> /* Unmask if neccesary */
> entry.mask = 0;
> - __ioapic_write_entry(apic, pin, TRUE, entry);
> + __ioapic_write_entry(apic, pin, true, entry);
> }
> }
> }
> diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
> index fa55f3474e..e9d7b80caf 100644
> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -1077,7 +1077,7 @@ long do_set_segment_base(unsigned int which, unsigned
> long base)
> }
>
>
> -/* Returns TRUE if given descriptor is valid for GDT or LDT. */
> +/* Returns true if given descriptor is valid for GDT or LDT. */
> int check_descriptor(const struct domain *dom, seg_desc_t *d)
> {
> u32 a = d->a, b = d->b;
> diff --git a/xen/common/kexec.c b/xen/common/kexec.c
> index a262cc5a18..8e7540f605 100644
> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -33,7 +33,7 @@
> #include <compat/kexec.h>
> #endif
>
> -bool_t kexecing = FALSE;
> +bool kexecing = false;
>
> /* Memory regions to store the per cpu register state etc. on a crash. */
> typedef struct { Elf_Note * start; size_t size; } crash_note_range_t;
> @@ -379,7 +379,7 @@ void kexec_crash(void)
> if ( !test_bit(KEXEC_IMAGE_CRASH_BASE + pos, &kexec_flags) )
> return;
>
> - kexecing = TRUE;
> + kexecing = true;
>
> if ( kexec_common_shutdown() != 0 )
> return;
> @@ -395,7 +395,7 @@ static long kexec_reboot(void *_image)
> {
> struct kexec_image *image = _image;
>
> - kexecing = TRUE;
> + kexecing = true;
>
> kexec_common_shutdown();
> machine_reboot_kexec(image);
> diff --git a/xen/common/timer.c b/xen/common/timer.c
> index 645206a989..29f8f40f88 100644
> --- a/xen/common/timer.c
> +++ b/xen/common/timer.c
> @@ -100,7 +100,7 @@ static void up_heap(struct timer **heap, unsigned int pos)
> }
>
>
> -/* Delete @t from @heap. Return TRUE if new top of heap. */
> +/* Delete @t from @heap. Return true if new top of heap. */
> static int remove_from_heap(struct timer **heap, struct timer *t)
> {
> unsigned int sz = heap_metadata(heap)->size;
> @@ -127,7 +127,7 @@ static int remove_from_heap(struct timer **heap, struct
> timer *t)
> }
>
>
> -/* Add new entry @t to @heap. Return TRUE if new top of heap. */
> +/* Add new entry @t to @heap. Return true if new top of heap. */
> static int add_to_heap(struct timer **heap, struct timer *t)
> {
> unsigned int sz = heap_metadata(heap)->size;
> diff --git a/xen/drivers/acpi/tables/tbfadt.c
> b/xen/drivers/acpi/tables/tbfadt.c
> index f11fd5a900..6f30aede9c 100644
> --- a/xen/drivers/acpi/tables/tbfadt.c
> +++ b/xen/drivers/acpi/tables/tbfadt.c
> @@ -250,9 +250,9 @@ void __init acpi_tb_create_local_fadt(struct
> acpi_table_header *table, u32 lengt
>
> /* Take a copy of the Hardware Reduced flag */
>
> - acpi_gbl_reduced_hardware = FALSE;
> + acpi_gbl_reduced_hardware = false;
> if (acpi_gbl_FADT.flags & ACPI_FADT_HW_REDUCED) {
> - acpi_gbl_reduced_hardware = TRUE;
> + acpi_gbl_reduced_hardware = true;
> }
>
> /*
> diff --git a/xen/drivers/passthrough/vtd/utils.c
> b/xen/drivers/passthrough/vtd/utils.c
> index 7552dd8e0c..4531581846 100644
> --- a/xen/drivers/passthrough/vtd/utils.c
> +++ b/xen/drivers/passthrough/vtd/utils.c
> @@ -281,7 +281,7 @@ void vtd_dump_iommu_info(unsigned char key)
> for ( i = 0; i <= reg_01.bits.entries; i++ )
> {
> struct IO_APIC_route_entry rte =
> - __ioapic_read_entry(apic, i, TRUE);
> + __ioapic_read_entry(apic, i, true);
>
> remap = (struct IO_APIC_route_remap_entry *) &rte;
> if ( !remap->format )
> diff --git a/xen/include/acpi/acconfig.h b/xen/include/acpi/acconfig.h
> index 422f29c06c..f0330fb990 100644
> --- a/xen/include/acpi/acconfig.h
> +++ b/xen/include/acpi/acconfig.h
> @@ -87,7 +87,7 @@
> * Should the subsystem abort the loading of an ACPI table if the
> * table checksum is incorrect?
> */
> -#define ACPI_CHECKSUM_ABORT FALSE
> +#define ACPI_CHECKSUM_ABORT false
>
>
> /******************************************************************************
> *
> diff --git a/xen/include/acpi/actypes.h b/xen/include/acpi/actypes.h
> index f3e95abc3a..4aad815f7b 100644
> --- a/xen/include/acpi/actypes.h
> +++ b/xen/include/acpi/actypes.h
> @@ -124,7 +124,7 @@
> *
>
> ******************************************************************************/
>
> -typedef unsigned char BOOLEAN;
> +typedef bool BOOLEAN;
> typedef unsigned char UINT8;
> typedef unsigned short UINT16;
> typedef COMPILER_DEPENDENT_UINT64 UINT64;
> @@ -260,22 +260,6 @@ typedef acpi_native_uint acpi_size;
> *
>
> ******************************************************************************/
>
> -/* Logical defines and NULL */
> -
> -#ifdef FALSE
> -#undef FALSE
> -#endif
> -#define FALSE (1 == 0)
> -
> -#ifdef TRUE
> -#undef TRUE
> -#endif
> -#define TRUE (1 == 1)
> -
> -#ifndef NULL
> -#define NULL (void *) 0
> -#endif
> -
> /*
> * Mescellaneous types
> */
> @@ -503,7 +487,7 @@ typedef u32 acpi_event_type;
> * Event Status - Per event
> * -------------
> * The encoding of acpi_event_status is illustrated below.
> - * Note that a set bit (1) indicates the property is TRUE
> + * Note that a set bit (1) indicates the property is true
> * (e.g. if bit 0 is set then the event is enabled).
> * +-------------+-+-+-+
> * | Bits 31:3 |2|1|0|
> diff --git a/xen/include/asm-arm/arm64/efibind.h
> b/xen/include/asm-arm/arm64/efibind.h
> index 2b0bf40bf2..08ab70e668 100644
> --- a/xen/include/asm-arm/arm64/efibind.h
> +++ b/xen/include/asm-arm/arm64/efibind.h
> @@ -107,7 +107,7 @@ typedef uint64_t UINTN;
> #define POST_CODE(_Data)
>
>
> -#define BREAKPOINT() while (TRUE); // Make it hang on Bios[Dbg]32
> +#define BREAKPOINT() while (true); // Make it hang on Bios[Dbg]32
>
> //
> // Pointers must be aligned to these address to function
> diff --git a/xen/include/asm-arm/regs.h b/xen/include/asm-arm/regs.h
> index 0e3e56b452..f93e1d42b0 100644
> --- a/xen/include/asm-arm/regs.h
> +++ b/xen/include/asm-arm/regs.h
> @@ -53,7 +53,7 @@ static inline bool guest_mode(const struct cpu_user_regs *r)
> ASSERT(diff < STACK_SIZE);
> /* If not a guest frame, it must be a hypervisor frame. */
> ASSERT((diff == 0) || hyp_mode(r));
> - /* Return TRUE if it's a guest frame. */
> + /* Return true if it's a guest frame. */
> return (diff == 0);
> }
>
> diff --git a/xen/include/asm-x86/regs.h b/xen/include/asm-x86/regs.h
> index 725a664e0a..679c38bb76 100644
> --- a/xen/include/asm-x86/regs.h
> +++ b/xen/include/asm-x86/regs.h
> @@ -11,7 +11,7 @@
> ASSERT(diff < STACK_SIZE);
> \
> /* If not a guest frame, it must be a hypervisor frame. */
> \
> ASSERT((diff == 0) || (r->cs == __HYPERVISOR_CS));
> \
> - /* Return TRUE if it's a guest frame. */
> \
> + /* Return true if it's a guest frame. */
> \
> (diff == 0);
> \
> })
>
> diff --git a/xen/include/asm-x86/x86_64/efibind.h
> b/xen/include/asm-x86/x86_64/efibind.h
> index b013db175d..2b7001f8f4 100644
> --- a/xen/include/asm-x86/x86_64/efibind.h
> +++ b/xen/include/asm-x86/x86_64/efibind.h
> @@ -127,7 +127,7 @@ typedef uint64_t UINTN;
> #ifdef EFI_NT_EMULATOR
> #define BREAKPOINT() __asm { int 3 }
> #else
> - #define BREAKPOINT() while (TRUE); // Make it hang on
> Bios[Dbg]32
> + #define BREAKPOINT() while (true); // Make it hang on
> Bios[Dbg]32
> #endif
>
> //
> diff --git a/xen/include/efi/efidef.h b/xen/include/efi/efidef.h
> index 86a7e111bf..fe1750de51 100644
> --- a/xen/include/efi/efidef.h
> +++ b/xen/include/efi/efidef.h
> @@ -22,16 +22,7 @@ Revision History
>
> typedef UINT16 CHAR16;
> typedef UINT8 CHAR8;
> -typedef UINT8 BOOLEAN;
> -
> -#ifndef TRUE
> - #define TRUE ((BOOLEAN) 1)
> - #define FALSE ((BOOLEAN) 0)
> -#endif
> -
> -#ifndef NULL
> - #define NULL ((VOID *) 0)
> -#endif
> +typedef bool BOOLEAN;
>
> typedef UINTN EFI_STATUS;
> typedef UINT64 EFI_LBA;
> diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h
> index 8d0ddfb60c..2b5ae8cae4 100644
> --- a/xen/include/xen/mm.h
> +++ b/xen/include/xen/mm.h
> @@ -607,7 +607,7 @@ int __must_check donate_page(struct domain *d, struct
> page_info *page,
> #define RAM_TYPE_UNUSABLE 0x00000004
> #define RAM_TYPE_ACPI 0x00000008
> #define RAM_TYPE_UNKNOWN 0x00000010
> -/* TRUE if the whole page at @mfn is of the requested RAM type(s) above. */
> +/* true if the whole page at @mfn is of the requested RAM type(s) above. */
> int page_is_ram_type(unsigned long mfn, unsigned long mem_type);
> /* Returns the page type(s). */
> unsigned int page_get_ram_type(mfn_t mfn);
> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
> index 9f7bc69293..c43d9311aa 100644
> --- a/xen/include/xen/sched.h
> +++ b/xen/include/xen/sched.h
> @@ -552,7 +552,7 @@ static inline bool is_system_domain(const struct domain
> *d)
>
> /*
> * Use this when you don't have an existing reference to @d. It returns
> - * FALSE if @d is being destroyed.
> + * false if @d is being destroyed.
> */
> static always_inline int get_domain(struct domain *d)
> {
> --
> 2.11.0
> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |