qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

pcmcia.h (2126B)


      1 #ifndef HW_PCMCIA_H
      2 #define HW_PCMCIA_H
      3 
      4 /* PCMCIA/Cardbus */
      5 
      6 #include "hw/qdev-core.h"
      7 #include "qom/object.h"
      8 
      9 typedef struct PCMCIASocket {
     10     qemu_irq irq;
     11     bool attached;
     12 } PCMCIASocket;
     13 
     14 #define TYPE_PCMCIA_CARD "pcmcia-card"
     15 OBJECT_DECLARE_TYPE(PCMCIACardState, PCMCIACardClass, PCMCIA_CARD)
     16 
     17 struct PCMCIACardState {
     18     /*< private >*/
     19     DeviceState parent_obj;
     20     /*< public >*/
     21 
     22     PCMCIASocket *slot;
     23 };
     24 
     25 struct PCMCIACardClass {
     26     /*< private >*/
     27     DeviceClass parent_class;
     28     /*< public >*/
     29 
     30     int (*attach)(PCMCIACardState *state);
     31     int (*detach)(PCMCIACardState *state);
     32 
     33     const uint8_t *cis;
     34     int cis_len;
     35 
     36     /* Only valid if attached */
     37     uint8_t (*attr_read)(PCMCIACardState *card, uint32_t address);
     38     void (*attr_write)(PCMCIACardState *card, uint32_t address, uint8_t value);
     39     uint16_t (*common_read)(PCMCIACardState *card, uint32_t address);
     40     void (*common_write)(PCMCIACardState *card,
     41                          uint32_t address, uint16_t value);
     42     uint16_t (*io_read)(PCMCIACardState *card, uint32_t address);
     43     void (*io_write)(PCMCIACardState *card, uint32_t address, uint16_t value);
     44 };
     45 
     46 #define CISTPL_DEVICE		0x01	/* 5V Device Information Tuple */
     47 #define CISTPL_NO_LINK		0x14	/* No Link Tuple */
     48 #define CISTPL_VERS_1		0x15	/* Level 1 Version Tuple */
     49 #define CISTPL_JEDEC_C		0x18	/* JEDEC ID Tuple */
     50 #define CISTPL_JEDEC_A		0x19	/* JEDEC ID Tuple */
     51 #define CISTPL_CONFIG		0x1a	/* Configuration Tuple */
     52 #define CISTPL_CFTABLE_ENTRY	0x1b	/* 16-bit PCCard Configuration */
     53 #define CISTPL_DEVICE_OC	0x1c	/* Additional Device Information */
     54 #define CISTPL_DEVICE_OA	0x1d	/* Additional Device Information */
     55 #define CISTPL_DEVICE_GEO	0x1e	/* Additional Device Information */
     56 #define CISTPL_DEVICE_GEO_A	0x1f	/* Additional Device Information */
     57 #define CISTPL_MANFID		0x20	/* Manufacture ID Tuple */
     58 #define CISTPL_FUNCID		0x21	/* Function ID Tuple */
     59 #define CISTPL_FUNCE		0x22	/* Function Extension Tuple */
     60 #define CISTPL_END		0xff	/* Tuple End */
     61 #define CISTPL_ENDMARK		0xff
     62 
     63 /* dscm1xxxx.c */
     64 PCMCIACardState *dscm1xxxx_init(DriveInfo *bdrv);
     65 
     66 #endif