Revision a4bc3afc hw/serial.c

b/hw/serial.c
371 371
}
372 372

  
373 373
/* Memory mapped interface */
374
static uint32_t serial_mm_readb (void *opaque, target_phys_addr_t addr)
374
uint32_t serial_mm_readb (void *opaque, target_phys_addr_t addr)
375 375
{
376 376
    SerialState *s = opaque;
377 377

  
378 378
    return serial_ioport_read(s, (addr - s->base) >> s->it_shift) & 0xFF;
379 379
}
380 380

  
381
static void serial_mm_writeb (void *opaque,
382
                              target_phys_addr_t addr, uint32_t value)
381
void serial_mm_writeb (void *opaque,
382
                       target_phys_addr_t addr, uint32_t value)
383 383
{
384 384
    SerialState *s = opaque;
385 385

  
386 386
    serial_ioport_write(s, (addr - s->base) >> s->it_shift, value & 0xFF);
387 387
}
388 388

  
389
static uint32_t serial_mm_readw (void *opaque, target_phys_addr_t addr)
389
uint32_t serial_mm_readw (void *opaque, target_phys_addr_t addr)
390 390
{
391 391
    SerialState *s = opaque;
392 392

  
393 393
    return serial_ioport_read(s, (addr - s->base) >> s->it_shift) & 0xFFFF;
394 394
}
395 395

  
396
static void serial_mm_writew (void *opaque,
397
                              target_phys_addr_t addr, uint32_t value)
396
void serial_mm_writew (void *opaque,
397
                       target_phys_addr_t addr, uint32_t value)
398 398
{
399 399
    SerialState *s = opaque;
400 400

  
401 401
    serial_ioport_write(s, (addr - s->base) >> s->it_shift, value & 0xFFFF);
402 402
}
403 403

  
404
static uint32_t serial_mm_readl (void *opaque, target_phys_addr_t addr)
404
uint32_t serial_mm_readl (void *opaque, target_phys_addr_t addr)
405 405
{
406 406
    SerialState *s = opaque;
407 407

  
408 408
    return serial_ioport_read(s, (addr - s->base) >> s->it_shift);
409 409
}
410 410

  
411
static void serial_mm_writel (void *opaque,
412
                              target_phys_addr_t addr, uint32_t value)
411
void serial_mm_writel (void *opaque,
412
                       target_phys_addr_t addr, uint32_t value)
413 413
{
414 414
    SerialState *s = opaque;
415 415

  
......
430 430

  
431 431
SerialState *serial_mm_init (SetIRQFunc *set_irq, void *opaque,
432 432
                             target_ulong base, int it_shift,
433
                             int irq, CharDriverState *chr)
433
                             int irq, CharDriverState *chr,
434
                             int ioregister)
434 435
{
435 436
    SerialState *s;
436 437
    int s_io_memory;
......
449 450

  
450 451
    register_savevm("serial", base, 2, serial_save, serial_load, s);
451 452

  
452
    s_io_memory = cpu_register_io_memory(0, serial_mm_read,
453
                                         serial_mm_write, s);
454
    cpu_register_physical_memory(base, 8 << it_shift, s_io_memory);
453
    if (ioregister) {
454
        s_io_memory = cpu_register_io_memory(0, serial_mm_read,
455
                                             serial_mm_write, s);
456
        cpu_register_physical_memory(base, 8 << it_shift, s_io_memory);
457
    }
455 458
    s->chr = chr;
456 459
    qemu_chr_add_handlers(chr, serial_can_receive1, serial_receive1,
457 460
                          serial_event, s);

Also available in: Unified diff