| The Android Open Source Project | 8b23a6c | 2009-03-03 19:30:32 -0800 | [diff] [blame] | 1 | /* PCMCIA/Cardbus */ | 
 | 2 |  | 
| David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 3 | #ifndef _HW_PCMCIA_H | 
 | 4 | #define _HW_PCMCIA_H | 
 | 5 |  | 
 | 6 | #include "qemu-common.h" | 
 | 7 |  | 
 | 8 | typedef struct { | 
| The Android Open Source Project | 8b23a6c | 2009-03-03 19:30:32 -0800 | [diff] [blame] | 9 |     qemu_irq irq; | 
 | 10 |     int attached; | 
 | 11 |     const char *slot_string; | 
 | 12 |     const char *card_string; | 
| David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 13 | } PCMCIASocket; | 
| The Android Open Source Project | 8b23a6c | 2009-03-03 19:30:32 -0800 | [diff] [blame] | 14 |  | 
| David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 15 | void pcmcia_socket_register(PCMCIASocket *socket); | 
 | 16 | void pcmcia_socket_unregister(PCMCIASocket *socket); | 
 | 17 | void pcmcia_info(Monitor *mon); | 
| The Android Open Source Project | 8b23a6c | 2009-03-03 19:30:32 -0800 | [diff] [blame] | 18 |  | 
| David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 19 | struct PCMCIACardState { | 
| The Android Open Source Project | 8b23a6c | 2009-03-03 19:30:32 -0800 | [diff] [blame] | 20 |     void *state; | 
| David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 21 |     PCMCIASocket *slot; | 
| The Android Open Source Project | 8b23a6c | 2009-03-03 19:30:32 -0800 | [diff] [blame] | 22 |     int (*attach)(void *state); | 
 | 23 |     int (*detach)(void *state); | 
 | 24 |     const uint8_t *cis; | 
 | 25 |     int cis_len; | 
 | 26 |  | 
 | 27 |     /* Only valid if attached */ | 
 | 28 |     uint8_t (*attr_read)(void *state, uint32_t address); | 
 | 29 |     void (*attr_write)(void *state, uint32_t address, uint8_t value); | 
 | 30 |     uint16_t (*common_read)(void *state, uint32_t address); | 
 | 31 |     void (*common_write)(void *state, uint32_t address, uint16_t value); | 
 | 32 |     uint16_t (*io_read)(void *state, uint32_t address); | 
 | 33 |     void (*io_write)(void *state, uint32_t address, uint16_t value); | 
 | 34 | }; | 
 | 35 |  | 
 | 36 | #define CISTPL_DEVICE		0x01	/* 5V Device Information Tuple */ | 
 | 37 | #define CISTPL_NO_LINK		0x14	/* No Link Tuple */ | 
 | 38 | #define CISTPL_VERS_1		0x15	/* Level 1 Version Tuple */ | 
 | 39 | #define CISTPL_JEDEC_C		0x18	/* JEDEC ID Tuple */ | 
 | 40 | #define CISTPL_JEDEC_A		0x19	/* JEDEC ID Tuple */ | 
 | 41 | #define CISTPL_CONFIG		0x1a	/* Configuration Tuple */ | 
 | 42 | #define CISTPL_CFTABLE_ENTRY	0x1b	/* 16-bit PCCard Configuration */ | 
 | 43 | #define CISTPL_DEVICE_OC	0x1c	/* Additional Device Information */ | 
 | 44 | #define CISTPL_DEVICE_OA	0x1d	/* Additional Device Information */ | 
 | 45 | #define CISTPL_DEVICE_GEO	0x1e	/* Additional Device Information */ | 
 | 46 | #define CISTPL_DEVICE_GEO_A	0x1f	/* Additional Device Information */ | 
 | 47 | #define CISTPL_MANFID		0x20	/* Manufacture ID Tuple */ | 
 | 48 | #define CISTPL_FUNCID		0x21	/* Function ID Tuple */ | 
 | 49 | #define CISTPL_FUNCE		0x22	/* Function Extension Tuple */ | 
 | 50 | #define CISTPL_END		0xff	/* Tuple End */ | 
 | 51 | #define CISTPL_ENDMARK		0xff | 
 | 52 |  | 
 | 53 | /* dscm1xxxx.c */ | 
| David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 54 | PCMCIACardState *dscm1xxxx_init(BlockDriverState *bdrv); | 
| The Android Open Source Project | 8b23a6c | 2009-03-03 19:30:32 -0800 | [diff] [blame] | 55 |  | 
| David 'Digit' Turner | 5d8f37a | 2009-09-14 14:32:27 -0700 | [diff] [blame] | 56 | #endif /* _HW_PCMCIA_H */ |