1 #ifndef NV_DEVINFO_H 2 #define NV_DEVINFO_H 3 4 #include "util/macros.h" 5 6 #define NVIDIA_VENDOR_ID 0x10de 7 8 enum ENUM_PACKED nv_device_type { 9 NV_DEVICE_TYPE_IGP, 10 NV_DEVICE_TYPE_DIS, 11 NV_DEVICE_TYPE_SOC, 12 }; 13 14 struct nv_device_info { 15 enum nv_device_type type; 16 17 uint16_t device_id; 18 uint16_t chipset; 19 20 char device_name[64]; 21 char chipset_name[16]; 22 23 /* Populated if type == NV_DEVICE_TYPE_DIS */ 24 struct { 25 uint16_t domain; 26 uint8_t bus; 27 uint8_t dev; 28 uint8_t func; 29 uint8_t revision_id; 30 } pci; 31 32 uint8_t sm; /**< Shader model */ 33 34 uint8_t gpc_count; 35 uint16_t tpc_count; 36 uint8_t mp_per_tpc; 37 uint8_t max_warps_per_mp; 38 39 uint16_t cls_copy; 40 uint16_t cls_eng2d; 41 uint16_t cls_eng3d; 42 uint16_t cls_m2mf; 43 uint16_t cls_compute; 44 45 uint64_t vram_size_B; 46 uint64_t bar_size_B; 47 }; 48 49 #endif /* NV_DEVINFO_H */ 50