[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 2/7] xen/x86: Add xbi.h header file
>>> On 18.09.14 at 18:30, <daniel.kiper@xxxxxxxxxx> wrote: > On Sun, Aug 10, 2014 at 05:34:11PM +0100, Andrew Cooper wrote: >> On 09/08/14 00:04, Daniel Kiper wrote: >> > +typedef struct { >> > + /* Boot loader name. */ >> > + char *boot_loader_name; >> > + >> > + /* Xen command line. */ >> > + char *cmdline; >> > + >> > + /* Memory map type (source of memory map). */ >> > + char *mmap_type; >> > + >> > + /* >> > + * Amount of upper memory (in KiB) accordingly to The Multiboot >> > + * Specification version 0.6.96. >> > + */ >> > + u32 mem_upper; >> > + >> > + /* Number of memory map entries provided by Xen preloader. */ >> > + int e820map_nr; >> >> Count of e820 entries is inherently an unsigned quantity. > > OK, but after some investigation it looks that we should change also > xen/arch/x86/e820.c:init_e820() and friends due to type signedness > conflicts. I think that this is good idea but I would like to ask > you guys about your opinion. So? The general direction here is to not let new code in that's not sufficiently sign- or const-correct, but not bother cleaning up old code unless touching it anyway. But if you feel like submitting a patch correcting signedness there, just go ahead. >> > + /* >> > + * Memory map provided by Xen preloader. It should always point >> > + * to an area able to accommodate at least E820MAX entries. >> > + */ >> > + struct e820entry *e820map; >> > + >> > + /* Size (in bytes) of EFI memory map provided by Xen preloader. */ >> > + unsigned long efi_mmap_size; >> > + >> > + /* Size (in bytes) of EFI memory map descriptor provided by Xen >> > preloader. */ >> > + unsigned long efi_mmap_desc_size; >> >> size_t for these two? > > Both of them should be UINTN because they are referenced > from EFI function GetMemoryMap(). However, this means that > we must include asm/efibind.h and efi/efidef.h. If we do > that then: > > In file included from xen/include/acpi/acpi.h:57:0, > from xen/include/xen/acpi.h:34, > from xen/include/asm/boot_info.h:25, > from boot.c:27: > xen/include/acpi/actypes.h:130:35: error: conflicting types for âUINT64â > > and > > In file included from xen/include/acpi/acpi.h:57:0, > from xen/include/xen/acpi.h:34, > from xen/include/asm/boot_info.h:25, > from boot.c:27: > xen/include/acpi/actypes.h:131:34: error: conflicting types for âINT64â > > That is why I used unsigned long here. It is a hack to avoid that issue. > I forgot about that. However, now if we wish to proceed further we should > do something with this conflict. Avoidance is not a solution in that case > because if we do that right now then this conflict will hit us once again > sooner or later somewhere else. So, I think that we should rename all > basic EFI types and use EFI_ prefix, e.g., EFI_UINT64. This way we will > avoid this conflict with ACPI types in the future. What do you think > about that? Absolutely not - these headers should stay as closely in sync with their originals as possible to ease eventual updating. > Do you have better solution for that problem? Don't include ACPI and EFI headers at the same time, or use compatible types (as you did, and as - I think - size_t would also do). In the latter case a comment explaining why the original types can't be used would perhaps avoid questions like Andrew's. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |