We want to add this model to the xlnx-zynqmp board so let's make
CadenceTTCState available in an header file.
Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
---
hw/timer/cadence_ttc.c | 35 +-----------------------
include/hw/timer/cadence_ttc.h | 61 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 62 insertions(+), 34 deletions(-)
create mode 100644 include/hw/timer/cadence_ttc.h
diff --git a/hw/timer/cadence_ttc.c b/hw/timer/cadence_ttc.c
index 03f5b9c..bb4a5ef 100644
--- a/hw/timer/cadence_ttc.c
+++ b/hw/timer/cadence_ttc.c
@@ -16,9 +16,7 @@
* with this program; if not, see <http://www.gnu.org/licenses/>.
*/
-#include "qemu/osdep.h"
-#include "hw/sysbus.h"
-#include "qemu/timer.h"
+#include "hw/timer/cadence_ttc.h"
#ifdef CADENCE_TTC_ERR_DEBUG
#define DB_PRINT(...) do { \
@@ -45,37 +43,6 @@
#define CLOCK_CTRL_PS_EN 0x00000001
#define CLOCK_CTRL_PS_V 0x0000001e
-typedef struct {
- QEMUTimer *timer;
- int freq;
-
- uint32_t reg_clock;
- uint32_t reg_count;
- uint32_t reg_value;
- uint16_t reg_interval;
- uint16_t reg_match[3];
- uint32_t reg_intr;
- uint32_t reg_intr_en;
- uint32_t reg_event_ctrl;
- uint32_t reg_event;
-
- uint64_t cpu_time;
- unsigned int cpu_time_valid;
-
- qemu_irq irq;
-} CadenceTimerState;
-
-#define TYPE_CADENCE_TTC "cadence_ttc"
-#define CADENCE_TTC(obj) \
- OBJECT_CHECK(CadenceTTCState, (obj), TYPE_CADENCE_TTC)
-
-typedef struct CadenceTTCState {
- SysBusDevice parent_obj;
-
- MemoryRegion iomem;
- CadenceTimerState timer[3];
-} CadenceTTCState;
-
static void cadence_timer_update(CadenceTimerState *s)
{
qemu_set_irq(s->irq, !!(s->reg_intr & s->reg_intr_en));
diff --git a/include/hw/timer/cadence_ttc.h b/include/hw/timer/cadence_ttc.h
new file mode 100644
index 0000000..0c38789
--- /dev/null
+++ b/include/hw/timer/cadence_ttc.h
@@ -0,0 +1,61 @@
+/*
+ * Xilinx Zynq cadence TTC model
+ *
+ * Copyright (c) 2011 Xilinx Inc.
+ * Copyright (c) 2012 Peter A.G. Crosthwaite (peter.crosthwaite@petalogix.com)
+ * Copyright (c) 2012 PetaLogix Pty Ltd.
+ * Written By Haibing Ma
+ * M. Habib
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef CADENCE_TTC_H
+#define CADENCE_TTC_H
+
+#include "qemu/osdep.h"
+#include "hw/sysbus.h"
+#include "qemu/timer.h"
+
+struct CadenceTimerState {
+ QEMUTimer *timer;
+ int freq;
+
+ uint32_t reg_clock;
+ uint32_t reg_count;
+ uint32_t reg_value;
+ uint16_t reg_interval;
+ uint16_t reg_match[3];
+ uint32_t reg_intr;
+ uint32_t reg_intr_en;
+ uint32_t reg_event_ctrl;
+ uint32_t reg_event;
+
+ uint64_t cpu_time;
+ unsigned int cpu_time_valid;
+
+ qemu_irq irq;
+};
+
+typedef struct CadenceTimerState CadenceTimerState;
+
+struct CadenceTTCState {
+ SysBusDevice parent_obj;
+
+ MemoryRegion iomem;
+ CadenceTimerState timer[3];
+};
+
+typedef struct CadenceTTCState CadenceTTCState;
+
+#define TYPE_CADENCE_TTC "cadence_ttc"
+#define CADENCE_TTC(obj) \
+ OBJECT_CHECK(CadenceTTCState, (obj), TYPE_CADENCE_TTC)
+
+#endif /* CADENCE_TTC_H */
--
1.8.3.1
On 8 November 2017 at 11:32, KONRAD Frederic <frederic.konrad@adacore.com> wrote: > We want to add this model to the xlnx-zynqmp board so let's make > CadenceTTCState available in an header file. > > Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com> > --- > hw/timer/cadence_ttc.c | 35 +----------------------- > include/hw/timer/cadence_ttc.h | 61 ++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 62 insertions(+), 34 deletions(-) > create mode 100644 include/hw/timer/cadence_ttc.h > > diff --git a/hw/timer/cadence_ttc.c b/hw/timer/cadence_ttc.c > index 03f5b9c..bb4a5ef 100644 > --- a/hw/timer/cadence_ttc.c > +++ b/hw/timer/cadence_ttc.c > @@ -16,9 +16,7 @@ > * with this program; if not, see <http://www.gnu.org/licenses/>. > */ > > -#include "qemu/osdep.h" > -#include "hw/sysbus.h" > -#include "qemu/timer.h" > +#include "hw/timer/cadence_ttc.h" Something's gone wrong here. osdep.h should always be the first header in any .c file, and it should never be included by any other .h file. thanks -- PMM
On 11/21/2017 07:41 PM, Peter Maydell wrote: > On 8 November 2017 at 11:32, KONRAD Frederic > <frederic.konrad@adacore.com> wrote: >> We want to add this model to the xlnx-zynqmp board so let's make >> CadenceTTCState available in an header file. >> >> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com> >> --- >> hw/timer/cadence_ttc.c | 35 +----------------------- >> include/hw/timer/cadence_ttc.h | 61 ++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 62 insertions(+), 34 deletions(-) >> create mode 100644 include/hw/timer/cadence_ttc.h >> >> diff --git a/hw/timer/cadence_ttc.c b/hw/timer/cadence_ttc.c >> index 03f5b9c..bb4a5ef 100644 >> --- a/hw/timer/cadence_ttc.c >> +++ b/hw/timer/cadence_ttc.c >> @@ -16,9 +16,7 @@ >> * with this program; if not, see <http://www.gnu.org/licenses/>. >> */ >> >> -#include "qemu/osdep.h" >> -#include "hw/sysbus.h" >> -#include "qemu/timer.h" >> +#include "hw/timer/cadence_ttc.h" > > Something's gone wrong here. osdep.h should always be the first > header in any .c file, and it should never be included by any > other .h file. > > thanks > -- PMM > Hi Peter, Thanks for your input. I'll fix that. Fred
© 2016 - 2026 Red Hat, Inc.