Revision defdb20e hw/parallel.c
b/hw/parallel.c | ||
---|---|---|
64 | 64 |
|
65 | 65 |
#define PARA_CTR_SIGNAL (PARA_CTR_SELECT|PARA_CTR_INIT|PARA_CTR_AUTOLF|PARA_CTR_STROBE) |
66 | 66 |
|
67 |
struct ParallelState { |
|
67 |
typedef struct ParallelState {
|
|
68 | 68 |
uint8_t dataw; |
69 | 69 |
uint8_t datar; |
70 | 70 |
uint8_t status; |
... | ... | |
77 | 77 |
uint32_t last_read_offset; /* For debugging */ |
78 | 78 |
/* Memory-mapped interface */ |
79 | 79 |
int it_shift; |
80 |
}; |
|
80 |
} ParallelState;
|
|
81 | 81 |
|
82 | 82 |
typedef struct ISAParallelState { |
83 | 83 |
ISADevice dev; |
... | ... | |
500 | 500 |
return 0; |
501 | 501 |
} |
502 | 502 |
|
503 |
ParallelState *parallel_init(int index, CharDriverState *chr) |
|
504 |
{ |
|
505 |
ISADevice *dev; |
|
506 |
|
|
507 |
dev = isa_create("isa-parallel"); |
|
508 |
qdev_prop_set_uint32(&dev->qdev, "index", index); |
|
509 |
qdev_prop_set_chr(&dev->qdev, "chardev", chr); |
|
510 |
if (qdev_init(&dev->qdev) < 0) |
|
511 |
return NULL; |
|
512 |
return &DO_UPCAST(ISAParallelState, dev, dev)->state; |
|
513 |
} |
|
514 |
|
|
515 | 503 |
/* Memory mapped interface */ |
516 | 504 |
static uint32_t parallel_mm_readb (void *opaque, target_phys_addr_t addr) |
517 | 505 |
{ |
... | ... | |
571 | 559 |
}; |
572 | 560 |
|
573 | 561 |
/* If fd is zero, it means that the parallel device uses the console */ |
574 |
ParallelState *parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq, CharDriverState *chr) |
|
562 |
bool parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq, |
|
563 |
CharDriverState *chr) |
|
575 | 564 |
{ |
576 | 565 |
ParallelState *s; |
577 | 566 |
int io_sw; |
... | ... | |
585 | 574 |
io_sw = cpu_register_io_memory(parallel_mm_read_sw, parallel_mm_write_sw, |
586 | 575 |
s, DEVICE_NATIVE_ENDIAN); |
587 | 576 |
cpu_register_physical_memory(base, 8 << it_shift, io_sw); |
588 |
return s;
|
|
577 |
return true;
|
|
589 | 578 |
} |
590 | 579 |
|
591 | 580 |
static ISADeviceInfo parallel_isa_info = { |
Also available in: Unified diff