Revision 99a0949b hw/openpic.c

b/hw/openpic.c
166 166
    IRQ_SPECIAL  = 0x08,
167 167
};
168 168

  
169
typedef struct IRQ_queue_t {
169
typedef struct IRQ_queue {
170 170
    uint32_t queue[BF_WIDTH(MAX_IRQ)];
171 171
    int next;
172 172
    int priority;
173
} IRQ_queue_t;
173
} a_IRQ_queue;
174 174

  
175
typedef struct IRQ_src_t {
175
typedef struct IRQ_src {
176 176
    uint32_t ipvp;  /* IRQ vector/priority register */
177 177
    uint32_t ide;   /* IRQ destination register */
178 178
    int type;
179 179
    int last_cpu;
180 180
    int pending;    /* TRUE if IRQ is pending */
181
} IRQ_src_t;
181
} a_IRQ_src;
182 182

  
183 183
enum IPVP_bits {
184 184
    IPVP_MASK     = 31,
......
192 192
#define IPVP_VECTOR_MASK       ((1 << VECTOR_BITS) - 1)
193 193
#define IPVP_VECTOR(_ipvpr_)   ((_ipvpr_) & IPVP_VECTOR_MASK)
194 194

  
195
typedef struct IRQ_dst_t {
195
typedef struct IRQ_dst {
196 196
    uint32_t tfrr;
197 197
    uint32_t pctp; /* CPU current task priority */
198 198
    uint32_t pcsr; /* CPU sensitivity register */
199
    IRQ_queue_t raised;
200
    IRQ_queue_t servicing;
199
    a_IRQ_queue raised;
200
    a_IRQ_queue servicing;
201 201
    qemu_irq *irqs;
202
} IRQ_dst_t;
202
} a_IRQ_dst;
203 203

  
204
typedef struct openpic_t {
204
typedef struct openpic {
205 205
    PCIDevice pci_dev;
206 206
    int mem_index;
207 207
    /* Global registers */
......
213 213
    uint32_t spve; /* Spurious vector register */
214 214
    uint32_t tifr; /* Timer frequency reporting register */
215 215
    /* Source registers */
216
    IRQ_src_t src[MAX_IRQ];
216
    a_IRQ_src src[MAX_IRQ];
217 217
    /* Local registers per output pin */
218
    IRQ_dst_t dst[MAX_CPU];
218
    a_IRQ_dst dst[MAX_CPU];
219 219
    int nb_cpus;
220 220
    /* Timer registers */
221 221
    struct {
......
242 242
    int irq_tim0;
243 243
    int need_swap;
244 244
    void (*reset) (void *);
245
    void (*irq_raise) (struct openpic_t *, int, IRQ_src_t *);
246
} openpic_t;
245
    void (*irq_raise) (struct openpic *, int, a_IRQ_src *);
246
} a_openpic;
247 247

  
248
static inline uint32_t openpic_swap32(openpic_t *opp, uint32_t val)
248
static inline uint32_t openpic_swap32(a_openpic *opp, uint32_t val)
249 249
{
250 250
    if (opp->need_swap)
251 251
        return bswap32(val);
......
253 253
    return val;
254 254
}
255 255

  
256
static inline void IRQ_setbit (IRQ_queue_t *q, int n_IRQ)
256
static inline void IRQ_setbit (a_IRQ_queue *q, int n_IRQ)
257 257
{
258 258
    set_bit(q->queue, n_IRQ);
259 259
}
260 260

  
261
static inline void IRQ_resetbit (IRQ_queue_t *q, int n_IRQ)
261
static inline void IRQ_resetbit (a_IRQ_queue *q, int n_IRQ)
262 262
{
263 263
    reset_bit(q->queue, n_IRQ);
264 264
}
265 265

  
266
static inline int IRQ_testbit (IRQ_queue_t *q, int n_IRQ)
266
static inline int IRQ_testbit (a_IRQ_queue *q, int n_IRQ)
267 267
{
268 268
    return test_bit(q->queue, n_IRQ);
269 269
}
270 270

  
271
static void IRQ_check (openpic_t *opp, IRQ_queue_t *q)
271
static void IRQ_check (a_openpic *opp, a_IRQ_queue *q)
272 272
{
273 273
    int next, i;
274 274
    int priority;
......
289 289
    q->priority = priority;
290 290
}
291 291

  
292
static int IRQ_get_next (openpic_t *opp, IRQ_queue_t *q)
292
static int IRQ_get_next (a_openpic *opp, a_IRQ_queue *q)
293 293
{
294 294
    if (q->next == -1) {
295 295
        /* XXX: optimize */
......
299 299
    return q->next;
300 300
}
301 301

  
302
static void IRQ_local_pipe (openpic_t *opp, int n_CPU, int n_IRQ)
302
static void IRQ_local_pipe (a_openpic *opp, int n_CPU, int n_IRQ)
303 303
{
304
    IRQ_dst_t *dst;
305
    IRQ_src_t *src;
304
    a_IRQ_dst *dst;
305
    a_IRQ_src *src;
306 306
    int priority;
307 307

  
308 308
    dst = &opp->dst[n_CPU];
......
341 341
}
342 342

  
343 343
/* update pic state because registers for n_IRQ have changed value */
344
static void openpic_update_irq(openpic_t *opp, int n_IRQ)
344
static void openpic_update_irq(a_openpic *opp, int n_IRQ)
345 345
{
346
    IRQ_src_t *src;
346
    a_IRQ_src *src;
347 347
    int i;
348 348

  
349 349
    src = &opp->src[n_IRQ];
......
399 399

  
400 400
static void openpic_set_irq(void *opaque, int n_IRQ, int level)
401 401
{
402
    openpic_t *opp = opaque;
403
    IRQ_src_t *src;
402
    a_openpic *opp = opaque;
403
    a_IRQ_src *src;
404 404

  
405 405
    src = &opp->src[n_IRQ];
406 406
    DPRINTF("openpic: set irq %d = %d ipvp=%08x\n",
......
420 420

  
421 421
static void openpic_reset (void *opaque)
422 422
{
423
    openpic_t *opp = (openpic_t *)opaque;
423
    a_openpic *opp = (a_openpic *)opaque;
424 424
    int i;
425 425

  
426 426
    opp->glbc = 0x80000000;
......
441 441
    for (i = 0; i < MAX_CPU; i++) {
442 442
	opp->dst[i].pctp      = 0x0000000F;
443 443
	opp->dst[i].pcsr      = 0x00000000;
444
	memset(&opp->dst[i].raised, 0, sizeof(IRQ_queue_t));
445
	memset(&opp->dst[i].servicing, 0, sizeof(IRQ_queue_t));
444
	memset(&opp->dst[i].raised, 0, sizeof(a_IRQ_queue));
445
	memset(&opp->dst[i].servicing, 0, sizeof(a_IRQ_queue));
446 446
    }
447 447
    /* Initialise timers */
448 448
    for (i = 0; i < MAX_TMR; i++) {
......
466 466
    opp->glbc = 0x00000000;
467 467
}
468 468

  
469
static inline uint32_t read_IRQreg (openpic_t *opp, int n_IRQ, uint32_t reg)
469
static inline uint32_t read_IRQreg (a_openpic *opp, int n_IRQ, uint32_t reg)
470 470
{
471 471
    uint32_t retval;
472 472

  
......
482 482
    return retval;
483 483
}
484 484

  
485
static inline void write_IRQreg (openpic_t *opp, int n_IRQ,
485
static inline void write_IRQreg (a_openpic *opp, int n_IRQ,
486 486
                                 uint32_t reg, uint32_t val)
487 487
{
488 488
    uint32_t tmp;
......
510 510

  
511 511
#if 0 // Code provision for Intel model
512 512
#if MAX_DBL > 0
513
static uint32_t read_doorbell_register (openpic_t *opp,
513
static uint32_t read_doorbell_register (a_openpic *opp,
514 514
					int n_dbl, uint32_t offset)
515 515
{
516 516
    uint32_t retval;
......
548 548
#endif
549 549

  
550 550
#if MAX_MBX > 0
551
static uint32_t read_mailbox_register (openpic_t *opp,
551
static uint32_t read_mailbox_register (a_openpic *opp,
552 552
				       int n_mbx, uint32_t offset)
553 553
{
554 554
    uint32_t retval;
......
568 568
    return retval;
569 569
}
570 570

  
571
static void write_mailbox_register (openpic_t *opp, int n_mbx,
571
static void write_mailbox_register (a_openpic *opp, int n_mbx,
572 572
				    uint32_t address, uint32_t value)
573 573
{
574 574
    switch (offset) {
......
586 586
#endif
587 587
#endif /* 0 : Code provision for Intel model */
588 588

  
589
static void openpic_gbl_write (void *opaque, target_phys_addr_t addr, uint32_t val)
589
static void openpic_gbl_write (void *opaque, a_target_phys_addr addr, uint32_t val)
590 590
{
591
    openpic_t *opp = opaque;
592
    IRQ_dst_t *dst;
591
    a_openpic *opp = opaque;
592
    a_IRQ_dst *dst;
593 593
    int idx;
594 594

  
595 595
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
......
646 646
    }
647 647
}
648 648

  
649
static uint32_t openpic_gbl_read (void *opaque, target_phys_addr_t addr)
649
static uint32_t openpic_gbl_read (void *opaque, a_target_phys_addr addr)
650 650
{
651
    openpic_t *opp = opaque;
651
    a_openpic *opp = opaque;
652 652
    uint32_t retval;
653 653

  
654 654
    DPRINTF("%s: addr " TARGET_FMT_plx "\n", __func__, addr);
......
700 700

  
701 701
static void openpic_timer_write (void *opaque, uint32_t addr, uint32_t val)
702 702
{
703
    openpic_t *opp = opaque;
703
    a_openpic *opp = opaque;
704 704
    int idx;
705 705

  
706 706
    DPRINTF("%s: addr %08x <= %08x\n", __func__, addr, val);
......
734 734

  
735 735
static uint32_t openpic_timer_read (void *opaque, uint32_t addr)
736 736
{
737
    openpic_t *opp = opaque;
737
    a_openpic *opp = opaque;
738 738
    uint32_t retval;
739 739
    int idx;
740 740

  
......
770 770

  
771 771
static void openpic_src_write (void *opaque, uint32_t addr, uint32_t val)
772 772
{
773
    openpic_t *opp = opaque;
773
    a_openpic *opp = opaque;
774 774
    int idx;
775 775

  
776 776
    DPRINTF("%s: addr %08x <= %08x\n", __func__, addr, val);
......
792 792

  
793 793
static uint32_t openpic_src_read (void *opaque, uint32_t addr)
794 794
{
795
    openpic_t *opp = opaque;
795
    a_openpic *opp = opaque;
796 796
    uint32_t retval;
797 797
    int idx;
798 798

  
......
817 817
    return retval;
818 818
}
819 819

  
820
static void openpic_cpu_write (void *opaque, target_phys_addr_t addr, uint32_t val)
820
static void openpic_cpu_write (void *opaque, a_target_phys_addr addr, uint32_t val)
821 821
{
822
    openpic_t *opp = opaque;
823
    IRQ_src_t *src;
824
    IRQ_dst_t *dst;
822
    a_openpic *opp = opaque;
823
    a_IRQ_src *src;
824
    a_IRQ_dst *dst;
825 825
    int idx, s_IRQ, n_IRQ;
826 826

  
827 827
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
......
878 878
    }
879 879
}
880 880

  
881
static uint32_t openpic_cpu_read (void *opaque, target_phys_addr_t addr)
881
static uint32_t openpic_cpu_read (void *opaque, a_target_phys_addr addr)
882 882
{
883
    openpic_t *opp = opaque;
884
    IRQ_src_t *src;
885
    IRQ_dst_t *dst;
883
    a_openpic *opp = opaque;
884
    a_IRQ_src *src;
885
    a_IRQ_dst *dst;
886 886
    uint32_t retval;
887 887
    int idx, n_IRQ;
888 888

  
......
955 955
}
956 956

  
957 957
static void openpic_buggy_write (void *opaque,
958
                                 target_phys_addr_t addr, uint32_t val)
958
                                 a_target_phys_addr addr, uint32_t val)
959 959
{
960 960
    printf("Invalid OPENPIC write access !\n");
961 961
}
962 962

  
963
static uint32_t openpic_buggy_read (void *opaque, target_phys_addr_t addr)
963
static uint32_t openpic_buggy_read (void *opaque, a_target_phys_addr addr)
964 964
{
965 965
    printf("Invalid OPENPIC read access !\n");
966 966

  
......
968 968
}
969 969

  
970 970
static void openpic_writel (void *opaque,
971
                            target_phys_addr_t addr, uint32_t val)
971
                            a_target_phys_addr addr, uint32_t val)
972 972
{
973
    openpic_t *opp = opaque;
973
    a_openpic *opp = opaque;
974 974

  
975 975
    addr &= 0x3FFFF;
976 976
    DPRINTF("%s: offset %08x val: %08x\n", __func__, (int)addr, val);
......
989 989
    }
990 990
}
991 991

  
992
static uint32_t openpic_readl (void *opaque,target_phys_addr_t addr)
992
static uint32_t openpic_readl (void *opaque,a_target_phys_addr addr)
993 993
{
994
    openpic_t *opp = opaque;
994
    a_openpic *opp = opaque;
995 995
    uint32_t retval;
996 996

  
997 997
    addr &= 0x3FFFF;
......
1028 1028
static void openpic_map(PCIDevice *pci_dev, int region_num,
1029 1029
                        uint32_t addr, uint32_t size, int type)
1030 1030
{
1031
    openpic_t *opp;
1031
    a_openpic *opp;
1032 1032

  
1033 1033
    DPRINTF("Map OpenPIC\n");
1034
    opp = (openpic_t *)pci_dev;
1034
    opp = (a_openpic *)pci_dev;
1035 1035
    /* Global registers */
1036 1036
    DPRINTF("Register OPENPIC gbl   %08x => %08x\n",
1037 1037
            addr + 0x1000, addr + 0x1000 + 0x100);
......
1053 1053
#endif
1054 1054
}
1055 1055

  
1056
static void openpic_save_IRQ_queue(QEMUFile* f, IRQ_queue_t *q)
1056
static void openpic_save_IRQ_queue(QEMUFile* f, a_IRQ_queue *q)
1057 1057
{
1058 1058
    unsigned int i;
1059 1059

  
......
1066 1066

  
1067 1067
static void openpic_save(QEMUFile* f, void *opaque)
1068 1068
{
1069
    openpic_t *opp = (openpic_t *)opaque;
1069
    a_openpic *opp = (a_openpic *)opaque;
1070 1070
    unsigned int i;
1071 1071

  
1072 1072
    qemu_put_be32s(f, &opp->frep);
......
1117 1117
    pci_device_save(&opp->pci_dev, f);
1118 1118
}
1119 1119

  
1120
static void openpic_load_IRQ_queue(QEMUFile* f, IRQ_queue_t *q)
1120
static void openpic_load_IRQ_queue(QEMUFile* f, a_IRQ_queue *q)
1121 1121
{
1122 1122
    unsigned int i;
1123 1123

  
......
1130 1130

  
1131 1131
static int openpic_load(QEMUFile* f, void *opaque, int version_id)
1132 1132
{
1133
    openpic_t *opp = (openpic_t *)opaque;
1133
    a_openpic *opp = (a_openpic *)opaque;
1134 1134
    unsigned int i;
1135 1135

  
1136 1136
    if (version_id != 1)
......
1184 1184
    return pci_device_load(&opp->pci_dev, f);
1185 1185
}
1186 1186

  
1187
static void openpic_irq_raise(openpic_t *opp, int n_CPU, IRQ_src_t *src)
1187
static void openpic_irq_raise(a_openpic *opp, int n_CPU, a_IRQ_src *src)
1188 1188
{
1189 1189
    qemu_irq_raise(opp->dst[n_CPU].irqs[OPENPIC_OUTPUT_INT]);
1190 1190
}
......
1192 1192
qemu_irq *openpic_init (PCIBus *bus, int *pmem_index, int nb_cpus,
1193 1193
                        qemu_irq **irqs, qemu_irq irq_out)
1194 1194
{
1195
    openpic_t *opp;
1195
    a_openpic *opp;
1196 1196
    uint8_t *pci_conf;
1197 1197
    int i, m;
1198 1198

  
......
1200 1200
    if (nb_cpus != 1)
1201 1201
        return NULL;
1202 1202
    if (bus) {
1203
        opp = (openpic_t *)pci_register_device(bus, "OpenPIC", sizeof(openpic_t),
1203
        opp = (a_openpic *)pci_register_device(bus, "OpenPIC", sizeof(a_openpic),
1204 1204
                                               -1, NULL, NULL);
1205 1205
        if (opp == NULL)
1206 1206
            return NULL;
......
1215 1215
        pci_register_bar((PCIDevice *)opp, 0, 0x40000,
1216 1216
                               PCI_ADDRESS_SPACE_MEM, &openpic_map);
1217 1217
    } else {
1218
        opp = qemu_mallocz(sizeof(openpic_t));
1218
        opp = qemu_mallocz(sizeof(a_openpic));
1219 1219
    }
1220 1220
    opp->mem_index = cpu_register_io_memory(openpic_read,
1221 1221
                                            openpic_write, opp);
......
1261 1261
    return qemu_allocate_irqs(openpic_set_irq, opp, opp->max_irq);
1262 1262
}
1263 1263

  
1264
static void mpic_irq_raise(openpic_t *mpp, int n_CPU, IRQ_src_t *src)
1264
static void mpic_irq_raise(a_openpic *mpp, int n_CPU, a_IRQ_src *src)
1265 1265
{
1266 1266
    int n_ci = IDR_CI0 - n_CPU;
1267 1267

  
......
1275 1275

  
1276 1276
static void mpic_reset (void *opaque)
1277 1277
{
1278
    openpic_t *mpp = (openpic_t *)opaque;
1278
    a_openpic *mpp = (a_openpic *)opaque;
1279 1279
    int i;
1280 1280

  
1281 1281
    mpp->glbc = 0x80000000;
......
1293 1293
    for (i = 0; i < MAX_CPU; i++) {
1294 1294
        mpp->dst[i].pctp      = 0x0000000F;
1295 1295
        mpp->dst[i].tfrr      = 0x00000000;
1296
        memset(&mpp->dst[i].raised, 0, sizeof(IRQ_queue_t));
1296
        memset(&mpp->dst[i].raised, 0, sizeof(a_IRQ_queue));
1297 1297
        mpp->dst[i].raised.next = -1;
1298
        memset(&mpp->dst[i].servicing, 0, sizeof(IRQ_queue_t));
1298
        memset(&mpp->dst[i].servicing, 0, sizeof(a_IRQ_queue));
1299 1299
        mpp->dst[i].servicing.next = -1;
1300 1300
    }
1301 1301
    /* Initialise timers */
......
1307 1307
    mpp->glbc = 0x00000000;
1308 1308
}
1309 1309

  
1310
static void mpic_timer_write (void *opaque, target_phys_addr_t addr, uint32_t val)
1310
static void mpic_timer_write (void *opaque, a_target_phys_addr addr, uint32_t val)
1311 1311
{
1312
    openpic_t *mpp = opaque;
1312
    a_openpic *mpp = opaque;
1313 1313
    int idx, cpu;
1314 1314

  
1315 1315
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
......
1340 1340
    }
1341 1341
}
1342 1342

  
1343
static uint32_t mpic_timer_read (void *opaque, target_phys_addr_t addr)
1343
static uint32_t mpic_timer_read (void *opaque, a_target_phys_addr addr)
1344 1344
{
1345
    openpic_t *mpp = opaque;
1345
    a_openpic *mpp = opaque;
1346 1346
    uint32_t retval;
1347 1347
    int idx, cpu;
1348 1348

  
......
1375 1375
    return retval;
1376 1376
}
1377 1377

  
1378
static void mpic_src_ext_write (void *opaque, target_phys_addr_t addr,
1378
static void mpic_src_ext_write (void *opaque, a_target_phys_addr addr,
1379 1379
                                uint32_t val)
1380 1380
{
1381
    openpic_t *mpp = opaque;
1381
    a_openpic *mpp = opaque;
1382 1382
    int idx = MPIC_EXT_IRQ;
1383 1383

  
1384 1384
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
......
1398 1398
    }
1399 1399
}
1400 1400

  
1401
static uint32_t mpic_src_ext_read (void *opaque, target_phys_addr_t addr)
1401
static uint32_t mpic_src_ext_read (void *opaque, a_target_phys_addr addr)
1402 1402
{
1403
    openpic_t *mpp = opaque;
1403
    a_openpic *mpp = opaque;
1404 1404
    uint32_t retval;
1405 1405
    int idx = MPIC_EXT_IRQ;
1406 1406

  
......
1425 1425
    return retval;
1426 1426
}
1427 1427

  
1428
static void mpic_src_int_write (void *opaque, target_phys_addr_t addr,
1428
static void mpic_src_int_write (void *opaque, a_target_phys_addr addr,
1429 1429
                                uint32_t val)
1430 1430
{
1431
    openpic_t *mpp = opaque;
1431
    a_openpic *mpp = opaque;
1432 1432
    int idx = MPIC_INT_IRQ;
1433 1433

  
1434 1434
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
......
1448 1448
    }
1449 1449
}
1450 1450

  
1451
static uint32_t mpic_src_int_read (void *opaque, target_phys_addr_t addr)
1451
static uint32_t mpic_src_int_read (void *opaque, a_target_phys_addr addr)
1452 1452
{
1453
    openpic_t *mpp = opaque;
1453
    a_openpic *mpp = opaque;
1454 1454
    uint32_t retval;
1455 1455
    int idx = MPIC_INT_IRQ;
1456 1456

  
......
1475 1475
    return retval;
1476 1476
}
1477 1477

  
1478
static void mpic_src_msg_write (void *opaque, target_phys_addr_t addr,
1478
static void mpic_src_msg_write (void *opaque, a_target_phys_addr addr,
1479 1479
                                uint32_t val)
1480 1480
{
1481
    openpic_t *mpp = opaque;
1481
    a_openpic *mpp = opaque;
1482 1482
    int idx = MPIC_MSG_IRQ;
1483 1483

  
1484 1484
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
......
1498 1498
    }
1499 1499
}
1500 1500

  
1501
static uint32_t mpic_src_msg_read (void *opaque, target_phys_addr_t addr)
1501
static uint32_t mpic_src_msg_read (void *opaque, a_target_phys_addr addr)
1502 1502
{
1503
    openpic_t *mpp = opaque;
1503
    a_openpic *mpp = opaque;
1504 1504
    uint32_t retval;
1505 1505
    int idx = MPIC_MSG_IRQ;
1506 1506

  
......
1525 1525
    return retval;
1526 1526
}
1527 1527

  
1528
static void mpic_src_msi_write (void *opaque, target_phys_addr_t addr,
1528
static void mpic_src_msi_write (void *opaque, a_target_phys_addr addr,
1529 1529
                                uint32_t val)
1530 1530
{
1531
    openpic_t *mpp = opaque;
1531
    a_openpic *mpp = opaque;
1532 1532
    int idx = MPIC_MSI_IRQ;
1533 1533

  
1534 1534
    DPRINTF("%s: addr " TARGET_FMT_plx " <= %08x\n", __func__, addr, val);
......
1547 1547
        }
1548 1548
    }
1549 1549
}
1550
static uint32_t mpic_src_msi_read (void *opaque, target_phys_addr_t addr)
1550
static uint32_t mpic_src_msi_read (void *opaque, a_target_phys_addr addr)
1551 1551
{
1552
    openpic_t *mpp = opaque;
1552
    a_openpic *mpp = opaque;
1553 1553
    uint32_t retval;
1554 1554
    int idx = MPIC_MSI_IRQ;
1555 1555

  
......
1657 1657
    &mpic_src_msi_read,
1658 1658
};
1659 1659

  
1660
qemu_irq *mpic_init (target_phys_addr_t base, int nb_cpus,
1660
qemu_irq *mpic_init (a_target_phys_addr base, int nb_cpus,
1661 1661
                        qemu_irq **irqs, qemu_irq irq_out)
1662 1662
{
1663
    openpic_t *mpp;
1663
    a_openpic *mpp;
1664 1664
    int i;
1665 1665
    struct {
1666 1666
        CPUReadMemoryFunc * const *read;
1667 1667
        CPUWriteMemoryFunc * const *write;
1668
        target_phys_addr_t start_addr;
1669
        ram_addr_t size;
1668
        a_target_phys_addr start_addr;
1669
        a_ram_addr size;
1670 1670
    } const list[] = {
1671 1671
        {mpic_glb_read, mpic_glb_write, MPIC_GLB_REG_START, MPIC_GLB_REG_SIZE},
1672 1672
        {mpic_tmr_read, mpic_tmr_write, MPIC_TMR_REG_START, MPIC_TMR_REG_SIZE},
......
1681 1681
    if (nb_cpus != 1)
1682 1682
        return NULL;
1683 1683

  
1684
    mpp = qemu_mallocz(sizeof(openpic_t));
1684
    mpp = qemu_mallocz(sizeof(a_openpic));
1685 1685

  
1686 1686
    for (i = 0; i < sizeof(list)/sizeof(list[0]); i++) {
1687 1687
        int mem_index;

Also available in: Unified diff