i8257: move state definition to new independent header
We will now be able to embed the i8257 interrupt controller in another object. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Message-id: 1453843944-26833-10-git-send-email-hpoussin@reactos.org Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
		
							parent
							
								
									340e19ebf2
								
							
						
					
					
						commit
						f5f19ee2e4
					
				| 
						 | 
					@ -24,10 +24,10 @@
 | 
				
			||||||
#include "qemu/osdep.h"
 | 
					#include "qemu/osdep.h"
 | 
				
			||||||
#include "hw/hw.h"
 | 
					#include "hw/hw.h"
 | 
				
			||||||
#include "hw/isa/isa.h"
 | 
					#include "hw/isa/isa.h"
 | 
				
			||||||
 | 
					#include "hw/isa/i8257.h"
 | 
				
			||||||
#include "qemu/main-loop.h"
 | 
					#include "qemu/main-loop.h"
 | 
				
			||||||
#include "trace.h"
 | 
					#include "trace.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define TYPE_I8257 "i8257"
 | 
					 | 
				
			||||||
#define I8257(obj) \
 | 
					#define I8257(obj) \
 | 
				
			||||||
    OBJECT_CHECK(I8257State, (obj), TYPE_I8257)
 | 
					    OBJECT_CHECK(I8257State, (obj), TYPE_I8257)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,42 +42,9 @@
 | 
				
			||||||
#define ldebug(...)
 | 
					#define ldebug(...)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct I8257Regs {
 | 
					 | 
				
			||||||
    int now[2];
 | 
					 | 
				
			||||||
    uint16_t base[2];
 | 
					 | 
				
			||||||
    uint8_t mode;
 | 
					 | 
				
			||||||
    uint8_t page;
 | 
					 | 
				
			||||||
    uint8_t pageh;
 | 
					 | 
				
			||||||
    uint8_t dack;
 | 
					 | 
				
			||||||
    uint8_t eop;
 | 
					 | 
				
			||||||
    DMA_transfer_handler transfer_handler;
 | 
					 | 
				
			||||||
    void *opaque;
 | 
					 | 
				
			||||||
} I8257Regs;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define ADDR 0
 | 
					#define ADDR 0
 | 
				
			||||||
#define COUNT 1
 | 
					#define COUNT 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct I8257State {
 | 
					 | 
				
			||||||
    ISADevice parent_obj;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    int32_t base;
 | 
					 | 
				
			||||||
    int32_t page_base;
 | 
					 | 
				
			||||||
    int32_t pageh_base;
 | 
					 | 
				
			||||||
    int32_t dshift;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    uint8_t status;
 | 
					 | 
				
			||||||
    uint8_t command;
 | 
					 | 
				
			||||||
    uint8_t mask;
 | 
					 | 
				
			||||||
    uint8_t flip_flop;
 | 
					 | 
				
			||||||
    I8257Regs regs[4];
 | 
					 | 
				
			||||||
    MemoryRegion channel_io;
 | 
					 | 
				
			||||||
    MemoryRegion cont_io;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    QEMUBH *dma_bh;
 | 
					 | 
				
			||||||
    bool dma_bh_scheduled;
 | 
					 | 
				
			||||||
    int running;
 | 
					 | 
				
			||||||
} I8257State;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static I8257State *dma_controllers[2];
 | 
					static I8257State *dma_controllers[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum {
 | 
					enum {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,42 @@
 | 
				
			||||||
 | 
					#ifndef HW_I8257_H
 | 
				
			||||||
 | 
					#define HW_I8257_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TYPE_I8257 "i8257"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct I8257Regs {
 | 
				
			||||||
 | 
					    int now[2];
 | 
				
			||||||
 | 
					    uint16_t base[2];
 | 
				
			||||||
 | 
					    uint8_t mode;
 | 
				
			||||||
 | 
					    uint8_t page;
 | 
				
			||||||
 | 
					    uint8_t pageh;
 | 
				
			||||||
 | 
					    uint8_t dack;
 | 
				
			||||||
 | 
					    uint8_t eop;
 | 
				
			||||||
 | 
					    DMA_transfer_handler transfer_handler;
 | 
				
			||||||
 | 
					    void *opaque;
 | 
				
			||||||
 | 
					} I8257Regs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct I8257State {
 | 
				
			||||||
 | 
					    /* <private> */
 | 
				
			||||||
 | 
					    ISADevice parent_obj;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* <public> */
 | 
				
			||||||
 | 
					    int32_t base;
 | 
				
			||||||
 | 
					    int32_t page_base;
 | 
				
			||||||
 | 
					    int32_t pageh_base;
 | 
				
			||||||
 | 
					    int32_t dshift;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    uint8_t status;
 | 
				
			||||||
 | 
					    uint8_t command;
 | 
				
			||||||
 | 
					    uint8_t mask;
 | 
				
			||||||
 | 
					    uint8_t flip_flop;
 | 
				
			||||||
 | 
					    I8257Regs regs[4];
 | 
				
			||||||
 | 
					    MemoryRegion channel_io;
 | 
				
			||||||
 | 
					    MemoryRegion cont_io;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QEMUBH *dma_bh;
 | 
				
			||||||
 | 
					    bool dma_bh_scheduled;
 | 
				
			||||||
 | 
					    int running;
 | 
				
			||||||
 | 
					} I8257State;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue