[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3] hvmloader: Use MB(x) and GB(x) macros
instead of hardcoding values. We also drop the uint64_t cast as the macro uses ULL to produce the proper width types. Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> --- Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> v2: New submission v3: Don't use leading underscores in macro. - Drop the uint64_t cast - Added Jan's Ack. --- tools/firmware/hvmloader/e820.c | 6 +++--- tools/firmware/hvmloader/pci.c | 8 ++++---- tools/firmware/hvmloader/smbios.c | 5 ++--- tools/firmware/hvmloader/util.h | 3 +++ 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/tools/firmware/hvmloader/e820.c b/tools/firmware/hvmloader/e820.c index 5541b18705..4d1c955a02 100644 --- a/tools/firmware/hvmloader/e820.c +++ b/tools/firmware/hvmloader/e820.c @@ -82,7 +82,7 @@ void adjust_memory_map(void) /* Modify the existing highmem region if it exists. */ if ( memory_map.map[i].type == E820_RAM && - high_mem_end && map_start == ((uint64_t)1 << 32) ) + high_mem_end && map_start == GB(4) ) { if ( high_mem_end != map_end ) memory_map.map[i].size = high_mem_end - map_start; @@ -94,7 +94,7 @@ void adjust_memory_map(void) /* If there was no highmem region, just create one. */ if ( high_mem_end ) { - memory_map.map[i].addr = ((uint64_t)1 << 32); + memory_map.map[i].addr = GB(4); memory_map.map[i].size = ((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT) - memory_map.map[i].addr; @@ -234,7 +234,7 @@ int build_e820_table(struct e820entry *e820, } /* Low RAM goes here. Reserve space for special pages. */ - BUG_ON(low_mem_end < (2u << 20)); + BUG_ON(low_mem_end < MB(2)); /* * Construct E820 table according to recorded memory map. diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c index 9543e5aaf2..0b708bf578 100644 --- a/tools/firmware/hvmloader/pci.c +++ b/tools/firmware/hvmloader/pci.c @@ -59,7 +59,7 @@ static int find_next_rmrr(uint32_t base) { unsigned int i; int next_rmrr = -1; - uint64_t end, min_end = 1ULL << 32; + uint64_t end, min_end = GB(4); for ( i = 0; i < memory_map.nr_map ; i++ ) { @@ -297,7 +297,7 @@ void pci_setup(void) if ( mmio_hole_size ) { - uint64_t max_ram_below_4g = (1ULL << 32) - mmio_hole_size; + uint64_t max_ram_below_4g = GB(4) - mmio_hole_size; if ( max_ram_below_4g > HVM_BELOW_4G_MMIO_START ) { @@ -385,13 +385,13 @@ void pci_setup(void) adjust_memory_map(); high_mem_resource.base = ((uint64_t)hvm_info->high_mem_pgend) << PAGE_SHIFT; - if ( high_mem_resource.base < 1ull << 32 ) + if ( high_mem_resource.base < GB(4) ) { if ( hvm_info->high_mem_pgend != 0 ) printf("WARNING: hvm_info->high_mem_pgend %x" " does not point into high memory!", hvm_info->high_mem_pgend); - high_mem_resource.base = 1ull << 32; + high_mem_resource.base = GB(4); } printf("%sRAM in high memory; setting high_mem resource base to "PRIllx"\n", hvm_info->high_mem_pgend?"":"No ", diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c index bdd96b2f7a..40d8399be1 100644 --- a/tools/firmware/hvmloader/smbios.c +++ b/tools/firmware/hvmloader/smbios.c @@ -239,15 +239,14 @@ get_memsize(void) sz = (uint64_t)hvm_info->low_mem_pgend << PAGE_SHIFT; if ( hvm_info->high_mem_pgend ) - sz += (((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT) - - (1ull << 32)); + sz += (((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT) - GB(4)); /* * Round up to the nearest MB. The user specifies domU pseudo-physical * memory in megabytes, so not doing this could easily lead to reporting * one less MB than the user specified. */ - return (sz + (1ul << 20) - 1) >> 20; + return (sz + MB(1) - 1) >> 20; } void diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h index 2ef854eb8f..7bca6418d2 100644 --- a/tools/firmware/hvmloader/util.h +++ b/tools/firmware/hvmloader/util.h @@ -48,6 +48,9 @@ void __bug(char *file, int line) __attribute__((noreturn)); #define max_t(type,x,y) \ ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; }) +#define MB(mb) (mb##ULL << 20) +#define GB(gb) (gb##ULL << 30) + static inline int test_bit(unsigned int b, const void *p) { return !!(((const uint8_t *)p)[b>>3] & (1u<<(b&7))); -- 2.13.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |