Message ID | 1510140763-18256-2-git-send-email-frederic.konrad@adacore.com |
---|---|
State | New |
Headers | show |
Series | Add the TTC to the xlnx-zynqmp board | expand |
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
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 */
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