|
|
|
@ -54,8 +54,13 @@ typedef struct CPUTimerState { |
|
|
|
uint64_t limit; |
|
|
|
} CPUTimerState; |
|
|
|
|
|
|
|
#define TYPE_SLAVIO_TIMER "slavio_timer" |
|
|
|
#define SLAVIO_TIMER(obj) \ |
|
|
|
OBJECT_CHECK(SLAVIO_TIMERState, (obj), TYPE_SLAVIO_TIMER) |
|
|
|
|
|
|
|
typedef struct SLAVIO_TIMERState { |
|
|
|
SysBusDevice busdev; |
|
|
|
SysBusDevice parent_obj; |
|
|
|
|
|
|
|
uint32_t num_cpus; |
|
|
|
uint32_t cputimer_mode; |
|
|
|
CPUTimerState cputimer[MAX_CPUS + 1]; |
|
|
|
@ -354,7 +359,7 @@ static const VMStateDescription vmstate_slavio_timer = { |
|
|
|
|
|
|
|
static void slavio_timer_reset(DeviceState *d) |
|
|
|
{ |
|
|
|
SLAVIO_TIMERState *s = container_of(d, SLAVIO_TIMERState, busdev.qdev); |
|
|
|
SLAVIO_TIMERState *s = SLAVIO_TIMER(d); |
|
|
|
unsigned int i; |
|
|
|
CPUTimerState *curr_timer; |
|
|
|
|
|
|
|
@ -375,7 +380,7 @@ static void slavio_timer_reset(DeviceState *d) |
|
|
|
|
|
|
|
static int slavio_timer_init1(SysBusDevice *dev) |
|
|
|
{ |
|
|
|
SLAVIO_TIMERState *s = FROM_SYSBUS(SLAVIO_TIMERState, dev); |
|
|
|
SLAVIO_TIMERState *s = SLAVIO_TIMER(dev); |
|
|
|
QEMUBH *bh; |
|
|
|
unsigned int i; |
|
|
|
TimerContext *tc; |
|
|
|
@ -421,7 +426,7 @@ static void slavio_timer_class_init(ObjectClass *klass, void *data) |
|
|
|
} |
|
|
|
|
|
|
|
static const TypeInfo slavio_timer_info = { |
|
|
|
.name = "slavio_timer", |
|
|
|
.name = TYPE_SLAVIO_TIMER, |
|
|
|
.parent = TYPE_SYS_BUS_DEVICE, |
|
|
|
.instance_size = sizeof(SLAVIO_TIMERState), |
|
|
|
.class_init = slavio_timer_class_init, |
|
|
|
|