28 lines
		
	
	
		
			969 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			969 B
		
	
	
	
		
			C
		
	
	
	
#ifndef READ_WRITE_HANDLER_H
 | 
						|
#define READ_WRITE_HANDLER_H
 | 
						|
 | 
						|
#include "qemu-common.h"
 | 
						|
#include "ioport.h"
 | 
						|
 | 
						|
typedef struct ReadWriteHandler ReadWriteHandler;
 | 
						|
 | 
						|
/* len is guaranteed to be one of 1, 2 or 4, addr is guaranteed to fit in an
 | 
						|
 * appropriate type (io/memory/etc). They do not need to be range checked. */
 | 
						|
typedef void WriteHandlerFunc(ReadWriteHandler *, pcibus_t addr,
 | 
						|
                              uint32_t value, int len);
 | 
						|
typedef uint32_t ReadHandlerFunc(ReadWriteHandler *, pcibus_t addr, int len);
 | 
						|
 | 
						|
struct ReadWriteHandler {
 | 
						|
    WriteHandlerFunc *write;
 | 
						|
    ReadHandlerFunc *read;
 | 
						|
};
 | 
						|
 | 
						|
/* Helpers for when we want to use a single routine with length. */
 | 
						|
/* CPU memory handler: both read and write must be present. */
 | 
						|
int cpu_register_io_memory_simple(ReadWriteHandler *);
 | 
						|
/* io port handler: can supply only read or write handlers. */
 | 
						|
int register_ioport_simple(ReadWriteHandler *,
 | 
						|
                           pio_addr_t start, int length, int size);
 | 
						|
 | 
						|
#endif
 |