1use status::NvAPI_Status;
2use types::NvAPI_ShortString;
3use handles;
4
5nvapi! {
6 pub type SYS_GetDriverAndBranchVersionFn = extern "C" fn(pDriverVersion: *mut u32, szBuildBranchString: *mut NvAPI_ShortString) -> NvAPI_Status;
7
8 pub unsafe fn NvAPI_SYS_GetDriverAndBranchVersion;
10}
11
12nvstruct! {
13 pub struct NV_DISPLAY_DRIVER_MEMORY_INFO_V1 {
15 pub version: u32,
17 pub dedicatedVideoMemory: u32,
19 pub availableDedicatedVideoMemory: u32,
21 pub systemVideoMemory: u32,
23 pub sharedSystemMemory: u32,
25 }
26}
27
28nvstruct! {
29 pub struct NV_DISPLAY_DRIVER_MEMORY_INFO_V2 {
31 pub v1: NV_DISPLAY_DRIVER_MEMORY_INFO_V1,
32 pub curAvailableDedicatedVideoMemory: u32,
34 }
35}
36nvinherit! { NV_DISPLAY_DRIVER_MEMORY_INFO_V2(v1: NV_DISPLAY_DRIVER_MEMORY_INFO_V1) }
37
38nvstruct! {
39 pub struct NV_DISPLAY_DRIVER_MEMORY_INFO_V3 {
41 pub v2: NV_DISPLAY_DRIVER_MEMORY_INFO_V2,
42 pub dedicatedVideoMemoryEvictionsSize: u32,
44 pub dedicatedVideoMemoryEvictionCount: u32,
47 }
48}
49nvinherit! { NV_DISPLAY_DRIVER_MEMORY_INFO_V3(v2: NV_DISPLAY_DRIVER_MEMORY_INFO_V2) }
50
51pub type NV_DISPLAY_DRIVER_MEMORY_INFO = NV_DISPLAY_DRIVER_MEMORY_INFO_V3;
52nvversion! { NV_DISPLAY_DRIVER_MEMORY_INFO_VER_1(NV_DISPLAY_DRIVER_MEMORY_INFO_V1 = 4 * 5, 1) }
53nvversion! { NV_DISPLAY_DRIVER_MEMORY_INFO_VER_2(NV_DISPLAY_DRIVER_MEMORY_INFO_V2 = 4 * 6, 2) }
54nvversion! { NV_DISPLAY_DRIVER_MEMORY_INFO_VER_3(NV_DISPLAY_DRIVER_MEMORY_INFO_V3 = 4 * 8, 3) }
55nvversion! { NV_DISPLAY_DRIVER_MEMORY_INFO_VER = NV_DISPLAY_DRIVER_MEMORY_INFO_VER_3 }
56
57nvapi! {
58 pub type GPU_GetMemoryInfoFn = extern "C" fn(hPhysicalGpu: handles::NvPhysicalGpuHandle, pMemoryInfo: *mut NV_DISPLAY_DRIVER_MEMORY_INFO) -> NvAPI_Status;
59
60 pub unsafe fn NvAPI_GPU_GetMemoryInfo;
63}
64
65pub mod private {
67 use status::NvAPI_Status;
68 use handles;
69
70 nvapi! {
71 pub unsafe fn NvAPI_GetDisplayDriverMemoryInfo(hPhysicalGpu: handles::NvPhysicalGpuHandle, pMemoryInfo: *mut super::NV_DISPLAY_DRIVER_MEMORY_INFO) -> NvAPI_Status;
73 }
74}