All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC v2 0/2] use sizes.h macros for power-of-two sizes
@ 2013-09-13  4:33 Antony Pavlov
  2013-09-13  4:33 ` [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h Antony Pavlov
  2013-09-13  4:33 ` [Qemu-devel] [RFC v2 2/2] hw/mips: use sizes.h macros Antony Pavlov
  0 siblings, 2 replies; 4+ messages in thread
From: Antony Pavlov @ 2013-09-13  4:33 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Richard Henderson, Aurelien Jarno, Stefan Weil

Changes since v1:

 * include/sizes.h -> include/qemu/sizes.h
 * fix copyright header;
 * fix formatting: drop tabs;
 * use the BIT() macro, so it's easy-to-read the constants column;
   also the BIT() macro casts constant to UL;
 * rebase on updated master;
  * take into account the "mips_malta: support up to 2GiB RAM" commit.

[RFC v2 1/2] include/qemu: introduce sizes.h
[RFC v2 2/2] hw/mips: use sizes.h macros

The sizes.h macros is a easy-to-read method of
power-of-two memory sizes representation. The sizes.h
macros are actively used in linux kernel and other
projects, so let's use them in QEMU too.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h
  2013-09-13  4:33 [Qemu-devel] [RFC v2 0/2] use sizes.h macros for power-of-two sizes Antony Pavlov
@ 2013-09-13  4:33 ` Antony Pavlov
  2013-09-13  5:53   ` Stefan Weil
  2013-09-13  4:33 ` [Qemu-devel] [RFC v2 2/2] hw/mips: use sizes.h macros Antony Pavlov
  1 sibling, 1 reply; 4+ messages in thread
From: Antony Pavlov @ 2013-09-13  4:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Richard Henderson, Antony Pavlov, Aurelien Jarno,
	Stefan Weil

The header file sizes.h is used in linux kernel,
barebox bootloader and u-boot bootloader. It provides
the short and easy-to-read names for power-of-two
numbers. The numbers like this are othen used
for memory range sizes.

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Richard Henderson <rth@twiddle.net>
---
 include/qemu/sizes.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100644 include/qemu/sizes.h

diff --git a/include/qemu/sizes.h b/include/qemu/sizes.h
new file mode 100644
index 0000000..a683b60
--- /dev/null
+++ b/include/qemu/sizes.h
@@ -0,0 +1,61 @@
+/*
+ * Handy size definitions
+ *
+ * Copyright (C) 2013 Antony Pavlov <antonynpavlov@gmail.com>
+ *
+ * Inspired by linux/sizes.h
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef QEMU_SIZES_H
+#define QEMU_SIZES_H
+
+#include <qemu/bitops.h>
+
+#define SZ_1                BIT(0)
+#define SZ_2                BIT(1)
+#define SZ_4                BIT(2)
+#define SZ_8                BIT(3)
+#define SZ_16               BIT(4)
+#define SZ_32               BIT(5)
+#define SZ_64               BIT(6)
+#define SZ_128              BIT(7)
+#define SZ_256              BIT(8)
+#define SZ_512              BIT(9)
+
+#define SZ_1K               BIT(10)
+#define SZ_2K               BIT(11)
+#define SZ_4K               BIT(12)
+#define SZ_8K               BIT(13)
+#define SZ_16K              BIT(14)
+#define SZ_32K              BIT(15)
+#define SZ_64K              BIT(16)
+#define SZ_128K             BIT(17)
+#define SZ_256K             BIT(18)
+#define SZ_512K             BIT(19)
+
+#define SZ_1M               BIT(20)
+#define SZ_2M               BIT(21)
+#define SZ_4M               BIT(22)
+#define SZ_8M               BIT(23)
+#define SZ_16M              BIT(24)
+#define SZ_32M              BIT(25)
+#define SZ_64M              BIT(26)
+#define SZ_128M             BIT(27)
+#define SZ_256M             BIT(28)
+#define SZ_512M             BIT(29)
+
+#define SZ_1G               BIT(30)
+#define SZ_2G               BIT(31)
+
+#endif /* QEMU_SIZES_H */
-- 
1.8.4.rc3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Qemu-devel] [RFC v2 2/2] hw/mips: use sizes.h macros
  2013-09-13  4:33 [Qemu-devel] [RFC v2 0/2] use sizes.h macros for power-of-two sizes Antony Pavlov
  2013-09-13  4:33 ` [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h Antony Pavlov
@ 2013-09-13  4:33 ` Antony Pavlov
  1 sibling, 0 replies; 4+ messages in thread
From: Antony Pavlov @ 2013-09-13  4:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Richard Henderson, Antony Pavlov, Aurelien Jarno,
	Stefan Weil

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
---
 hw/mips/mips_malta.c   | 25 +++++++++++++------------
 include/hw/mips/bios.h |  3 ++-
 2 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 05c8771..604832f 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -51,6 +51,7 @@
 #include "sysemu/qtest.h"
 #include "qemu/error-report.h"
 #include "hw/empty_slot.h"
+#include "qemu/sizes.h"
 
 //#define DEBUG_BOARD_INIT
 
@@ -63,7 +64,7 @@
 #define FPGA_ADDRESS  0x1f000000ULL
 #define RESET_ADDRESS 0x1fc00000ULL
 
-#define FLASH_SIZE    0x400000
+#define FLASH_SIZE    SZ_4M
 
 #define MAX_IDE_BUS 2
 
@@ -827,8 +828,8 @@ static int64_t load_kernel (void)
     }
 
     prom_set(prom_buf, prom_index++, "memsize");
-    prom_set(prom_buf, prom_index++, "%i",
-             MIN(loaderparams.ram_size, 256 << 20));
+    prom_set(prom_buf, prom_index++, "%li",
+             MIN(loaderparams.ram_size, SZ_256M));
     prom_set(prom_buf, prom_index++, "modetty0");
     prom_set(prom_buf, prom_index++, "38400n8r");
     prom_set(prom_buf, prom_index++, NULL);
@@ -954,10 +955,10 @@ void mips_malta_init(QEMUMachineInitArgs *args)
     env = &cpu->env;
 
     /* allocate RAM */
-    if (ram_size > (2048u << 20)) {
+    if (ram_size > SZ_2G) {
         fprintf(stderr,
-                "qemu: Too much memory for this machine: %d MB, maximum 2048 MB\n",
-                ((unsigned int)ram_size / (1 << 20)));
+                "qemu: Too much memory for this machine: %ld MB, maximum 2048 MB\n",
+                ((unsigned long)ram_size / SZ_1M));
         exit(1);
     }
 
@@ -968,17 +969,17 @@ void mips_malta_init(QEMUMachineInitArgs *args)
 
     /* alias for pre IO hole access */
     memory_region_init_alias(ram_low_preio, NULL, "mips_malta_low_preio.ram",
-                             ram_high, 0, MIN(ram_size, (256 << 20)));
+                             ram_high, 0, MIN(ram_size, SZ_256M));
     memory_region_add_subregion(system_memory, 0, ram_low_preio);
 
     /* alias for post IO hole access, if there is enough RAM */
-    if (ram_size > (512 << 20)) {
+    if (ram_size > SZ_512M) {
         ram_low_postio = g_new(MemoryRegion, 1);
         memory_region_init_alias(ram_low_postio, NULL,
                                  "mips_malta_low_postio.ram",
-                                 ram_high, 512 << 20,
-                                 ram_size - (512 << 20));
-        memory_region_add_subregion(system_memory, 512 << 20, ram_low_postio);
+                                 ram_high, SZ_512M,
+                                 ram_size - SZ_512M);
+        memory_region_add_subregion(system_memory, SZ_512M, ram_low_postio);
     }
 
     /* generate SPD EEPROM data */
@@ -1012,7 +1013,7 @@ void mips_malta_init(QEMUMachineInitArgs *args)
     fl_idx++;
     if (kernel_filename) {
         /* Write a small bootloader to the flash location. */
-        loaderparams.ram_size = MIN(ram_size, 256 << 20);
+        loaderparams.ram_size = MIN(ram_size, SZ_256M);
         loaderparams.kernel_filename = kernel_filename;
         loaderparams.kernel_cmdline = kernel_cmdline;
         loaderparams.initrd_filename = initrd_filename;
diff --git a/include/hw/mips/bios.h b/include/hw/mips/bios.h
index b4b88ac..3d7da4b 100644
--- a/include/hw/mips/bios.h
+++ b/include/hw/mips/bios.h
@@ -1,6 +1,7 @@
 #include "cpu.h"
+#include "qemu/sizes.h"
 
-#define BIOS_SIZE (4 * 1024 * 1024)
+#define BIOS_SIZE SZ_4M
 #ifdef TARGET_WORDS_BIGENDIAN
 #define BIOS_FILENAME "mips_bios.bin"
 #else
-- 
1.8.4.rc3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h
  2013-09-13  4:33 ` [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h Antony Pavlov
@ 2013-09-13  5:53   ` Stefan Weil
  0 siblings, 0 replies; 4+ messages in thread
From: Stefan Weil @ 2013-09-13  5:53 UTC (permalink / raw)
  To: Antony Pavlov
  Cc: Paolo Bonzini, qemu-devel, Aurelien Jarno, Richard Henderson

Am 13.09.2013 06:33, schrieb Antony Pavlov:
> The header file sizes.h is used in linux kernel,
> barebox bootloader and u-boot bootloader. It provides
> the short and easy-to-read names for power-of-two
> numbers. The numbers like this are othen used
> for memory range sizes.
>
> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
> Reviewed-by: Stefan Weil <sw@weilnetz.de>
> Reviewed-by: Richard Henderson <rth@twiddle.net>

This list is an incorrect interpretation of Reviewed-by.

Only people who sent a Reviewed-by signed with their name
may be cited here (not everybody who sent a comment).



> ---
>  include/qemu/sizes.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 61 insertions(+)
>  create mode 100644 include/qemu/sizes.h
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-09-13  5:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-13  4:33 [Qemu-devel] [RFC v2 0/2] use sizes.h macros for power-of-two sizes Antony Pavlov
2013-09-13  4:33 ` [Qemu-devel] [RFC v2 1/2] include/qemu: introduce sizes.h Antony Pavlov
2013-09-13  5:53   ` Stefan Weil
2013-09-13  4:33 ` [Qemu-devel] [RFC v2 2/2] hw/mips: use sizes.h macros Antony Pavlov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.