// Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs types.go

package nvml

import "unsafe"

type nvmlDevice struct {
	Handle *_Ctype_struct_nvmlDevice_st
}

type nvmlGpuInstance struct {
	Handle *_Ctype_struct_nvmlGpuInstance_st
}

type PciInfoExt_v1 struct {
	Version        uint32
	Domain         uint32
	Bus            uint32
	Device         uint32
	PciDeviceId    uint32
	PciSubSystemId uint32
	BaseClass      uint32
	SubClass       uint32
	BusId          [32]int8
}

type PciInfoExt struct {
	Version        uint32
	Domain         uint32
	Bus            uint32
	Device         uint32
	PciDeviceId    uint32
	PciSubSystemId uint32
	BaseClass      uint32
	SubClass       uint32
	BusId          [32]int8
}

type PciInfo struct {
	BusIdLegacy    [16]int8
	Domain         uint32
	Bus            uint32
	Device         uint32
	PciDeviceId    uint32
	PciSubSystemId uint32
	BusId          [32]int8
}

type EccErrorCounts struct {
	L1Cache      uint64
	L2Cache      uint64
	DeviceMemory uint64
	RegisterFile uint64
}

type Utilization struct {
	Gpu    uint32
	Memory uint32
}

type Memory struct {
	Total uint64
	Free  uint64
	Used  uint64
}

type Memory_v2 struct {
	Version  uint32
	Total    uint64
	Reserved uint64
	Free     uint64
	Used     uint64
}

type BAR1Memory struct {
	Bar1Total uint64
	Bar1Free  uint64
	Bar1Used  uint64
}

type ProcessInfo_v1 struct {
	Pid           uint32
	UsedGpuMemory uint64
}

type ProcessInfo_v2 struct {
	Pid               uint32
	UsedGpuMemory     uint64
	GpuInstanceId     uint32
	ComputeInstanceId uint32
}

type ProcessInfo struct {
	Pid               uint32
	UsedGpuMemory     uint64
	GpuInstanceId     uint32
	ComputeInstanceId uint32
}

type ProcessDetail_v1 struct {
	Pid                      uint32
	UsedGpuMemory            uint64
	GpuInstanceId            uint32
	ComputeInstanceId        uint32
	UsedGpuCcProtectedMemory uint64
}

type ProcessDetailList_v1 struct {
	Version             uint32
	Mode                uint32
	NumProcArrayEntries uint32
	ProcArray           *ProcessDetail_v1
}

type ProcessDetailList struct {
	Version             uint32
	Mode                uint32
	NumProcArrayEntries uint32
	ProcArray           *ProcessDetail_v1
}

type DeviceAttributes struct {
	MultiprocessorCount       uint32
	SharedCopyEngineCount     uint32
	SharedDecoderCount        uint32
	SharedEncoderCount        uint32
	SharedJpegCount           uint32
	SharedOfaCount            uint32
	GpuInstanceSliceCount     uint32
	ComputeInstanceSliceCount uint32
	MemorySizeMB              uint64
}

type C2cModeInfo_v1 struct {
	IsC2cEnabled uint32
}

type DeviceAddressingMode_v1 struct {
	Version uint32
	Value   uint32
}

type DeviceAddressingMode struct {
	Version uint32
	Value   uint32
}

type RepairStatus_v1 struct {
	Version               uint32
	BChannelRepairPending uint32
	BTpcRepairPending     uint32
}

type RepairStatus struct {
	Version               uint32
	BChannelRepairPending uint32
	BTpcRepairPending     uint32
}

type UnrepairableMemoryStatus_v1 struct {
	BUnrepairableMemory uint32
}

type RowRemapperHistogramValues struct {
	Max     uint32
	High    uint32
	Partial uint32
	Low     uint32
	None    uint32
}

type NvLinkUtilizationControl struct {
	Units     uint32
	Pktfilter uint32
}

type BridgeChipInfo struct {
	Type      uint32
	FwVersion uint32
}

type BridgeChipHierarchy struct {
	BridgeCount    uint8
	BridgeChipInfo [128]BridgeChipInfo
}

const sizeofValue = unsafe.Sizeof([8]byte{})

type Value [sizeofValue]byte

type Sample struct {
	TimeStamp   uint64
	SampleValue [8]byte
}

type ViolationTime struct {
	ReferenceTime uint64
	ViolationTime uint64
}

type GpuThermalSettingsSensor struct {
	Controller     int32
	DefaultMinTemp int32
	DefaultMaxTemp int32
	CurrentTemp    int32
	Target         int32
}

type GpuThermalSettings struct {
	Count  uint32
	Sensor [3]GpuThermalSettingsSensor
}

type CoolerInfo_v1 struct {
	Version    uint32
	Index      uint32
	SignalType uint32
	Target     uint32
}

type CoolerInfo struct {
	Version    uint32
	Index      uint32
	SignalType uint32
	Target     uint32
}

const sizeofUUIDValue = unsafe.Sizeof([41]byte{})

type UUIDValue [sizeofUUIDValue]byte

type UUID_v1 struct {
	Version   uint32
	Type      uint32
	Value     [41]byte
	Pad_cgo_0 [3]byte
}

type UUID struct {
	Version   uint32
	Type      uint32
	Value     [41]byte
	Pad_cgo_0 [3]byte
}

type Pdi_v1 struct {
	Version uint32
	Value   uint64
}

type Pdi struct {
	Version uint32
	Value   uint64
}

type BBXTimeData_v1 struct {
	TimeRun uint32
}

type DramEncryptionInfo_v1 struct {
	Version         uint32
	EncryptionState uint32
}

type DramEncryptionInfo struct {
	Version         uint32
	EncryptionState uint32
}

type MarginTemperature_v1 struct {
	Version           uint32
	MarginTemperature int32
}

type MarginTemperature struct {
	Version           uint32
	MarginTemperature int32
}

type ClkMonFaultInfo struct {
	ClkApiDomain       uint32
	ClkDomainFaultMask uint32
}

type ClkMonStatus struct {
	BGlobalStatus  uint32
	ClkMonListSize uint32
	ClkMonList     [32]ClkMonFaultInfo
}

type ClockOffset_v1 struct {
	Version           uint32
	Type              uint32
	Pstate            uint32
	ClockOffsetMHz    int32
	MinClockOffsetMHz int32
	MaxClockOffsetMHz int32
}

type ClockOffset struct {
	Version           uint32
	Type              uint32
	Pstate            uint32
	ClockOffsetMHz    int32
	MinClockOffsetMHz int32
	MaxClockOffsetMHz int32
}

type FanSpeedInfo_v1 struct {
	Version uint32
	Fan     uint32
	Speed   uint32
}

type FanSpeedInfo struct {
	Version uint32
	Fan     uint32
	Speed   uint32
}

type DevicePerfModes_v1 struct {
	Version uint32
	Str     [2048]int8
}

type DevicePerfModes struct {
	Version uint32
	Str     [2048]int8
}

type DeviceCurrentClockFreqs_v1 struct {
	Version uint32
	Str     [2048]int8
}

type DeviceCurrentClockFreqs struct {
	Version uint32
	Str     [2048]int8
}

type DevicePowerMizerModes_v1 struct {
	CurrentMode              uint32
	Mode                     uint32
	SupportedPowerMizerModes uint32
}

type ProcessUtilizationSample struct {
	Pid       uint32
	TimeStamp uint64
	SmUtil    uint32
	MemUtil   uint32
	EncUtil   uint32
	DecUtil   uint32
}

type ProcessUtilizationInfo_v1 struct {
	TimeStamp uint64
	Pid       uint32
	SmUtil    uint32
	MemUtil   uint32
	EncUtil   uint32
	DecUtil   uint32
	JpgUtil   uint32
	OfaUtil   uint32
	Pad_cgo_0 [4]byte
}

type ProcessesUtilizationInfo_v1 struct {
	Version             uint32
	ProcessSamplesCount uint32
	LastSeenTimeStamp   uint64
	ProcUtilArray       *ProcessUtilizationInfo_v1
}

type ProcessesUtilizationInfo struct {
	Version             uint32
	ProcessSamplesCount uint32
	LastSeenTimeStamp   uint64
	ProcUtilArray       *ProcessUtilizationInfo_v1
}

type EccSramErrorStatus_v1 struct {
	Version                 uint32
	AggregateUncParity      uint64
	AggregateUncSecDed      uint64
	AggregateCor            uint64
	VolatileUncParity       uint64
	VolatileUncSecDed       uint64
	VolatileCor             uint64
	AggregateUncBucketL2    uint64
	AggregateUncBucketSm    uint64
	AggregateUncBucketPcie  uint64
	AggregateUncBucketMcu   uint64
	AggregateUncBucketOther uint64
	BThresholdExceeded      uint32
	Pad_cgo_0               [4]byte
}

type EccSramErrorStatus struct {
	Version                 uint32
	AggregateUncParity      uint64
	AggregateUncSecDed      uint64
	AggregateCor            uint64
	VolatileUncParity       uint64
	VolatileUncSecDed       uint64
	VolatileCor             uint64
	AggregateUncBucketL2    uint64
	AggregateUncBucketSm    uint64
	AggregateUncBucketPcie  uint64
	AggregateUncBucketMcu   uint64
	AggregateUncBucketOther uint64
	BThresholdExceeded      uint32
	Pad_cgo_0               [4]byte
}

type PlatformInfo_v1 struct {
	Version                   uint32
	IbGuid                    [16]uint8
	RackGuid                  [16]uint8
	ChassisPhysicalSlotNumber uint8
	ComputeSlotIndex          uint8
	NodeIndex                 uint8
	PeerType                  uint8
	ModuleId                  uint8
	Pad_cgo_0                 [3]byte
}

type PlatformInfo_v2 struct {
	Version             uint32
	IbGuid              [16]uint8
	ChassisSerialNumber [16]uint8
	SlotNumber          uint8
	TrayIndex           uint8
	HostId              uint8
	PeerType            uint8
	ModuleId            uint8
	Pad_cgo_0           [3]byte
}

type PlatformInfo struct {
	Version             uint32
	IbGuid              [16]uint8
	ChassisSerialNumber [16]uint8
	SlotNumber          uint8
	TrayIndex           uint8
	HostId              uint8
	PeerType            uint8
	ModuleId            uint8
	Pad_cgo_0           [3]byte
}

type Hostname_v1 struct {
	Value [64]int8
}

type EccSramUniqueUncorrectedErrorEntry_v1 struct {
	Unit        uint32
	Location    uint32
	Sublocation uint32
	Extlocation uint32
	Address     uint32
	IsParity    uint32
	Count       uint32
}

type EccSramUniqueUncorrectedErrorCounts_v1 struct {
	Version    uint32
	EntryCount uint32
	Entries    *EccSramUniqueUncorrectedErrorEntry_v1
}

type EccSramUniqueUncorrectedErrorCounts struct {
	Version    uint32
	EntryCount uint32
	Entries    *EccSramUniqueUncorrectedErrorEntry_v1
}

type RemappedRowsInfo_v2 struct {
	CorrActiveRemaps   uint32
	CorrInactiveRemaps uint32
	UncActiveRemaps    uint32
	UncInactiveRemaps  uint32
	BPending           uint32
	BFailureOccurred   uint32
}

type RusdSettings_v1 struct {
	Version  uint32
	PollMask uint64
}

type DeviceArchitecture uint32

type BusType uint32

type FanControlPolicy uint32

type PowerSource uint32

type GpuDynamicPstatesInfoUtilization struct {
	BIsPresent   uint32
	Percentage   uint32
	IncThreshold uint32
	DecThreshold uint32
}

type GpuDynamicPstatesInfo struct {
	Flags       uint32
	Utilization [8]GpuDynamicPstatesInfoUtilization
}

type PowerScopeType byte

type PowerValue_v2 struct {
	Version      uint32
	PowerScope   uint8
	PowerValueMw uint32
}

type nvmlVgpuTypeId uint32

type nvmlVgpuInstance uint32

type VgpuHeterogeneousMode_v1 struct {
	Version uint32
	Mode    uint32
}

type VgpuHeterogeneousMode struct {
	Version uint32
	Mode    uint32
}

type VgpuPlacementId_v1 struct {
	Version     uint32
	PlacementId uint32
}

type VgpuPlacementId struct {
	Version     uint32
	PlacementId uint32
}

type VgpuPlacementList_v1 struct {
	Version       uint32
	PlacementSize uint32
	Count         uint32
	PlacementIds  *uint32
}

type VgpuPlacementList_v2 struct {
	Version       uint32
	PlacementSize uint32
	Count         uint32
	PlacementIds  *uint32
	Mode          uint32
	Pad_cgo_0     [4]byte
}

type VgpuPlacementList struct {
	Version       uint32
	PlacementSize uint32
	Count         uint32
	PlacementIds  *uint32
	Mode          uint32
	Pad_cgo_0     [4]byte
}

type VgpuTypeBar1Info_v1 struct {
	Version  uint32
	Bar1Size uint64
}

type VgpuTypeBar1Info struct {
	Version  uint32
	Bar1Size uint64
}

type VgpuInstanceUtilizationSample struct {
	VgpuInstance uint32
	TimeStamp    uint64
	SmUtil       [8]byte
	MemUtil      [8]byte
	EncUtil      [8]byte
	DecUtil      [8]byte
}

type VgpuInstanceUtilizationInfo_v1 struct {
	TimeStamp    uint64
	VgpuInstance uint32
	Pad_cgo_0    [4]byte
	SmUtil       [8]byte
	MemUtil      [8]byte
	EncUtil      [8]byte
	DecUtil      [8]byte
	JpgUtil      [8]byte
	OfaUtil      [8]byte
}

type VgpuInstancesUtilizationInfo_v1 struct {
	Version           uint32
	SampleValType     uint32
	VgpuInstanceCount uint32
	LastSeenTimeStamp uint64
	VgpuUtilArray     *VgpuInstanceUtilizationInfo_v1
}

type VgpuInstancesUtilizationInfo struct {
	Version           uint32
	SampleValType     uint32
	VgpuInstanceCount uint32
	LastSeenTimeStamp uint64
	VgpuUtilArray     *VgpuInstanceUtilizationInfo_v1
}

type VgpuProcessUtilizationSample struct {
	VgpuInstance uint32
	Pid          uint32
	ProcessName  [64]int8
	TimeStamp    uint64
	SmUtil       uint32
	MemUtil      uint32
	EncUtil      uint32
	DecUtil      uint32
}

type VgpuProcessUtilizationInfo_v1 struct {
	ProcessName  [64]int8
	TimeStamp    uint64
	VgpuInstance uint32
	Pid          uint32
	SmUtil       uint32
	MemUtil      uint32
	EncUtil      uint32
	DecUtil      uint32
	JpgUtil      uint32
	OfaUtil      uint32
}

type VgpuProcessesUtilizationInfo_v1 struct {
	Version           uint32
	VgpuProcessCount  uint32
	LastSeenTimeStamp uint64
	VgpuProcUtilArray *VgpuProcessUtilizationInfo_v1
}

type VgpuProcessesUtilizationInfo struct {
	Version           uint32
	VgpuProcessCount  uint32
	LastSeenTimeStamp uint64
	VgpuProcUtilArray *VgpuProcessUtilizationInfo_v1
}

type VgpuRuntimeState_v1 struct {
	Version uint32
	Size    uint64
}

type VgpuRuntimeState struct {
	Version uint32
	Size    uint64
}

type VgpuSchedulerParamsVgpuSchedDataWithARR struct {
	AvgFactor uint32
	Timeslice uint32
}

type VgpuSchedulerParamsVgpuSchedData struct {
	Timeslice uint32
}

const sizeofVgpuSchedulerParams = unsafe.Sizeof([8]byte{})

type VgpuSchedulerParams [sizeofVgpuSchedulerParams]byte

type VgpuSchedulerLogEntry struct {
	Timestamp                uint64
	TimeRunTotal             uint64
	TimeRun                  uint64
	SwRunlistId              uint32
	TargetTimeSlice          uint64
	CumulativePreemptionTime uint64
}

type VgpuSchedulerLog struct {
	EngineId        uint32
	SchedulerPolicy uint32
	ArrMode         uint32
	SchedulerParams [8]byte
	EntriesCount    uint32
	LogEntries      [200]VgpuSchedulerLogEntry
}

type VgpuSchedulerGetState struct {
	SchedulerPolicy uint32
	ArrMode         uint32
	SchedulerParams [8]byte
}

type VgpuSchedulerSetParamsVgpuSchedDataWithARR struct {
	AvgFactor uint32
	Frequency uint32
}

type VgpuSchedulerSetParamsVgpuSchedData struct {
	Timeslice uint32
}

const sizeofVgpuSchedulerSetParams = unsafe.Sizeof([8]byte{})

type VgpuSchedulerSetParams [sizeofVgpuSchedulerSetParams]byte

type VgpuSchedulerSetState struct {
	SchedulerPolicy uint32
	EnableARRMode   uint32
	SchedulerParams [8]byte
}

type VgpuSchedulerCapabilities struct {
	SupportedSchedulers [3]uint32
	MaxTimeslice        uint32
	MinTimeslice        uint32
	IsArrModeSupported  uint32
	MaxFrequencyForARR  uint32
	MinFrequencyForARR  uint32
	MaxAvgFactorForARR  uint32
	MinAvgFactorForARR  uint32
}

type VgpuLicenseExpiry struct {
	Year      uint32
	Month     uint16
	Day       uint16
	Hour      uint16
	Min       uint16
	Sec       uint16
	Status    uint8
	Pad_cgo_0 [1]byte
}

type VgpuLicenseInfo struct {
	IsLicensed    uint8
	LicenseExpiry VgpuLicenseExpiry
	CurrentState  uint32
}

type GridLicenseExpiry struct {
	Year      uint32
	Month     uint16
	Day       uint16
	Hour      uint16
	Min       uint16
	Sec       uint16
	Status    uint8
	Pad_cgo_0 [1]byte
}

type GridLicensableFeature struct {
	FeatureCode    uint32
	FeatureState   uint32
	LicenseInfo    [128]int8
	ProductName    [128]int8
	FeatureEnabled uint32
	LicenseExpiry  GridLicenseExpiry
}

type GridLicensableFeatures struct {
	IsGridLicenseSupported  int32
	LicensableFeaturesCount uint32
	GridLicensableFeatures  [3]GridLicensableFeature
}

type VgpuTypeIdInfo_v1 struct {
	Version     uint32
	VgpuCount   uint32
	VgpuTypeIds *uint32
}

type VgpuTypeIdInfo struct {
	Version     uint32
	VgpuCount   uint32
	VgpuTypeIds *uint32
}

type VgpuTypeMaxInstance_v1 struct {
	Version          uint32
	VgpuTypeId       uint32
	MaxInstancePerGI uint32
}

type VgpuTypeMaxInstance struct {
	Version          uint32
	VgpuTypeId       uint32
	MaxInstancePerGI uint32
}

type ActiveVgpuInstanceInfo_v1 struct {
	Version       uint32
	VgpuCount     uint32
	VgpuInstances *uint32
}

type ActiveVgpuInstanceInfo struct {
	Version       uint32
	VgpuCount     uint32
	VgpuInstances *uint32
}

type VgpuSchedulerState_v1 struct {
	Version         uint32
	EngineId        uint32
	SchedulerPolicy uint32
	EnableARRMode   uint32
	SchedulerParams [8]byte
}

type VgpuSchedulerState struct {
	Version         uint32
	EngineId        uint32
	SchedulerPolicy uint32
	EnableARRMode   uint32
	SchedulerParams [8]byte
}

type VgpuSchedulerStateInfo_v1 struct {
	Version         uint32
	EngineId        uint32
	SchedulerPolicy uint32
	ArrMode         uint32
	SchedulerParams [8]byte
}

type VgpuSchedulerStateInfo struct {
	Version         uint32
	EngineId        uint32
	SchedulerPolicy uint32
	ArrMode         uint32
	SchedulerParams [8]byte
}

type VgpuSchedulerLogInfo_v1 struct {
	Version         uint32
	EngineId        uint32
	SchedulerPolicy uint32
	ArrMode         uint32
	SchedulerParams [8]byte
	EntriesCount    uint32
	LogEntries      [200]VgpuSchedulerLogEntry
}

type VgpuSchedulerLogInfo struct {
	Version         uint32
	EngineId        uint32
	SchedulerPolicy uint32
	ArrMode         uint32
	SchedulerParams [8]byte
	EntriesCount    uint32
	LogEntries      [200]VgpuSchedulerLogEntry
}

type VgpuCreatablePlacementInfo_v1 struct {
	Version       uint32
	VgpuTypeId    uint32
	Count         uint32
	PlacementIds  *uint32
	PlacementSize uint32
	Pad_cgo_0     [4]byte
}

type VgpuCreatablePlacementInfo struct {
	Version       uint32
	VgpuTypeId    uint32
	Count         uint32
	PlacementIds  *uint32
	PlacementSize uint32
	Pad_cgo_0     [4]byte
}

type VgpuSchedulerStateInfo_v2 struct {
	EngineId        uint32
	SchedulerPolicy uint32
	AvgFactor       uint32
	Timeslice       uint32
}

type VgpuSchedulerLogEntry_v2 struct {
	Timestamp                uint64
	TimeRunTotal             uint64
	TimeRun                  uint64
	SwRunlistId              uint32
	TargetTimeSlice          uint64
	CumulativePreemptionTime uint64
	Weight                   uint32
	Pad_cgo_0                [4]byte
}

type VgpuSchedulerLogInfo_v2 struct {
	EngineId        uint32
	SchedulerPolicy uint32
	AvgFactor       uint32
	Timeslice       uint32
	EntriesCount    uint32
	LogEntries      [200]VgpuSchedulerLogEntry_v2
}

type VgpuSchedulerState_v2 struct {
	EngineId        uint32
	SchedulerPolicy uint32
	AvgFactor       uint32
	Frequency       uint32
}

type NvLinkPowerThres struct {
	LowPwrThreshold uint32
}

type FieldValue struct {
	FieldId     uint32
	ScopeId     uint32
	Timestamp   int64
	LatencyUsec int64
	ValueType   uint32
	NvmlReturn  uint32
	Value       [8]byte
}

type nvmlUnit struct {
	Handle *_Ctype_struct_nvmlUnit_st
}

type HwbcEntry struct {
	HwbcId          uint32
	FirmwareVersion [32]int8
}

type LedState struct {
	Cause [256]int8
	Color uint32
}

type UnitInfo struct {
	Name            [96]int8
	Id              [96]int8
	Serial          [96]int8
	FirmwareVersion [96]int8
}

type PSUInfo struct {
	State   [256]int8
	Current uint32
	Voltage uint32
	Power   uint32
}

type UnitFanInfo struct {
	Speed uint32
	State uint32
}

type UnitFanSpeeds struct {
	Fans  [24]UnitFanInfo
	Count uint32
}

type nvmlEventSet struct {
	Handle *_Ctype_struct_nvmlEventSet_st
}

type nvmlEventData struct {
	Device            nvmlDevice
	EventType         uint64
	EventData         uint64
	GpuInstanceId     uint32
	ComputeInstanceId uint32
}

type SystemEventSet struct {
	Handle *_Ctype_struct_nvmlSystemEventSet_st
}

type SystemEventSetCreateRequest_v1 struct {
	Version uint32
	Set     SystemEventSet
}

type SystemEventSetCreateRequest struct {
	Version uint32
	Set     SystemEventSet
}

type SystemEventSetFreeRequest_v1 struct {
	Version uint32
	Set     SystemEventSet
}

type SystemEventSetFreeRequest struct {
	Version uint32
	Set     SystemEventSet
}

type SystemRegisterEventRequest_v1 struct {
	Version    uint32
	EventTypes uint64
	Set        SystemEventSet
}

type SystemRegisterEventRequest struct {
	Version    uint32
	EventTypes uint64
	Set        SystemEventSet
}

type SystemEventData_v1 struct {
	EventType uint64
	GpuId     uint32
	Pad_cgo_0 [4]byte
}

type SystemEventSetWaitRequest_v1 struct {
	Version   uint32
	Timeoutms uint32
	Set       SystemEventSet
	Data      *SystemEventData_v1
	DataSize  uint32
	NumEvent  uint32
}

type SystemEventSetWaitRequest struct {
	Version   uint32
	Timeoutms uint32
	Set       SystemEventSet
	Data      *SystemEventData_v1
	DataSize  uint32
	NumEvent  uint32
}

type AccountingStats struct {
	GpuUtilization    uint32
	MemoryUtilization uint32
	MaxMemoryUsage    uint64
	Time              uint64
	StartTime         uint64
	IsRunning         uint32
	Reserved          [5]uint32
}

type AccountingStats_v2 struct {
	Pid               uint32
	IsRunning         uint32
	GpuUtilization    uint32
	MemoryUtilization uint32
	MaxMemoryUsage    uint64
	SampleCount       uint32
	SumGpuUtil        uint64
	SumFbUtil         uint64
	Time              uint64
	StartTime         uint64
}

type EncoderSessionInfo struct {
	SessionId      uint32
	Pid            uint32
	VgpuInstance   uint32
	CodecType      uint32
	HResolution    uint32
	VResolution    uint32
	AverageFps     uint32
	AverageLatency uint32
}

type FBCStats struct {
	SessionsCount  uint32
	AverageFPS     uint32
	AverageLatency uint32
}

type FBCSessionInfo struct {
	SessionId      uint32
	Pid            uint32
	VgpuInstance   uint32
	DisplayOrdinal uint32
	SessionType    uint32
	SessionFlags   uint32
	HMaxResolution uint32
	VMaxResolution uint32
	HResolution    uint32
	VResolution    uint32
	AverageFPS     uint32
	AverageLatency uint32
}

type ConfComputeSystemCaps struct {
	CpuCaps  uint32
	GpusCaps uint32
}

type ConfComputeSystemState struct {
	Environment  uint32
	CcFeature    uint32
	DevToolsMode uint32
}

type SystemConfComputeSettings_v1 struct {
	Version      uint32
	Environment  uint32
	CcFeature    uint32
	DevToolsMode uint32
	MultiGpuMode uint32
}

type SystemConfComputeSettings struct {
	Version      uint32
	Environment  uint32
	CcFeature    uint32
	DevToolsMode uint32
	MultiGpuMode uint32
}

type ConfComputeMemSizeInfo struct {
	ProtectedMemSizeKib   uint64
	UnprotectedMemSizeKib uint64
}

type ConfComputeGpuCertificate struct {
	CertChainSize            uint32
	AttestationCertChainSize uint32
	CertChain                [4096]uint8
	AttestationCertChain     [5120]uint8
}

type ConfComputeGpuAttestationReport struct {
	IsCecAttestationReportPresent uint32
	AttestationReportSize         uint32
	CecAttestationReportSize      uint32
	Nonce                         [32]uint8
	AttestationReport             [8192]uint8
	CecAttestationReport          [4096]uint8
}

type ConfComputeSetKeyRotationThresholdInfo_v1 struct {
	Version              uint32
	MaxAttackerAdvantage uint64
}

type ConfComputeSetKeyRotationThresholdInfo struct {
	Version              uint32
	MaxAttackerAdvantage uint64
}

type ConfComputeGetKeyRotationThresholdInfo_v1 struct {
	Version           uint32
	AttackerAdvantage uint64
}

type ConfComputeGetKeyRotationThresholdInfo struct {
	Version           uint32
	AttackerAdvantage uint64
}

type GpuFabricState byte

type GpuFabricInfo struct {
	ClusterUuid [16]uint8
	Status      uint32
	CliqueId    uint32
	State       uint8
	Pad_cgo_0   [3]byte
}

type GpuFabricInfo_v2 struct {
	Version     uint32
	ClusterUuid [16]uint8
	Status      uint32
	CliqueId    uint32
	State       uint8
	HealthMask  uint32
}

type GpuFabricInfo_v3 struct {
	Version       uint32
	ClusterUuid   [16]uint8
	Status        uint32
	CliqueId      uint32
	State         uint8
	HealthMask    uint32
	HealthSummary uint8
	Pad_cgo_0     [3]byte
}

type GpuFabricInfoV struct {
	Version       uint32
	ClusterUuid   [16]uint8
	Status        uint32
	CliqueId      uint32
	State         uint8
	HealthMask    uint32
	HealthSummary uint8
	Pad_cgo_0     [3]byte
}

type CPERCursorHandle uint64

type CPERCursor_v1 struct {
	CperTypeMask uint32
	Uuid         [80]int8
	Handle       uint64
}

type GetCPER_v1 struct {
	Cursor     CPERCursor_v1
	Buffer     *uint8
	BufferSize uint32
	Pad_cgo_0  [4]byte
}

type SystemDriverBranchInfo_v1 struct {
	Version uint32
	Branch  [80]int8
}

type SystemDriverBranchInfo struct {
	Version uint32
	Branch  [80]int8
}

type AffinityScope uint32

type Temperature_v1 struct {
	Version     uint32
	SensorType  uint32
	Temperature int32
}

type Temperature struct {
	Version     uint32
	SensorType  uint32
	Temperature int32
}

type NvlinkSupportedBwModes_v1 struct {
	Version      uint32
	BwModes      [23]uint8
	TotalBwModes uint8
}

type NvlinkSupportedBwModes struct {
	Version      uint32
	BwModes      [23]uint8
	TotalBwModes uint8
}

type NvlinkGetBwMode_v1 struct {
	Version   uint32
	BIsBest   uint32
	BwMode    uint8
	Pad_cgo_0 [3]byte
}

type NvlinkGetBwMode struct {
	Version   uint32
	BIsBest   uint32
	BwMode    uint8
	Pad_cgo_0 [3]byte
}

type NvlinkSetBwMode_v1 struct {
	Version   uint32
	BSetBest  uint32
	BwMode    uint8
	Pad_cgo_0 [3]byte
}

type NvlinkSetBwMode struct {
	Version   uint32
	BSetBest  uint32
	BwMode    uint8
	Pad_cgo_0 [3]byte
}

type NvLinkInfo_v1 struct {
	Version       uint32
	IsNvleEnabled uint32
}

type NvlinkFirmwareVersion struct {
	UcodeType uint8
	Major     uint32
	Minor     uint32
	SubMinor  uint32
}

type NvlinkFirmwareInfo struct {
	FirmwareVersion [100]NvlinkFirmwareVersion
	NumValidEntries uint32
}

type NvLinkInfo_v2 struct {
	Version       uint32
	IsNvleEnabled uint32
	FirmwareInfo  NvlinkFirmwareInfo
}

type NvLinkInfo struct {
	Version       uint32
	IsNvleEnabled uint32
	FirmwareInfo  NvlinkFirmwareInfo
}

type VgpuVersion struct {
	MinVersion uint32
	MaxVersion uint32
}

type nvmlVgpuMetadata struct {
	Version                uint32
	Revision               uint32
	GuestInfoState         uint32
	GuestDriverVersion     [80]int8
	HostDriverVersion      [80]int8
	Reserved               [6]uint32
	VgpuVirtualizationCaps uint32
	GuestVgpuVersion       uint32
	OpaqueDataSize         uint32
	OpaqueData             [4]int8
}

type nvmlVgpuPgpuMetadata struct {
	Version                uint32
	Revision               uint32
	HostDriverVersion      [80]int8
	PgpuVirtualizationCaps uint32
	Reserved               [5]uint32
	HostSupportedVgpuRange VgpuVersion
	OpaqueDataSize         uint32
	OpaqueData             [4]int8
}

type VgpuPgpuCompatibility struct {
	VgpuVmCompatibility    uint32
	CompatibilityLimitCode uint32
}

type ExcludedDeviceInfo struct {
	PciInfo PciInfo
	Uuid    [80]int8
}

type PRMTLV_v1 struct {
	DataSize uint32
	Status   uint32
	InData   [496]uint8
}

type PRMCounterInput_v1 struct {
	LocalPort uint32
}

type PRMCounterValue_v1 struct {
	Status      uint32
	OutputType  uint32
	OutputValue [8]byte
}

type PRMCounter_v1 struct {
	CounterId    uint32
	InData       PRMCounterInput_v1
	CounterValue PRMCounterValue_v1
}

type PRMCounterList_v1 struct {
	NumCounters uint32
	Counters    *PRMCounter_v1
}

type GpuInstancePlacement struct {
	Start uint32
	Size  uint32
}

type GpuInstanceProfileInfo struct {
	Id                  uint32
	IsP2pSupported      uint32
	SliceCount          uint32
	InstanceCount       uint32
	MultiprocessorCount uint32
	CopyEngineCount     uint32
	DecoderCount        uint32
	EncoderCount        uint32
	JpegCount           uint32
	OfaCount            uint32
	MemorySizeMB        uint64
}

type GpuInstanceProfileInfo_v2 struct {
	Version             uint32
	Id                  uint32
	IsP2pSupported      uint32
	SliceCount          uint32
	InstanceCount       uint32
	MultiprocessorCount uint32
	CopyEngineCount     uint32
	DecoderCount        uint32
	EncoderCount        uint32
	JpegCount           uint32
	OfaCount            uint32
	MemorySizeMB        uint64
	Name                [96]int8
}

type GpuInstanceProfileInfo_v3 struct {
	Version             uint32
	Id                  uint32
	SliceCount          uint32
	InstanceCount       uint32
	MultiprocessorCount uint32
	CopyEngineCount     uint32
	DecoderCount        uint32
	EncoderCount        uint32
	JpegCount           uint32
	OfaCount            uint32
	MemorySizeMB        uint64
	Name                [96]int8
	Capabilities        uint32
	Pad_cgo_0           [4]byte
}

type nvmlGpuInstanceInfo struct {
	Device    nvmlDevice
	Id        uint32
	ProfileId uint32
	Placement GpuInstancePlacement
}

type ComputeInstancePlacement struct {
	Start uint32
	Size  uint32
}

type ComputeInstanceProfileInfo struct {
	Id                    uint32
	SliceCount            uint32
	InstanceCount         uint32
	MultiprocessorCount   uint32
	SharedCopyEngineCount uint32
	SharedDecoderCount    uint32
	SharedEncoderCount    uint32
	SharedJpegCount       uint32
	SharedOfaCount        uint32
}

type ComputeInstanceProfileInfo_v2 struct {
	Version               uint32
	Id                    uint32
	SliceCount            uint32
	InstanceCount         uint32
	MultiprocessorCount   uint32
	SharedCopyEngineCount uint32
	SharedDecoderCount    uint32
	SharedEncoderCount    uint32
	SharedJpegCount       uint32
	SharedOfaCount        uint32
	Name                  [96]int8
}

type ComputeInstanceProfileInfo_v3 struct {
	Version               uint32
	Id                    uint32
	SliceCount            uint32
	InstanceCount         uint32
	MultiprocessorCount   uint32
	SharedCopyEngineCount uint32
	SharedDecoderCount    uint32
	SharedEncoderCount    uint32
	SharedJpegCount       uint32
	SharedOfaCount        uint32
	Name                  [96]int8
	Capabilities          uint32
}

type nvmlComputeInstanceInfo struct {
	Device      nvmlDevice
	GpuInstance nvmlGpuInstance
	Id          uint32
	ProfileId   uint32
	Placement   ComputeInstancePlacement
}

type nvmlComputeInstance struct {
	Handle *_Ctype_struct_nvmlComputeInstance_st
}

type nvmlGpmSample struct {
	Handle *_Ctype_struct_nvmlGpmSample_st
}

type GpmMetricMetricInfo struct {
	ShortName *int8
	LongName  *int8
	Unit      *int8
}

type GpmMetric struct {
	MetricId   uint32
	NvmlReturn uint32
	Value      float64
	MetricInfo GpmMetricMetricInfo
}

type nvmlGpmMetricsGetType struct {
	Version    uint32
	NumMetrics uint32
	Sample1    nvmlGpmSample
	Sample2    nvmlGpmSample
	Metrics    [333]GpmMetric
}

type GpmSupport struct {
	Version           uint32
	IsSupportedDevice uint32
}

type DeviceCapabilities_v1 struct {
	Version uint32
	CapMask uint32
}

type DeviceCapabilities struct {
	Version uint32
	CapMask uint32
}

type Mask255 struct {
	Mask [8]uint32
}

type WorkloadPowerProfileInfo_v1 struct {
	Version         uint32
	ProfileId       uint32
	Priority        uint32
	ConflictingMask Mask255
}

type WorkloadPowerProfileInfo struct {
	Version         uint32
	ProfileId       uint32
	Priority        uint32
	ConflictingMask Mask255
}

type WorkloadPowerProfileProfilesInfo_v1 struct {
	Version          uint32
	PerfProfilesMask Mask255
	PerfProfile      [255]WorkloadPowerProfileInfo
}

type WorkloadPowerProfileProfilesInfo struct {
	Version          uint32
	PerfProfilesMask Mask255
	PerfProfile      [255]WorkloadPowerProfileInfo
}

type WorkloadPowerProfileCurrentProfiles_v1 struct {
	Version               uint32
	PerfProfilesMask      Mask255
	RequestedProfilesMask Mask255
	EnforcedProfilesMask  Mask255
}

type WorkloadPowerProfileCurrentProfiles struct {
	Version               uint32
	PerfProfilesMask      Mask255
	RequestedProfilesMask Mask255
	EnforcedProfilesMask  Mask255
}

type WorkloadPowerProfileRequestedProfiles_v1 struct {
	Version               uint32
	RequestedProfilesMask Mask255
}

type WorkloadPowerProfileRequestedProfiles struct {
	Version               uint32
	RequestedProfilesMask Mask255
}

type WorkloadPowerProfileUpdateProfiles_v1 struct {
	Operation          uint32
	UpdateProfilesMask Mask255
}

type PowerSmoothingProfile_v1 struct {
	Version   uint32
	ProfileId uint32
	ParamId   uint32
	Value     float64
}

type PowerSmoothingProfile struct {
	Version   uint32
	ProfileId uint32
	ParamId   uint32
	Value     float64
}

type PowerSmoothingState_v1 struct {
	Version uint32
	State   uint32
}

type PowerSmoothingState struct {
	Version uint32
	State   uint32
}
