cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

device_id.h (9495B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * device_id.h -- PCMCIA driver matching helpers
      4 *
      5 * (C) 2003 - 2004	David Woodhouse
      6 * (C) 2003 - 2004	Dominik Brodowski
      7 */
      8
      9#ifndef _LINUX_PCMCIA_DEVICE_ID_H
     10#define _LINUX_PCMCIA_DEVICE_ID_H
     11
     12#ifdef __KERNEL__
     13
     14#define PCMCIA_DEVICE_MANF_CARD(manf, card) { \
     15	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
     16			PCMCIA_DEV_ID_MATCH_CARD_ID, \
     17	.manf_id = (manf), \
     18	.card_id = (card), }
     19
     20#define PCMCIA_DEVICE_FUNC_ID(func) { \
     21	.match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \
     22	.func_id = (func), }
     23
     24#define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \
     25	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \
     26	.prod_id = { (v1), NULL, NULL, NULL }, \
     27	.prod_id_hash = { (vh1), 0, 0, 0 }, }
     28
     29#define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \
     30	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \
     31	.prod_id = { NULL, (v2), NULL, NULL },  \
     32	.prod_id_hash = { 0, (vh2), 0, 0 }, }
     33
     34#define PCMCIA_DEVICE_PROD_ID3(v3, vh3) { \
     35	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID3, \
     36	.prod_id = { NULL, NULL, (v3), NULL },  \
     37	.prod_id_hash = { 0, 0, (vh3), 0 }, }
     38
     39#define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \
     40	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
     41			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
     42	.prod_id = { (v1), (v2), NULL, NULL }, \
     43	.prod_id_hash = { (vh1), (vh2), 0, 0 }, }
     44
     45#define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \
     46	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
     47			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
     48	.prod_id = { (v1), NULL, (v3), NULL }, \
     49	.prod_id_hash = { (vh1), 0, (vh3), 0 }, }
     50
     51#define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \
     52	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
     53			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
     54	.prod_id = { (v1), NULL, NULL, (v4) }, \
     55	.prod_id_hash = { (vh1), 0, 0, (vh4) }, }
     56
     57#define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \
     58	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
     59			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
     60			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
     61	.prod_id = { (v1), (v2), (v3), NULL },\
     62	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, }
     63
     64#define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \
     65	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
     66			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
     67			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
     68	.prod_id = { (v1), (v2), NULL, (v4) }, \
     69	.prod_id_hash = { (vh1), (vh2), 0, (vh4) }, }
     70
     71#define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \
     72	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
     73			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
     74			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
     75	.prod_id = { (v1), NULL, (v3), (v4) }, \
     76	.prod_id_hash = { (vh1), 0, (vh3), (vh4) }, }
     77
     78#define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \
     79	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
     80			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
     81			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
     82			PCMCIA_DEV_ID_MATCH_PROD_ID4, \
     83	.prod_id = { (v1), (v2), (v3), (v4) }, \
     84	.prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, }
     85
     86#define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \
     87	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
     88			PCMCIA_DEV_ID_MATCH_CARD_ID| \
     89			PCMCIA_DEV_ID_MATCH_PROD_ID1, \
     90	.manf_id = (manf), \
     91	.card_id = (card), \
     92	.prod_id = { (v1), NULL, NULL, NULL }, \
     93	.prod_id_hash = { (vh1), 0, 0, 0 }, }
     94
     95#define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \
     96	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
     97			PCMCIA_DEV_ID_MATCH_CARD_ID| \
     98			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
     99	.manf_id = (manf), \
    100	.card_id = (card), \
    101	.prod_id = { NULL, NULL, (v3), NULL }, \
    102	.prod_id_hash = { 0, 0, (vh3), 0 }, }
    103
    104
    105/* multi-function devices */
    106
    107#define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \
    108	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
    109			PCMCIA_DEV_ID_MATCH_CARD_ID| \
    110			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    111	.manf_id = (manf), \
    112	.card_id = (card), \
    113	.function = (mfc), }
    114
    115#define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
    116	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    117			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    118	.prod_id = { (v1), NULL, NULL, NULL }, \
    119	.prod_id_hash = { (vh1), 0, 0, 0 }, \
    120	.function = (mfc), }
    121
    122#define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
    123	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    124			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    125	.prod_id = { NULL, (v2), NULL, NULL },  \
    126	.prod_id_hash = { 0, (vh2), 0, 0 }, \
    127	.function = (mfc), }
    128
    129#define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
    130	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    131			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    132			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    133	.prod_id = { (v1), (v2), NULL, NULL }, \
    134	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
    135	.function = (mfc), }
    136
    137#define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
    138	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    139			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
    140			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    141	.prod_id = { (v1), NULL, (v3), NULL }, \
    142	.prod_id_hash = { (vh1), 0, (vh3), 0 }, \
    143	.function = (mfc), }
    144
    145#define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
    146	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    147			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    148			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
    149			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    150	.prod_id = { (v1), (v2), (v3), NULL },\
    151	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
    152	.function = (mfc), }
    153
    154/* pseudo multi-function devices */
    155
    156#define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \
    157	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
    158			PCMCIA_DEV_ID_MATCH_CARD_ID| \
    159			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
    160	.manf_id = (manf), \
    161	.card_id = (card), \
    162	.device_no = (mfc), }
    163
    164#define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
    165	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    166			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
    167	.prod_id = { (v1), NULL, NULL, NULL }, \
    168	.prod_id_hash = { (vh1), 0, 0, 0 }, \
    169	.device_no = (mfc), }
    170
    171#define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
    172	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    173			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
    174	.prod_id = { NULL, (v2), NULL, NULL },  \
    175	.prod_id_hash = { 0, (vh2), 0, 0 }, \
    176	.device_no = (mfc), }
    177
    178#define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
    179	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    180			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    181			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
    182	.prod_id = { (v1), (v2), NULL, NULL }, \
    183	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
    184	.device_no = (mfc), }
    185
    186#define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
    187	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    188			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
    189			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
    190	.prod_id = { (v1), NULL, (v3), NULL }, \
    191	.prod_id_hash = { (vh1), 0, (vh3), 0 }, \
    192	.device_no = (mfc), }
    193
    194#define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
    195	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    196			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    197			PCMCIA_DEV_ID_MATCH_PROD_ID3| \
    198			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
    199	.prod_id = { (v1), (v2), (v3), NULL },\
    200	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
    201	.device_no = (mfc), }
    202
    203/* cards needing a CIS override */
    204
    205#define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \
    206	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
    207			PCMCIA_DEV_ID_MATCH_MANF_ID| \
    208			PCMCIA_DEV_ID_MATCH_CARD_ID, \
    209	.manf_id = (manf), \
    210	.card_id = (card), \
    211	.cisfile = (_cisfile)}
    212
    213#define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \
    214	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
    215			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    216			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
    217	.prod_id = { (v1), (v2), NULL, NULL }, \
    218	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
    219	.cisfile = (_cisfile)}
    220
    221#define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \
    222	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
    223			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    224			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    225			PCMCIA_DEV_ID_MATCH_PROD_ID3, \
    226	.prod_id = { (v1), (v2), (v3), NULL },\
    227	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
    228	.cisfile = (_cisfile)}
    229
    230
    231#define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \
    232	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
    233			PCMCIA_DEV_ID_MATCH_PROD_ID2, \
    234	.prod_id = { NULL, (v2), NULL, NULL },  \
    235	.prod_id_hash = { 0, (vh2), 0, 0 }, \
    236	.cisfile = (_cisfile)}
    237
    238#define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
    239	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
    240			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    241			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    242			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
    243	.prod_id = { (v1), (v2), NULL, NULL }, \
    244	.prod_id_hash = { (vh1), (vh2), 0, 0 },\
    245	.device_no = (mfc), \
    246	.cisfile = (_cisfile)}
    247
    248#define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \
    249	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
    250			PCMCIA_DEV_ID_MATCH_MANF_ID| \
    251			PCMCIA_DEV_ID_MATCH_CARD_ID| \
    252			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    253	.manf_id = (manf), \
    254	.card_id = (card), \
    255	.function = (mfc), \
    256	.cisfile = (_cisfile)}
    257
    258#define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
    259	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
    260			PCMCIA_DEV_ID_MATCH_PROD_ID1| \
    261			PCMCIA_DEV_ID_MATCH_PROD_ID2| \
    262			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    263	.prod_id = { (v1), (v2), NULL, NULL }, \
    264	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \
    265	.function = (mfc), \
    266	.cisfile = (_cisfile)}
    267
    268#define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \
    269	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
    270			PCMCIA_DEV_ID_MATCH_PROD_ID4| \
    271			PCMCIA_DEV_ID_MATCH_FUNCTION, \
    272	.prod_id = { NULL, NULL, NULL, (v4) }, \
    273	.prod_id_hash = { 0, 0, 0, (vh4) }, \
    274	.function = (mfc), \
    275	.cisfile = (_cisfile)}
    276
    277
    278#define PCMCIA_DEVICE_NULL { .match_flags = 0, }
    279
    280#endif /* __KERNEL__ */
    281#endif /* _LINUX_PCMCIA_DEVICE_ID_H */