Revision 546921ea hw/net/xgmac.c

b/hw/net/xgmac.c
135 135
    uint64_t rx_mcast;
136 136
} RxTxStats;
137 137

  
138
#define TYPE_XGMAC "xgmac"
139
#define XGMAC(obj) OBJECT_CHECK(XgmacState, (obj), TYPE_XGMAC)
140

  
138 141
typedef struct XgmacState {
139
    SysBusDevice busdev;
142
    SysBusDevice parent_obj;
143

  
140 144
    MemoryRegion iomem;
141 145
    qemu_irq sbd_irq;
142 146
    qemu_irq pmt_irq;
......
173 177
    }
174 178
};
175 179

  
176
static void xgmac_read_desc(struct XgmacState *s, struct desc *d, int rx)
180
static void xgmac_read_desc(XgmacState *s, struct desc *d, int rx)
177 181
{
178 182
    uint32_t addr = rx ? s->regs[DMA_CUR_RX_DESC_ADDR] :
179 183
        s->regs[DMA_CUR_TX_DESC_ADDR];
180 184
    cpu_physical_memory_read(addr, d, sizeof(*d));
181 185
}
182 186

  
183
static void xgmac_write_desc(struct XgmacState *s, struct desc *d, int rx)
187
static void xgmac_write_desc(XgmacState *s, struct desc *d, int rx)
184 188
{
185 189
    int reg = rx ? DMA_CUR_RX_DESC_ADDR : DMA_CUR_TX_DESC_ADDR;
186 190
    uint32_t addr = s->regs[reg];
......
195 199
    cpu_physical_memory_write(addr, d, sizeof(*d));
196 200
}
197 201

  
198
static void xgmac_enet_send(struct XgmacState *s)
202
static void xgmac_enet_send(XgmacState *s)
199 203
{
200 204
    struct desc bd;
201 205
    int frame_size;
......
246 250
    }
247 251
}
248 252

  
249
static void enet_update_irq(struct XgmacState *s)
253
static void enet_update_irq(XgmacState *s)
250 254
{
251 255
    int stat = s->regs[DMA_STATUS] & s->regs[DMA_INTR_ENA];
252 256
    qemu_set_irq(s->sbd_irq, !!stat);
......
254 258

  
255 259
static uint64_t enet_read(void *opaque, hwaddr addr, unsigned size)
256 260
{
257
    struct XgmacState *s = opaque;
261
    XgmacState *s = opaque;
258 262
    uint64_t r = 0;
259 263
    addr >>= 2;
260 264

  
......
274 278
static void enet_write(void *opaque, hwaddr addr,
275 279
                       uint64_t value, unsigned size)
276 280
{
277
    struct XgmacState *s = opaque;
281
    XgmacState *s = opaque;
278 282

  
279 283
    addr >>= 2;
280 284
    switch (addr) {
......
310 314

  
311 315
static int eth_can_rx(NetClientState *nc)
312 316
{
313
    struct XgmacState *s = qemu_get_nic_opaque(nc);
317
    XgmacState *s = qemu_get_nic_opaque(nc);
314 318

  
315 319
    /* RX enabled?  */
316 320
    return s->regs[DMA_CONTROL] & DMA_CONTROL_SR;
......
318 322

  
319 323
static ssize_t eth_rx(NetClientState *nc, const uint8_t *buf, size_t size)
320 324
{
321
    struct XgmacState *s = qemu_get_nic_opaque(nc);
325
    XgmacState *s = qemu_get_nic_opaque(nc);
322 326
    static const unsigned char sa_bcast[6] = {0xff, 0xff, 0xff,
323 327
                                              0xff, 0xff, 0xff};
324 328
    int unicast, broadcast, multicast;
......
366 370

  
367 371
static void eth_cleanup(NetClientState *nc)
368 372
{
369
    struct XgmacState *s = qemu_get_nic_opaque(nc);
373
    XgmacState *s = qemu_get_nic_opaque(nc);
374

  
370 375
    s->nic = NULL;
371 376
}
372 377

  
......
378 383
    .cleanup = eth_cleanup,
379 384
};
380 385

  
381
static int xgmac_enet_init(SysBusDevice *dev)
386
static int xgmac_enet_init(SysBusDevice *sbd)
382 387
{
383
    struct XgmacState *s = FROM_SYSBUS(typeof(*s), dev);
388
    DeviceState *dev = DEVICE(sbd);
389
    XgmacState *s = XGMAC(dev);
384 390

  
385 391
    memory_region_init_io(&s->iomem, OBJECT(s), &enet_mem_ops, s,
386 392
                          "xgmac", 0x1000);
387
    sysbus_init_mmio(dev, &s->iomem);
388
    sysbus_init_irq(dev, &s->sbd_irq);
389
    sysbus_init_irq(dev, &s->pmt_irq);
390
    sysbus_init_irq(dev, &s->mci_irq);
393
    sysbus_init_mmio(sbd, &s->iomem);
394
    sysbus_init_irq(sbd, &s->sbd_irq);
395
    sysbus_init_irq(sbd, &s->pmt_irq);
396
    sysbus_init_irq(sbd, &s->mci_irq);
391 397

  
392 398
    qemu_macaddr_default_if_unset(&s->conf.macaddr);
393 399
    s->nic = qemu_new_nic(&net_xgmac_enet_info, &s->conf,
394
                          object_get_typename(OBJECT(dev)), dev->qdev.id, s);
400
                          object_get_typename(OBJECT(dev)), dev->id, s);
395 401
    qemu_format_nic_info_str(qemu_get_queue(s->nic), s->conf.macaddr.a);
396 402

  
397 403
    s->regs[XGMAC_ADDR_HIGH(0)] = (s->conf.macaddr.a[5] << 8) |
......
405 411
}
406 412

  
407 413
static Property xgmac_properties[] = {
408
    DEFINE_NIC_PROPERTIES(struct XgmacState, conf),
414
    DEFINE_NIC_PROPERTIES(XgmacState, conf),
409 415
    DEFINE_PROP_END_OF_LIST(),
410 416
};
411 417

  
......
420 426
}
421 427

  
422 428
static const TypeInfo xgmac_enet_info = {
423
    .name          = "xgmac",
429
    .name          = TYPE_XGMAC,
424 430
    .parent        = TYPE_SYS_BUS_DEVICE,
425
    .instance_size = sizeof(struct XgmacState),
431
    .instance_size = sizeof(XgmacState),
426 432
    .class_init    = xgmac_enet_class_init,
427 433
};
428 434

  

Also available in: Unified diff