Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. #ifndef _PCI_ID_DRIVER_MAP_H_
  2. #define _PCI_ID_DRIVER_MAP_H_
  3.  
  4. #include <stddef.h>
  5.  
  6. #ifndef ARRAY_SIZE
  7. #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
  8. #endif
  9.  
  10. #ifndef __IS_LOADER
  11. #  error "Only include from loader.c"
  12. #endif
  13.  
  14. static const int i915_chip_ids[] = {
  15. #define CHIPSET(chip, desc, name) chip,
  16. #include "pci_ids/i915_pci_ids.h"
  17. #undef CHIPSET
  18. };
  19.  
  20. static const int i965_chip_ids[] = {
  21. #define CHIPSET(chip, family, name) chip,
  22. #include "pci_ids/i965_pci_ids.h"
  23. #undef CHIPSET
  24. };
  25.  
  26. static const int r100_chip_ids[] = {
  27. #define CHIPSET(chip, name, family) chip,
  28. #include "pci_ids/radeon_pci_ids.h"
  29. #undef CHIPSET
  30. };
  31.  
  32. static const int r200_chip_ids[] = {
  33. #define CHIPSET(chip, name, family) chip,
  34. #include "pci_ids/r200_pci_ids.h"
  35. #undef CHIPSET
  36. };
  37.  
  38. static const int r300_chip_ids[] = {
  39. #define CHIPSET(chip, name, family) chip,
  40. #include "pci_ids/r300_pci_ids.h"
  41. #undef CHIPSET
  42. };
  43.  
  44. static const int r600_chip_ids[] = {
  45. #define CHIPSET(chip, name, family) chip,
  46. #include "pci_ids/r600_pci_ids.h"
  47. #undef CHIPSET
  48. };
  49.  
  50. static const int radeonsi_chip_ids[] = {
  51. #define CHIPSET(chip, name, family) chip,
  52. #include "pci_ids/radeonsi_pci_ids.h"
  53. #undef CHIPSET
  54. };
  55.  
  56. static const int vmwgfx_chip_ids[] = {
  57. #define CHIPSET(chip, name, family) chip,
  58. #include "pci_ids/vmwgfx_pci_ids.h"
  59. #undef CHIPSET
  60. };
  61.  
  62. int is_nouveau_vieux(int fd);
  63.  
  64. static const struct {
  65.    int vendor_id;
  66.    const char *driver;
  67.    const int *chip_ids;
  68.    int num_chips_ids;
  69.    unsigned driver_types;
  70.    int (*predicate)(int fd);
  71. } driver_map[] = {
  72.    { 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids), _LOADER_DRI | _LOADER_GALLIUM },
  73.    { 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids), _LOADER_DRI | _LOADER_GALLIUM },
  74.    { 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids), _LOADER_DRI },
  75.    { 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids), _LOADER_DRI },
  76.    { 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids), _LOADER_GALLIUM },
  77.    { 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids), _LOADER_GALLIUM },
  78.    { 0x1002, "radeonsi", radeonsi_chip_ids, ARRAY_SIZE(radeonsi_chip_ids), _LOADER_GALLIUM},
  79.    { 0x10de, "nouveau_vieux", NULL, -1,  _LOADER_DRI, is_nouveau_vieux },
  80.    { 0x10de, "nouveau", NULL, -1,  _LOADER_GALLIUM },
  81.    { 0x15ad, "vmwgfx", vmwgfx_chip_ids, ARRAY_SIZE(vmwgfx_chip_ids), _LOADER_GALLIUM },
  82.    { 0x0000, NULL, NULL, 0 },
  83. };
  84.  
  85. #endif /* _PCI_ID_DRIVER_MAP_H_ */
  86.