0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _LINUX_PCMCIA_DEVICE_ID_H
0010 #define _LINUX_PCMCIA_DEVICE_ID_H
0011
0012 #ifdef __KERNEL__
0013
0014 #define PCMCIA_DEVICE_MANF_CARD(manf, card) { \
0015 .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
0016 PCMCIA_DEV_ID_MATCH_CARD_ID, \
0017 .manf_id = (manf), \
0018 .card_id = (card), }
0019
0020 #define PCMCIA_DEVICE_FUNC_ID(func) { \
0021 .match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \
0022 .func_id = (func), }
0023
0024 #define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \
0025 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \
0026 .prod_id = { (v1), NULL, NULL, NULL }, \
0027 .prod_id_hash = { (vh1), 0, 0, 0 }, }
0028
0029 #define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \
0030 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \
0031 .prod_id = { NULL, (v2), NULL, NULL }, \
0032 .prod_id_hash = { 0, (vh2), 0, 0 }, }
0033
0034 #define PCMCIA_DEVICE_PROD_ID3(v3, vh3) { \
0035 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID3, \
0036 .prod_id = { NULL, NULL, (v3), NULL }, \
0037 .prod_id_hash = { 0, 0, (vh3), 0 }, }
0038
0039 #define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \
0040 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0041 PCMCIA_DEV_ID_MATCH_PROD_ID2, \
0042 .prod_id = { (v1), (v2), NULL, NULL }, \
0043 .prod_id_hash = { (vh1), (vh2), 0, 0 }, }
0044
0045 #define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \
0046 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0047 PCMCIA_DEV_ID_MATCH_PROD_ID3, \
0048 .prod_id = { (v1), NULL, (v3), NULL }, \
0049 .prod_id_hash = { (vh1), 0, (vh3), 0 }, }
0050
0051 #define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \
0052 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0053 PCMCIA_DEV_ID_MATCH_PROD_ID4, \
0054 .prod_id = { (v1), NULL, NULL, (v4) }, \
0055 .prod_id_hash = { (vh1), 0, 0, (vh4) }, }
0056
0057 #define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \
0058 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0059 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0060 PCMCIA_DEV_ID_MATCH_PROD_ID3, \
0061 .prod_id = { (v1), (v2), (v3), NULL },\
0062 .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, }
0063
0064 #define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \
0065 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0066 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0067 PCMCIA_DEV_ID_MATCH_PROD_ID4, \
0068 .prod_id = { (v1), (v2), NULL, (v4) }, \
0069 .prod_id_hash = { (vh1), (vh2), 0, (vh4) }, }
0070
0071 #define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \
0072 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0073 PCMCIA_DEV_ID_MATCH_PROD_ID3| \
0074 PCMCIA_DEV_ID_MATCH_PROD_ID4, \
0075 .prod_id = { (v1), NULL, (v3), (v4) }, \
0076 .prod_id_hash = { (vh1), 0, (vh3), (vh4) }, }
0077
0078 #define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \
0079 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0080 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0081 PCMCIA_DEV_ID_MATCH_PROD_ID3| \
0082 PCMCIA_DEV_ID_MATCH_PROD_ID4, \
0083 .prod_id = { (v1), (v2), (v3), (v4) }, \
0084 .prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, }
0085
0086 #define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \
0087 .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
0088 PCMCIA_DEV_ID_MATCH_CARD_ID| \
0089 PCMCIA_DEV_ID_MATCH_PROD_ID1, \
0090 .manf_id = (manf), \
0091 .card_id = (card), \
0092 .prod_id = { (v1), NULL, NULL, NULL }, \
0093 .prod_id_hash = { (vh1), 0, 0, 0 }, }
0094
0095 #define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \
0096 .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
0097 PCMCIA_DEV_ID_MATCH_CARD_ID| \
0098 PCMCIA_DEV_ID_MATCH_PROD_ID3, \
0099 .manf_id = (manf), \
0100 .card_id = (card), \
0101 .prod_id = { NULL, NULL, (v3), NULL }, \
0102 .prod_id_hash = { 0, 0, (vh3), 0 }, }
0103
0104
0105
0106
0107 #define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \
0108 .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
0109 PCMCIA_DEV_ID_MATCH_CARD_ID| \
0110 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0111 .manf_id = (manf), \
0112 .card_id = (card), \
0113 .function = (mfc), }
0114
0115 #define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
0116 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0117 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0118 .prod_id = { (v1), NULL, NULL, NULL }, \
0119 .prod_id_hash = { (vh1), 0, 0, 0 }, \
0120 .function = (mfc), }
0121
0122 #define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
0123 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0124 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0125 .prod_id = { NULL, (v2), NULL, NULL }, \
0126 .prod_id_hash = { 0, (vh2), 0, 0 }, \
0127 .function = (mfc), }
0128
0129 #define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
0130 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0131 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0132 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0133 .prod_id = { (v1), (v2), NULL, NULL }, \
0134 .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
0135 .function = (mfc), }
0136
0137 #define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
0138 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0139 PCMCIA_DEV_ID_MATCH_PROD_ID3| \
0140 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0141 .prod_id = { (v1), NULL, (v3), NULL }, \
0142 .prod_id_hash = { (vh1), 0, (vh3), 0 }, \
0143 .function = (mfc), }
0144
0145 #define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
0146 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0147 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0148 PCMCIA_DEV_ID_MATCH_PROD_ID3| \
0149 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0150 .prod_id = { (v1), (v2), (v3), NULL },\
0151 .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
0152 .function = (mfc), }
0153
0154
0155
0156 #define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \
0157 .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
0158 PCMCIA_DEV_ID_MATCH_CARD_ID| \
0159 PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
0160 .manf_id = (manf), \
0161 .card_id = (card), \
0162 .device_no = (mfc), }
0163
0164 #define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
0165 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0166 PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
0167 .prod_id = { (v1), NULL, NULL, NULL }, \
0168 .prod_id_hash = { (vh1), 0, 0, 0 }, \
0169 .device_no = (mfc), }
0170
0171 #define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
0172 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0173 PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
0174 .prod_id = { NULL, (v2), NULL, NULL }, \
0175 .prod_id_hash = { 0, (vh2), 0, 0 }, \
0176 .device_no = (mfc), }
0177
0178 #define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
0179 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0180 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0181 PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
0182 .prod_id = { (v1), (v2), NULL, NULL }, \
0183 .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
0184 .device_no = (mfc), }
0185
0186 #define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
0187 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0188 PCMCIA_DEV_ID_MATCH_PROD_ID3| \
0189 PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
0190 .prod_id = { (v1), NULL, (v3), NULL }, \
0191 .prod_id_hash = { (vh1), 0, (vh3), 0 }, \
0192 .device_no = (mfc), }
0193
0194 #define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
0195 .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0196 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0197 PCMCIA_DEV_ID_MATCH_PROD_ID3| \
0198 PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
0199 .prod_id = { (v1), (v2), (v3), NULL },\
0200 .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
0201 .device_no = (mfc), }
0202
0203
0204
0205 #define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \
0206 .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
0207 PCMCIA_DEV_ID_MATCH_MANF_ID| \
0208 PCMCIA_DEV_ID_MATCH_CARD_ID, \
0209 .manf_id = (manf), \
0210 .card_id = (card), \
0211 .cisfile = (_cisfile)}
0212
0213 #define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \
0214 .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
0215 PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0216 PCMCIA_DEV_ID_MATCH_PROD_ID2, \
0217 .prod_id = { (v1), (v2), NULL, NULL }, \
0218 .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
0219 .cisfile = (_cisfile)}
0220
0221 #define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \
0222 .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
0223 PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0224 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0225 PCMCIA_DEV_ID_MATCH_PROD_ID3, \
0226 .prod_id = { (v1), (v2), (v3), NULL },\
0227 .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
0228 .cisfile = (_cisfile)}
0229
0230
0231 #define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \
0232 .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
0233 PCMCIA_DEV_ID_MATCH_PROD_ID2, \
0234 .prod_id = { NULL, (v2), NULL, NULL }, \
0235 .prod_id_hash = { 0, (vh2), 0, 0 }, \
0236 .cisfile = (_cisfile)}
0237
0238 #define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
0239 .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
0240 PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0241 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0242 PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
0243 .prod_id = { (v1), (v2), NULL, NULL }, \
0244 .prod_id_hash = { (vh1), (vh2), 0, 0 },\
0245 .device_no = (mfc), \
0246 .cisfile = (_cisfile)}
0247
0248 #define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \
0249 .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
0250 PCMCIA_DEV_ID_MATCH_MANF_ID| \
0251 PCMCIA_DEV_ID_MATCH_CARD_ID| \
0252 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0253 .manf_id = (manf), \
0254 .card_id = (card), \
0255 .function = (mfc), \
0256 .cisfile = (_cisfile)}
0257
0258 #define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
0259 .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
0260 PCMCIA_DEV_ID_MATCH_PROD_ID1| \
0261 PCMCIA_DEV_ID_MATCH_PROD_ID2| \
0262 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0263 .prod_id = { (v1), (v2), NULL, NULL }, \
0264 .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
0265 .function = (mfc), \
0266 .cisfile = (_cisfile)}
0267
0268 #define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \
0269 .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
0270 PCMCIA_DEV_ID_MATCH_PROD_ID4| \
0271 PCMCIA_DEV_ID_MATCH_FUNCTION, \
0272 .prod_id = { NULL, NULL, NULL, (v4) }, \
0273 .prod_id_hash = { 0, 0, 0, (vh4) }, \
0274 .function = (mfc), \
0275 .cisfile = (_cisfile)}
0276
0277
0278 #define PCMCIA_DEVICE_NULL { .match_flags = 0, }
0279
0280 #endif
0281 #endif