40 bus_space_handle_t
ioh;
47#define PCCARD_IO_ALLOCATED 0x01
63#define PCCARD_MEM_16BIT 1
64#define PCCARD_MEM_ATTR 2
66#define PCCARD_WIDTH_AUTO 0
67#define PCCARD_WIDTH_IO8 1
68#define PCCARD_WIDTH_IO16 2
83#define PCCARD_VENDOR_ANY (0xffffffff)
85#define PCCARD_PRODUCT_ANY (0xffffffff)
103#define PCCARD_PNP_DESCR "D:#;V32:manufacturer;V32:product;Z:cisvendor;Z:cisproduct;"
104#define PCCARD_PNP_INFO(t) \
105 MODULE_PNP_INFO(PCCARD_PNP_DESCR, pccard, t, t, nitems(t) - 1)
120 return CARD_DO_PRODUCT_LOOKUP(device_get_parent(dev), dev,
121 tab, ent_size, matchfn);
124#define pccard_cis_read_1(tuple, idx0) \
125 (bus_space_read_1((tuple)->memt, (tuple)->memh, (tuple)->mult*(idx0)))
127#define pccard_tuple_read_1(tuple, idx1) \
128 (pccard_cis_read_1((tuple), ((tuple)->ptr+(2+(idx1)))))
130#define pccard_tuple_read_2(tuple, idx2) \
131 (pccard_tuple_read_1((tuple), (idx2)) | \
132 (pccard_tuple_read_1((tuple), (idx2)+1)<<8))
134#define pccard_tuple_read_3(tuple, idx3) \
135 (pccard_tuple_read_1((tuple), (idx3)) | \
136 (pccard_tuple_read_1((tuple), (idx3)+1)<<8) | \
137 (pccard_tuple_read_1((tuple), (idx3)+2)<<16))
139#define pccard_tuple_read_4(tuple, idx4) \
140 (pccard_tuple_read_1((tuple), (idx4)) | \
141 (pccard_tuple_read_1((tuple), (idx4)+1)<<8) | \
142 (pccard_tuple_read_1((tuple), (idx4)+2)<<16) | \
143 (pccard_tuple_read_1((tuple), (idx4)+3)<<24))
145#define pccard_tuple_read_n(tuple, n, idxn) \
146 (((n)==1)?pccard_tuple_read_1((tuple), (idxn)) : \
147 (((n)==2)?pccard_tuple_read_2((tuple), (idxn)) : \
148 (((n)==3)?pccard_tuple_read_3((tuple), (idxn)) : \
149 pccard_tuple_read_4((tuple), (idxn)))))
151#define PCCARD_SPACE_MEMORY 1
152#define PCCARD_SPACE_IO 2
154#define pccard_mfc(sc) \
155 (STAILQ_FIRST(&(sc)->card.pf_head) && \
156 STAILQ_NEXT(STAILQ_FIRST(&(sc)->card.pf_head),pf_list))
163 return (CARD_CIS_SCAN(device_get_parent(dev), dev, fct, arg));
169 return (CARD_ATTR_READ(device_get_parent(dev), dev, offset, val));
175 return (CARD_ATTR_WRITE(device_get_parent(dev), dev, offset, val));
181 return (CARD_CCR_READ(device_get_parent(dev), dev, offset, val));
187 return (CARD_CCR_WRITE(device_get_parent(dev), dev, offset, val));
208#define PCCARD_ACCESSOR(A, B, T) \
210pccard_get_ ## A(device_t dev, T *t) \
212 return BUS_READ_IVAR(device_get_parent(dev), dev, \
213 PCCARD_IVAR_ ## B, (uintptr_t *) t); \
236#define PCCARD_S(a, b) PCMCIA_STR_ ## a ## _ ## b
237#define PCCARD_P(a, b) PCMCIA_PRODUCT_ ## a ## _ ## b
238#define PCCARD_C(a, b) PCMCIA_CIS_ ## a ## _ ## b
239#define PCMCIA_CARD_D(v, p) { PCCARD_S(v, p), PCMCIA_VENDOR_ ## v, \
240 PCCARD_P(v, p), PCCARD_C(v, p) }
241#define PCMCIA_CARD(v, p) { PCCARD_S(v, p), PCMCIA_VENDOR_ ## v, \
242 PCCARD_P(v, p), PCCARD_C(v, p) }
248#define PFD_I_V_MASK 0x3
249#define PFD_I_V_NONE_REQUIRED 0x0
250#define PFD_I_V_REQ_MOD_ACC 0x1
251#define PFD_I_V_REQ_ACC 0x2
252#define PFD_I_V_REQ_ALWYS 0x1
256#define PFD_P_P0 0x100
257#define PFD_P_P1 0x200
258#define PFD_P_P2 0x400
259#define PFD_P_P3 0x800
260#define PFD_P_N 0x1000
261#define PFD_P_E 0x2000
262#define PFD_P_I 0x4000
@ PCCARD_IVAR_FUNCTION_NUMBER
@ PCCARD_IVAR_PRODUCT_STR
static int pccard_attr_read_1(device_t dev, uint32_t offset, uint8_t *val)
static int pccard_attr_write_1(device_t dev, uint32_t offset, uint8_t val)
static int pccard_ccr_read_1(device_t dev, uint32_t offset, uint8_t *val)
int pccard_select_cfe(device_t dev, int entry)
int(* pccard_scan_t)(const struct pccard_tuple *, void *)
int(* pccard_product_match_fn)(device_t dev, const struct pccard_product *ent, int vpfmatch)
static int pccard_cis_scan(device_t dev, pccard_scan_t fct, void *arg)
static int pccard_ccr_write_1(device_t dev, uint32_t offset, uint8_t val)
#define PCCARD_ACCESSOR(A, B, T)
static const struct pccard_product * pccard_product_lookup(device_t dev, const struct pccard_product *tab, size_t ent_size, pccard_product_match_fn matchfn)