enum _Access_type {_Port8, _Port16, _Mem8, _Mem16};
typedef struct _IOreg {
enum _Access_type type;
union {
unsigned short port;
volatile unsigned char *ptr8;
volatile unsigned short *ptr16;
} location;
} _IOreg;