home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / pcmcia / device_id.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  8.6 KB  |  259 lines

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