1#ifndef HW_I8257_H 2#define HW_I8257_H 3 4#define TYPE_I8257 "i8257" 5 6typedef struct I8257Regs { 7 int now[2]; 8 uint16_t base[2]; 9 uint8_t mode; 10 uint8_t page; 11 uint8_t pageh; 12 uint8_t dack; 13 uint8_t eop; 14 IsaDmaTransferHandler transfer_handler; 15 void *opaque; 16} I8257Regs; 17 18typedef struct I8257State { 19 /* <private> */ 20 ISADevice parent_obj; 21 22 /* <public> */ 23 int32_t base; 24 int32_t page_base; 25 int32_t pageh_base; 26 int32_t dshift; 27 28 uint8_t status; 29 uint8_t command; 30 uint8_t mask; 31 uint8_t flip_flop; 32 I8257Regs regs[4]; 33 MemoryRegion channel_io; 34 MemoryRegion cont_io; 35 36 QEMUBH *dma_bh; 37 bool dma_bh_scheduled; 38 int running; 39 PortioList portio_page; 40 PortioList portio_pageh; 41} I8257State; 42 43#endif 44