diff mbox

[v2,1/2] hvmloader: Use MB(x) and GB(x) macros

Message ID 1475106529-17443-2-git-send-email-konrad.wilk@oracle.com (mailing list archive)
State New, archived
Headers show

Commit Message

Konrad Rzeszutek Wilk Sept. 28, 2016, 11:48 p.m. UTC
instead of hardcoding values.

Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

---
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>

v2: New submission
---
 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(-)

Comments

Jan Beulich Sept. 29, 2016, 6:44 a.m. UTC | #1
>>> On 29.09.16 at 01:48, <konrad.wilk@oracle.com> wrote:
> --- 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 == (uint64_t)GB(4) )

Please drop these casts, considering that you use ULL in the
macros.

> --- 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)

No leading underscores please in macro parameter names.

With those adjustments
Acked-by: Jan Beulich <jbeulich@suse.com>

Jan
diff mbox

Patch

diff --git a/tools/firmware/hvmloader/e820.c b/tools/firmware/hvmloader/e820.c
index 5541b18..a3683a0 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 == (uint64_t)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 = (uint64_t)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 4eb1a31..416829d 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++ )
     {
@@ -298,7 +298,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 )
         {
@@ -386,13 +386,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 210c7b0..d69312e 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 6062f0b..f2abf25 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)));