Revision 730bf932 hw/intc/grlib_irqmp.c

b/hw/intc/grlib_irqmp.c
45 45
#define FORCE_OFFSET     0x80
46 46
#define EXTENDED_OFFSET  0xC0
47 47

  
48
#define TYPE_GRLIB_IRQMP "grlib,irqmp"
49
#define GRLIB_IRQMP(obj) OBJECT_CHECK(IRQMP, (obj), TYPE_GRLIB_IRQMP)
50

  
48 51
typedef struct IRQMPState IRQMPState;
49 52

  
50 53
typedef struct IRQMP {
51
    SysBusDevice busdev;
54
    SysBusDevice parent_obj;
55

  
52 56
    MemoryRegion iomem;
53 57

  
54 58
    void *set_pil_in;
......
102 106

  
103 107
void grlib_irqmp_ack(DeviceState *dev, int intno)
104 108
{
105
    SysBusDevice *sdev;
106
    IRQMP        *irqmp;
109
    IRQMP        *irqmp = GRLIB_IRQMP(dev);
107 110
    IRQMPState   *state;
108 111
    uint32_t      mask;
109 112

  
110
    assert(dev != NULL);
111

  
112
    sdev = SYS_BUS_DEVICE(dev);
113
    assert(sdev != NULL);
114

  
115
    irqmp = FROM_SYSBUS(typeof(*irqmp), sdev);
116
    assert(irqmp != NULL);
117

  
118 113
    state = irqmp->state;
119 114
    assert(state != NULL);
120 115

  
......
132 127

  
133 128
void grlib_irqmp_set_irq(void *opaque, int irq, int level)
134 129
{
135
    IRQMP      *irqmp;
130
    IRQMP      *irqmp = GRLIB_IRQMP(opaque);
136 131
    IRQMPState *s;
137 132
    int         i = 0;
138 133

  
139
    assert(opaque != NULL);
140

  
141
    irqmp = FROM_SYSBUS(typeof(*irqmp), SYS_BUS_DEVICE(opaque));
142
    assert(irqmp != NULL);
143

  
144 134
    s = irqmp->state;
145 135
    assert(s         != NULL);
146 136
    assert(s->parent != NULL);
......
325 315

  
326 316
static void grlib_irqmp_reset(DeviceState *d)
327 317
{
328
    IRQMP *irqmp = container_of(d, IRQMP, busdev.qdev);
329
    assert(irqmp        != NULL);
318
    IRQMP *irqmp = GRLIB_IRQMP(d);
330 319
    assert(irqmp->state != NULL);
331 320

  
332 321
    memset(irqmp->state, 0, sizeof *irqmp->state);
......
335 324

  
336 325
static int grlib_irqmp_init(SysBusDevice *dev)
337 326
{
338
    IRQMP *irqmp = FROM_SYSBUS(typeof(*irqmp), dev);
339

  
340
    assert(irqmp != NULL);
327
    IRQMP *irqmp = GRLIB_IRQMP(dev);
341 328

  
342 329
    /* Check parameters */
343 330
    if (irqmp->set_pil_in == NULL) {
......
371 358
}
372 359

  
373 360
static const TypeInfo grlib_irqmp_info = {
374
    .name          = "grlib,irqmp",
361
    .name          = TYPE_GRLIB_IRQMP,
375 362
    .parent        = TYPE_SYS_BUS_DEVICE,
376 363
    .instance_size = sizeof(IRQMP),
377 364
    .class_init    = grlib_irqmp_class_init,

Also available in: Unified diff