diff mbox series

[03/14] hw/timer/pl031: Allow use as an embedded-struct device

Message ID 20190214125107.22178-4-peter.maydell@linaro.org
State Superseded
Headers show
Series Add model of the Arm Musca devboards | expand

Commit Message

Peter Maydell Feb. 14, 2019, 12:50 p.m. UTC
Create a new include file for the pl031's device struct,
type macros, etc, so that it can be instantiated using
the "embedded struct" coding style.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 include/hw/timer/pl031.h | 44 ++++++++++++++++++++++++++++++++++++++++
 hw/timer/pl031.c         | 25 +----------------------
 MAINTAINERS              |  1 +
 3 files changed, 46 insertions(+), 24 deletions(-)
 create mode 100644 include/hw/timer/pl031.h

-- 
2.20.1

Comments

Richard Henderson Feb. 17, 2019, 5:55 p.m. UTC | #1
On 2/14/19 4:50 AM, Peter Maydell wrote:
> Create a new include file for the pl031's device struct,

> type macros, etc, so that it can be instantiated using

> the "embedded struct" coding style.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---

>  include/hw/timer/pl031.h | 44 ++++++++++++++++++++++++++++++++++++++++

>  hw/timer/pl031.c         | 25 +----------------------

>  MAINTAINERS              |  1 +

>  3 files changed, 46 insertions(+), 24 deletions(-)

>  create mode 100644 include/hw/timer/pl031.h


Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
Philippe Mathieu-Daudé Feb. 18, 2019, 9:54 p.m. UTC | #2
On 2/14/19 1:50 PM, Peter Maydell wrote:
> Create a new include file for the pl031's device struct,

> type macros, etc, so that it can be instantiated using

> the "embedded struct" coding style.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>


> ---

>  include/hw/timer/pl031.h | 44 ++++++++++++++++++++++++++++++++++++++++

>  hw/timer/pl031.c         | 25 +----------------------

>  MAINTAINERS              |  1 +

>  3 files changed, 46 insertions(+), 24 deletions(-)

>  create mode 100644 include/hw/timer/pl031.h

> 

> diff --git a/include/hw/timer/pl031.h b/include/hw/timer/pl031.h

> new file mode 100644

> index 00000000000..99416d8ba52

> --- /dev/null

> +++ b/include/hw/timer/pl031.h

> @@ -0,0 +1,44 @@

> +/*

> + * ARM AMBA PrimeCell PL031 RTC

> + *

> + * Copyright (c) 2007 CodeSourcery

> + *

> + * This file is free software; you can redistribute it and/or modify

> + * it under the terms of the GNU General Public License version 2 as

> + * published by the Free Software Foundation.

> + *

> + * Contributions after 2012-01-13 are licensed under the terms of the

> + * GNU GPL, version 2 or (at your option) any later version.

> + */

> +

> +#ifndef HW_TIMER_PL031

> +#define HW_TIMER_PL031

> +

> +#include "hw/sysbus.h"

> +

> +#define TYPE_PL031 "pl031"

> +#define PL031(obj) OBJECT_CHECK(PL031State, (obj), TYPE_PL031)

> +

> +typedef struct PL031State {

> +    SysBusDevice parent_obj;

> +

> +    MemoryRegion iomem;

> +    QEMUTimer *timer;

> +    qemu_irq irq;

> +

> +    /*

> +     * Needed to preserve the tick_count across migration, even if the

> +     * absolute value of the rtc_clock is different on the source and

> +     * destination.

> +     */

> +    uint32_t tick_offset_vmstate;

> +    uint32_t tick_offset;

> +

> +    uint32_t mr;

> +    uint32_t lr;

> +    uint32_t cr;

> +    uint32_t im;

> +    uint32_t is;

> +} PL031State;

> +

> +#endif

> diff --git a/hw/timer/pl031.c b/hw/timer/pl031.c

> index d3aacce80da..f774dcd5223 100644

> --- a/hw/timer/pl031.c

> +++ b/hw/timer/pl031.c

> @@ -12,6 +12,7 @@

>   */

>  

>  #include "qemu/osdep.h"

> +#include "hw/timer/pl031.h"

>  #include "hw/sysbus.h"

>  #include "qemu/timer.h"

>  #include "sysemu/sysemu.h"

> @@ -36,30 +37,6 @@ do { printf("pl031: " fmt , ## __VA_ARGS__); } while (0)

>  #define RTC_MIS     0x18    /* Masked interrupt status register */

>  #define RTC_ICR     0x1c    /* Interrupt clear register */

>  

> -#define TYPE_PL031 "pl031"

> -#define PL031(obj) OBJECT_CHECK(PL031State, (obj), TYPE_PL031)

> -

> -typedef struct PL031State {

> -    SysBusDevice parent_obj;

> -

> -    MemoryRegion iomem;

> -    QEMUTimer *timer;

> -    qemu_irq irq;

> -

> -    /* Needed to preserve the tick_count across migration, even if the

> -     * absolute value of the rtc_clock is different on the source and

> -     * destination.

> -     */

> -    uint32_t tick_offset_vmstate;

> -    uint32_t tick_offset;

> -

> -    uint32_t mr;

> -    uint32_t lr;

> -    uint32_t cr;

> -    uint32_t im;

> -    uint32_t is;

> -} PL031State;

> -

>  static const unsigned char pl031_id[] = {

>      0x31, 0x10, 0x14, 0x00,         /* Device ID        */

>      0x0d, 0xf0, 0x05, 0xb1          /* Cell ID      */

> diff --git a/MAINTAINERS b/MAINTAINERS

> index 9a76845581b..85d4b4c9f7c 100644

> --- a/MAINTAINERS

> +++ b/MAINTAINERS

> @@ -493,6 +493,7 @@ F: hw/sd/pl181.c

>  F: hw/ssi/pl022.c

>  F: include/hw/ssi/pl022.h

>  F: hw/timer/pl031.c

> +F: include/hw/timer/pl031.h

>  F: include/hw/arm/primecell.h

>  F: hw/timer/cmsdk-apb-timer.c

>  F: include/hw/timer/cmsdk-apb-timer.h

>
diff mbox series

Patch

diff --git a/include/hw/timer/pl031.h b/include/hw/timer/pl031.h
new file mode 100644
index 00000000000..99416d8ba52
--- /dev/null
+++ b/include/hw/timer/pl031.h
@@ -0,0 +1,44 @@ 
+/*
+ * ARM AMBA PrimeCell PL031 RTC
+ *
+ * Copyright (c) 2007 CodeSourcery
+ *
+ * This file is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Contributions after 2012-01-13 are licensed under the terms of the
+ * GNU GPL, version 2 or (at your option) any later version.
+ */
+
+#ifndef HW_TIMER_PL031
+#define HW_TIMER_PL031
+
+#include "hw/sysbus.h"
+
+#define TYPE_PL031 "pl031"
+#define PL031(obj) OBJECT_CHECK(PL031State, (obj), TYPE_PL031)
+
+typedef struct PL031State {
+    SysBusDevice parent_obj;
+
+    MemoryRegion iomem;
+    QEMUTimer *timer;
+    qemu_irq irq;
+
+    /*
+     * Needed to preserve the tick_count across migration, even if the
+     * absolute value of the rtc_clock is different on the source and
+     * destination.
+     */
+    uint32_t tick_offset_vmstate;
+    uint32_t tick_offset;
+
+    uint32_t mr;
+    uint32_t lr;
+    uint32_t cr;
+    uint32_t im;
+    uint32_t is;
+} PL031State;
+
+#endif
diff --git a/hw/timer/pl031.c b/hw/timer/pl031.c
index d3aacce80da..f774dcd5223 100644
--- a/hw/timer/pl031.c
+++ b/hw/timer/pl031.c
@@ -12,6 +12,7 @@ 
  */
 
 #include "qemu/osdep.h"
+#include "hw/timer/pl031.h"
 #include "hw/sysbus.h"
 #include "qemu/timer.h"
 #include "sysemu/sysemu.h"
@@ -36,30 +37,6 @@  do { printf("pl031: " fmt , ## __VA_ARGS__); } while (0)
 #define RTC_MIS     0x18    /* Masked interrupt status register */
 #define RTC_ICR     0x1c    /* Interrupt clear register */
 
-#define TYPE_PL031 "pl031"
-#define PL031(obj) OBJECT_CHECK(PL031State, (obj), TYPE_PL031)
-
-typedef struct PL031State {
-    SysBusDevice parent_obj;
-
-    MemoryRegion iomem;
-    QEMUTimer *timer;
-    qemu_irq irq;
-
-    /* Needed to preserve the tick_count across migration, even if the
-     * absolute value of the rtc_clock is different on the source and
-     * destination.
-     */
-    uint32_t tick_offset_vmstate;
-    uint32_t tick_offset;
-
-    uint32_t mr;
-    uint32_t lr;
-    uint32_t cr;
-    uint32_t im;
-    uint32_t is;
-} PL031State;
-
 static const unsigned char pl031_id[] = {
     0x31, 0x10, 0x14, 0x00,         /* Device ID        */
     0x0d, 0xf0, 0x05, 0xb1          /* Cell ID      */
diff --git a/MAINTAINERS b/MAINTAINERS
index 9a76845581b..85d4b4c9f7c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -493,6 +493,7 @@  F: hw/sd/pl181.c
 F: hw/ssi/pl022.c
 F: include/hw/ssi/pl022.h
 F: hw/timer/pl031.c
+F: include/hw/timer/pl031.h
 F: include/hw/arm/primecell.h
 F: hw/timer/cmsdk-apb-timer.c
 F: include/hw/timer/cmsdk-apb-timer.h