Documentation ¶
Overview ¶
Package nvgpu tracks the ABI of the Nvidia GPU Linux kernel driver: https://github.com/NVIDIA/open-gpu-kernel-modules
Index ¶
- Constants
- Variables
- type ClassID
- type Handle
- type HasFrontendFD
- type IoctlAllocOSEvent
- type IoctlFreeOSEvent
- type IoctlNVOS02ParametersWithFD
- type IoctlNVOS33ParametersWithFD
- type IoctlRegisterFD
- type IoctlSysParams
- type IoctlWaitOpenComplete
- type NV0000_CTRL_OS_UNIX_EXPORT_OBJECT
- type NV0000_CTRL_OS_UNIX_EXPORT_OBJECT_TO_FD_PARAMS
- type NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS
- type NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS_V545
- type NV0000_CTRL_OS_UNIX_IMPORT_OBJECT_FROM_FD_PARAMS
- type NV0000_CTRL_SYSTEM_GET_BUILD_VERSION_PARAMS
- type NV0005_ALLOC_PARAMETERS
- type NV0041_CTRL_GET_SURFACE_INFO_PARAMS
- type NV0080_ALLOC_PARAMETERS
- type NV0080_CTRL_FIFO_GET_CHANNELLIST_PARAMS
- type NV0080_CTRL_GPU_GET_CLASSLIST_PARAMS
- type NV0080_CTRL_GR_ROUTE_INFO
- type NV00F8_ALLOCATION_PARAMETERS
- type NV2080_ALLOC_PARAMETERS
- type NV2080_CTRL_FIFO_DISABLE_CHANNELS_PARAMS
- type NV2080_CTRL_GR_GET_INFO_PARAMS
- type NV2081_ALLOC_PARAMETERS
- type NV503B_ALLOC_PARAMETERS
- type NV503B_BAR1_P2P_DMA_INFO
- type NV503C_ALLOC_PARAMETERS
- type NV503C_CTRL_REGISTER_VA_SPACE_PARAMS
- type NV83DE_ALLOC_PARAMETERS
- type NVB0B5_ALLOCATION_PARAMETERS
- type NVOS00Parameters
- type NVOS02Parameters
- type NVOS21Parameters
- func (n *NVOS21Parameters) FromOS64(other NVOS64Parameters)
- func (n *NVOS21Parameters) GetHClass() ClassID
- func (n *NVOS21Parameters) GetPAllocParms() P64
- func (n *NVOS21Parameters) GetPRightsRequested() P64
- func (n *NVOS21Parameters) GetPointer() uintptr
- func (n *NVOS21Parameters) SetPAllocParms(p P64)
- func (n *NVOS21Parameters) SetPRightsRequested(p P64)
- func (n *NVOS21Parameters) ToOS64() NVOS64Parameters
- type NVOS32AllocSize
- type NVOS32Parameters
- type NVOS33Parameters
- type NVOS34Parameters
- type NVOS54Parameters
- type NVOS55Parameters
- type NVOS56Parameters
- type NVOS57Parameters
- type NVOS64Parameters
- func (n *NVOS64Parameters) FromOS64(other NVOS64Parameters)
- func (n *NVOS64Parameters) GetHClass() ClassID
- func (n *NVOS64Parameters) GetPAllocParms() P64
- func (n *NVOS64Parameters) GetPRightsRequested() P64
- func (n *NVOS64Parameters) GetPointer() uintptr
- func (n *NVOS64Parameters) SetPAllocParms(p P64)
- func (n *NVOS64Parameters) SetPRightsRequested(p P64)
- func (n *NVOS64Parameters) ToOS64() NVOS64Parameters
- type NVXXXX_CTRL_XXX_INFO
- type NV_CHANNEL_ALLOC_PARAMS
- type NV_CHANNEL_GROUP_ALLOCATION_PARAMETERS
- type NV_CONFIDENTIAL_COMPUTE_ALLOC_PARAMS
- type NV_CTXSHARE_ALLOCATION_PARAMETERS
- type NV_GR_ALLOCATION_PARAMETERS
- type NV_HOPPER_USERMODE_A_PARAMS
- type NV_MEMORY_ALLOCATION_PARAMS
- type NV_MEMORY_ALLOCATION_PARAMS_V545
- type NV_MEMORY_DESC_PARAMS
- type NV_VASPACE_ALLOCATION_PARAMETERS
- type NvUUID
- type P64
- type RMAPIVersion
- type RS_ACCESS_MASK
- type RS_SHARE_POLICY
- type RmAllocParamType
- type UVM_ALLOC_SEMAPHORE_POOL_PARAMS
- type UVM_ALLOC_SEMAPHORE_POOL_PARAMS_V550
- type UVM_CREATE_EXTERNAL_RANGE_PARAMS
- type UVM_CREATE_RANGE_GROUP_PARAMS
- type UVM_DESTROY_RANGE_GROUP_PARAMS
- type UVM_DISABLE_READ_DUPLICATION_PARAMS
- type UVM_FREE_PARAMS
- type UVM_INITIALIZE_PARAMS
- type UVM_MAP_DYNAMIC_PARALLELISM_REGION_PARAMS
- type UVM_MAP_EXTERNAL_ALLOCATION_PARAMS
- type UVM_MAP_EXTERNAL_ALLOCATION_PARAMS_V550
- type UVM_MIGRATE_RANGE_GROUP_PARAMS
- type UVM_MM_INITIALIZE_PARAMS
- type UVM_PAGEABLE_MEM_ACCESS_PARAMS
- type UVM_REGISTER_CHANNEL_PARAMS
- type UVM_REGISTER_GPU_PARAMS
- type UVM_REGISTER_GPU_VASPACE_PARAMS
- type UVM_SET_PREFERRED_LOCATION_PARAMS
- type UVM_SET_PREFERRED_LOCATION_PARAMS_V550
- type UVM_SET_RANGE_GROUP_PARAMS
- type UVM_TOOLS_READ_PROCESS_MEMORY_PARAMS
- type UVM_TOOLS_WRITE_PROCESS_MEMORY_PARAMS
- type UVM_UNREGISTER_CHANNEL_PARAMS
- type UVM_UNREGISTER_GPU_PARAMS
- type UVM_UNREGISTER_GPU_VASPACE_PARAMS
- type UVM_VALIDATE_VA_RANGE_PARAMS
- type UvmGpuMappingAttributes
Constants ¶
const ( NV01_ROOT = 0x00000000 NV01_ROOT_NON_PRIV = 0x00000001 NV01_MEMORY_SYSTEM = 0x0000003e NV01_MEMORY_LOCAL_USER = 0x00000040 NV01_ROOT_CLIENT = 0x00000041 NV01_MEMORY_SYSTEM_OS_DESCRIPTOR = 0x00000071 NV01_EVENT_OS_EVENT = 0x00000079 NV01_DEVICE_0 = 0x00000080 NV_MEMORY_FABRIC = 0x000000f8 NV20_SUBDEVICE_0 = 0x00002080 NV2081_BINAPI = 0x00002081 NV50_P2P = 0x0000503b NV50_THIRD_PARTY_P2P = 0x0000503c NV50_MEMORY_VIRTUAL = 0x000050a0 GT200_DEBUGGER = 0x000083de GF100_SUBDEVICE_MASTER = 0x000090e6 FERMI_CONTEXT_SHARE_A = 0x00009067 FERMI_VASPACE_A = 0x000090f1 KEPLER_CHANNEL_GROUP_A = 0x0000a06c TURING_USERMODE_A = 0x0000c461 TURING_CHANNEL_GPFIFO_A = 0x0000c46f AMPERE_CHANNEL_GPFIFO_A = 0x0000c56f TURING_DMA_COPY_A = 0x0000c5b5 TURING_COMPUTE_A = 0x0000c5c0 HOPPER_USERMODE_A = 0x0000c661 AMPERE_DMA_COPY_A = 0x0000c6b5 AMPERE_COMPUTE_A = 0x0000c6c0 AMPERE_DMA_COPY_B = 0x0000c7b5 AMPERE_COMPUTE_B = 0x0000c7c0 HOPPER_CHANNEL_GPFIFO_A = 0x0000c86f HOPPER_DMA_COPY_A = 0x0000c8b5 ADA_COMPUTE_A = 0x0000c9c0 NV_CONFIDENTIAL_COMPUTE = 0x0000cb33 HOPPER_SEC2_WORK_LAUNCH_A = 0x0000cba2 HOPPER_COMPUTE_A = 0x0000cbc0 )
Class IDs, from src/nvidia/generated/g_allclasses.h.
const ( NV0000_CTRL_CMD_CLIENT_GET_ADDR_SPACE_TYPE = 0xd01 NV0000_CTRL_CMD_CLIENT_SET_INHERITED_SHARE_POLICY = 0xd04 )
From src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000client.h:
const ( NV0000_CTRL_CMD_GPU_GET_ATTACHED_IDS = 0x201 NV0000_CTRL_CMD_GPU_GET_ID_INFO = 0x202 NV0000_CTRL_CMD_GPU_GET_ID_INFO_V2 = 0x205 NV0000_CTRL_CMD_GPU_GET_PROBED_IDS = 0x214 NV0000_CTRL_CMD_GPU_ATTACH_IDS = 0x215 NV0000_CTRL_CMD_GPU_DETACH_IDS = 0x216 NV0000_CTRL_CMD_GPU_GET_PCI_INFO = 0x21b NV0000_CTRL_CMD_GPU_QUERY_DRAIN_STATE = 0x279 NV0000_CTRL_CMD_GPU_GET_MEMOP_ENABLE = 0x27b NV0000_CTRL_CMD_GPU_ASYNC_ATTACH_ID = 0x289 NV0000_CTRL_CMD_GPU_WAIT_ATTACH_ID = 0x290 )
From src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000gpu.h:
const ( NV0000_CTRL_CMD_SYSTEM_GET_BUILD_VERSION = 0x101 NV0000_CTRL_CMD_SYSTEM_GET_P2P_CAPS = 0x127 NV0000_CTRL_CMD_SYSTEM_GET_P2P_CAPS_V2 = 0x12b NV0000_CTRL_CMD_SYSTEM_GET_FABRIC_STATUS = 0x136 NV0000_CTRL_CMD_SYSTEM_GET_P2P_CAPS_MATRIX = 0x13a NV0000_CTRL_CMD_SYSTEM_GET_FEATURES = 0x1f0 )
From src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000system.h:
const ( NV0000_CTRL_CMD_OS_UNIX_EXPORT_OBJECT_TO_FD = 0x3d05 NV0000_CTRL_CMD_OS_UNIX_IMPORT_OBJECT_FROM_FD = 0x3d06 NV0000_CTRL_CMD_OS_UNIX_GET_EXPORT_OBJECT_INFO = 0x3d08 NV0000_OS_UNIX_EXPORT_OBJECT_FD_BUFFER_SIZE = 64 )
From src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000unix.h:
const ( NV0080_CTRL_CMD_GPU_GET_CLASSLIST = 0x800201 NV0080_CTRL_CMD_GPU_GET_NUM_SUBDEVICES = 0x800280 NV0080_CTRL_CMD_GPU_QUERY_SW_STATE_PERSISTENCE = 0x800288 NV0080_CTRL_CMD_GPU_GET_VIRTUALIZATION_MODE = 0x800289 NV0080_CTRL_CMD_GPU_GET_CLASSLIST_V2 = 0x800292 )
From src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080gpu.h:
const ( NV2080_CTRL_CMD_BUS_GET_PCI_INFO = 0x20801801 NV2080_CTRL_CMD_BUS_GET_PCI_BAR_INFO = 0x20801803 NV2080_CTRL_CMD_BUS_GET_INFO_V2 = 0x20801823 NV2080_CTRL_CMD_BUS_GET_PCIE_SUPPORTED_GPU_ATOMICS = 0x2080182a NV2080_CTRL_CMD_BUS_GET_C2C_INFO = 0x2080182b )
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080bus.h:
const ( NV2080_CTRL_CMD_FIFO_DISABLE_CHANNELS = 0x2080110b NV2080_CTRL_FIFO_DISABLE_CHANNELS_MAX_ENTRIES = 64 )
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fifo.h:
const ( NV2080_CTRL_CMD_GPU_GET_INFO_V2 = 0x20800102 NV2080_CTRL_CMD_GPU_GET_NAME_STRING = 0x20800110 NV2080_CTRL_CMD_GPU_GET_SHORT_NAME_STRING = 0x20800111 NV2080_CTRL_CMD_GPU_GET_SIMULATION_INFO = 0x20800119 NV2080_CTRL_CMD_GPU_QUERY_ECC_STATUS = 0x2080012f NV2080_CTRL_CMD_GPU_QUERY_COMPUTE_MODE_RULES = 0x20800131 NV2080_CTRL_CMD_GPU_ACQUIRE_COMPUTE_MODE_RESERVATION = 0x20800145 // undocumented; paramSize == 0 NV2080_CTRL_CMD_GPU_RELEASE_COMPUTE_MODE_RESERVATION = 0x20800146 // undocumented; paramSize == 0 NV2080_CTRL_CMD_GPU_GET_GID_INFO = 0x2080014a NV2080_CTRL_CMD_GPU_GET_ENGINES_V2 = 0x20800170 NV2080_CTRL_CMD_GPU_GET_ACTIVE_PARTITION_IDS = 0x2080018b NV2080_CTRL_CMD_GPU_GET_PIDS = 0x2080018d NV2080_CTRL_CMD_GPU_GET_PID_INFO = 0x2080018e NV2080_CTRL_CMD_GPU_GET_COMPUTE_POLICY_CONFIG = 0x20800195 NV2080_CTRL_CMD_GET_GPU_FABRIC_PROBE_INFO = 0x208001a3 )
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpu.h:
const ( NV2080_CTRL_CMD_GR_GET_INFO = 0x20801201 NV2080_CTRL_CMD_GR_SET_CTXSW_PREEMPTION_MODE = 0x20801210 NV2080_CTRL_CMD_GR_GET_CTX_BUFFER_SIZE = 0x20801218 NV2080_CTRL_CMD_GR_GET_GLOBAL_SM_ORDER = 0x2080121b NV2080_CTRL_CMD_GR_GET_CAPS_V2 = 0x20801227 NV2080_CTRL_CMD_GR_GET_GPC_MASK = 0x2080122a NV2080_CTRL_CMD_GR_GET_TPC_MASK = 0x2080122b NV2080_CTRL_CMD_GR_GET_SM_ISSUE_RATE_MODIFIER = 0x20801230 )
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gr.h:
const ( NV2080_CTRL_CMD_MC_GET_ARCH_INFO = 0x20801701 NV2080_CTRL_CMD_MC_SERVICE_INTERRUPTS = 0x20801702 )
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080mc.h:
const ( NV2080_CTRL_CMD_NVLINK_GET_NVLINK_CAPS = 0x20803001 NV2080_CTRL_CMD_NVLINK_GET_NVLINK_STATUS = 0x20803002 )
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080nvlink.h:
const ( NV2080_CTRL_CMD_RC_GET_WATCHDOG_INFO = 0x20802209 NV2080_CTRL_CMD_RC_RELEASE_WATCHDOG_REQUESTS = 0x2080220c NV2080_CTRL_CMD_RC_SOFT_DISABLE_WATCHDOG = 0x20802210 )
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080rc.h:
const ( NV503C_CTRL_CMD_REGISTER_VA_SPACE = 0x503c0102 NV503C_CTRL_CMD_REGISTER_VIDMEM = 0x503c0104 NV503C_CTRL_CMD_UNREGISTER_VIDMEM = 0x503c0105 )
From src/common/sdk/nvidia/inc/ctrl/ctrl503c.h:
const ( NV83DE_CTRL_CMD_DEBUG_SET_EXCEPTION_MASK = 0x83de0309 NV83DE_CTRL_CMD_DEBUG_READ_ALL_SM_ERROR_STATES = 0x83de030c NV83DE_CTRL_CMD_DEBUG_CLEAR_ALL_SM_ERROR_STATES = 0x83de0310 )
From src/common/sdk/nvidia/inc/ctrl/ctrl83de/ctrl83dedebug.h:
const ( NVC36F_CTRL_GET_CLASS_ENGINEID = 0xc36f0101 NVC36F_CTRL_CMD_GPFIFO_GET_WORK_SUBMIT_TOKEN = 0xc36f0108 )
From src/common/sdk/nvidia/inc/ctrl/ctrlc36f.h:
const ( NVA06C_CTRL_CMD_GPFIFO_SCHEDULE = 0xa06c0101 NVA06C_CTRL_CMD_SET_TIMESLICE = 0xa06c0103 NVA06C_CTRL_CMD_PREEMPT = 0xa06c0105 )
From src/common/sdk/nvidia/inc/ctrl/ctrla06c.h:
const ( NV_CONF_COMPUTE_CTRL_CMD_SYSTEM_GET_CAPABILITIES = 0xcb330101 NV_CONF_COMPUTE_CTRL_CMD_SYSTEM_GET_GPUS_STATE = 0xcb330104 NV_CONF_COMPUTE_CTRL_CMD_GPU_GET_NUM_SECURE_CHANNELS = 0xcb33010b )
From src/common/sdk/nvidia/inc/ctrl/ctrlcb33.h:
const ( // From kernel-open/common/inc/nv-ioctl-numbers.h: NV_IOCTL_BASE = 200 NV_ESC_CARD_INFO = NV_IOCTL_BASE + 0 NV_ESC_REGISTER_FD = NV_IOCTL_BASE + 1 NV_ESC_ALLOC_OS_EVENT = NV_IOCTL_BASE + 6 NV_ESC_FREE_OS_EVENT = NV_IOCTL_BASE + 7 NV_ESC_CHECK_VERSION_STR = NV_IOCTL_BASE + 10 NV_ESC_ATTACH_GPUS_TO_FD = NV_IOCTL_BASE + 12 NV_ESC_SYS_PARAMS = NV_IOCTL_BASE + 14 NV_ESC_WAIT_OPEN_COMPLETE = NV_IOCTL_BASE + 18 // From kernel-open/common/inc/nv-ioctl-numa.h: NV_ESC_NUMA_INFO = NV_IOCTL_BASE + 15 // From src/nvidia/arch/nvalloc/unix/include/nv_escape.h: NV_ESC_RM_ALLOC_MEMORY = 0x27 NV_ESC_RM_FREE = 0x29 NV_ESC_RM_CONTROL = 0x2a NV_ESC_RM_ALLOC = 0x2b NV_ESC_RM_DUP_OBJECT = 0x34 NV_ESC_RM_SHARE = 0x35 NV_ESC_RM_VID_HEAP_CONTROL = 0x4a NV_ESC_RM_MAP_MEMORY = 0x4e NV_ESC_RM_UNMAP_MEMORY = 0x4f NV_ESC_RM_UPDATE_DEVICE_MAPPING_INFO = 0x5e )
Frontend ioctl numbers. Note that these are only the IOC_NR part of the ioctl command.
const ( NV_MAJOR_DEVICE_NUMBER = 195 // from kernel-open/common/inc/nv.h NV_CONTROL_DEVICE_MINOR = 255 // from kernel-open/common/inc/nv-linux.h NVIDIA_UVM_PRIMARY_MINOR_NUMBER = 0 // from kernel-open/nvidia-uvm/uvm_common.h )
Device numbers.
const ( NV_MAX_DEVICES = 32 NV_MAX_SUBDEVICES = 8 )
From src/common/sdk/nvidia/inc/nvlimits.h:
const ( CC_CHAN_ALLOC_IV_SIZE_DWORD = 3 CC_CHAN_ALLOC_NONCE_SIZE_DWORD = 8 )
From src/common/sdk/nvidia/inc/alloc/alloc_channel.h.
const ( NV_OK = 0x00000000 NV_ERR_INVALID_ADDRESS = 0x0000001e NV_ERR_INVALID_ARGUMENT = 0x0000001f NV_ERR_INVALID_CLASS = 0x00000022 NV_ERR_INVALID_LIMIT = 0x0000002e NV_ERR_NOT_SUPPORTED = 0x00000056 )
Status codes, from src/common/sdk/nvidia/inc/nvstatuscodes.h.
const ( // From kernel-open/nvidia-uvm/uvm_linux_ioctl.h: UVM_INITIALIZE = 0x30000001 UVM_DEINITIALIZE = 0x30000002 // From kernel-open/nvidia-uvm/uvm_ioctl.h: UVM_CREATE_RANGE_GROUP = 23 UVM_DESTROY_RANGE_GROUP = 24 UVM_REGISTER_GPU_VASPACE = 25 UVM_UNREGISTER_GPU_VASPACE = 26 UVM_REGISTER_CHANNEL = 27 UVM_UNREGISTER_CHANNEL = 28 UVM_SET_RANGE_GROUP = 31 UVM_MAP_EXTERNAL_ALLOCATION = 33 UVM_FREE = 34 UVM_REGISTER_GPU = 37 UVM_UNREGISTER_GPU = 38 UVM_PAGEABLE_MEM_ACCESS = 39 UVM_SET_PREFERRED_LOCATION = 42 UVM_DISABLE_READ_DUPLICATION = 45 UVM_MIGRATE_RANGE_GROUP = 53 UVM_TOOLS_READ_PROCESS_MEMORY = 62 UVM_TOOLS_WRITE_PROCESS_MEMORY = 63 UVM_MAP_DYNAMIC_PARALLELISM_REGION = 65 UVM_ALLOC_SEMAPHORE_POOL = 68 UVM_VALIDATE_VA_RANGE = 72 UVM_CREATE_EXTERNAL_RANGE = 73 UVM_MM_INITIALIZE = 75 )
UVM ioctl commands.
const ( UVM_MAX_GPUS = NV_MAX_DEVICES UVM_MAX_GPUS_V2 = NV_MAX_DEVICES * NV_MAX_SUBDEVICES )
const (
NV0000_CTRL_CMD_SYNC_GPU_BOOST_GROUP_INFO = 0xa04
)
From src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000syncgpuboost.h:
const (
NV0041_CTRL_CMD_GET_SURFACE_INFO = 0x410110
)
From src/common/sdk/nvidia/inc/ctrl/ctrl0041.h
const (
NV0080_CTRL_CMD_FB_GET_CAPS_V2 = 0x801307
)
From src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080fb.h:
const (
NV0080_CTRL_CMD_FIFO_GET_CHANNELLIST = 0x80170d
)
From src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080fifo.h:
const (
NV0080_CTRL_CMD_HOST_GET_CAPS_V2 = 0x801402
)
From src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080host.h:
const (
NV0080_CTRL_CMD_PERF_CUDA_LIMIT_SET_CONTROL = 0x801909
)
From src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080perf.h:
const (
NV2080_CTRL_CMD_CE_GET_ALL_CAPS = 0x20802a0a
)
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080ce.h:
const (
NV2080_CTRL_CMD_FB_GET_INFO_V2 = 0x20801303
)
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fb.h:
const (
NV2080_CTRL_CMD_FLCN_GET_CTX_BUFFER_SIZE = 0x20803125
)
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080flcn.h:
const (
NV2080_CTRL_CMD_GSP_GET_FEATURES = 0x20803601
)
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gsp.h:
const (
NV2080_CTRL_CMD_PERF_BOOST = 0x2080200a
)
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080perf.h:
const (
NV2080_CTRL_CMD_TIMER_GET_GPU_CPU_TIME_CORRELATION_INFO = 0x20800406
)
From src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080tmr.h:
const (
NV906F_CTRL_CMD_RESET_CHANNEL = 0x906f0102
)
From src/common/sdk/nvidia/inc/ctrl/ctrl906f.h:
const (
NV90E6_CTRL_CMD_MASTER_GET_VIRTUAL_FUNCTION_ERROR_CONT_INTR_MASK = 0x90e60102
)
From src/common/sdk/nvidia/inc/ctrl/ctrl90e6.h:
const (
NVA06F_CTRL_CMD_GPFIFO_SCHEDULE = 0xa06f0103
)
From src/common/sdk/nvidia/inc/ctrl/ctrla06f/ctrla06fgpfifo.h:
const (
NVC56F_CTRL_CMD_GET_KMB = 0xc56f010b
)
From src/common/sdk/nvidia/inc/ctrl/ctrlc56f.h:
const (
NVOS32_FUNCTION_ALLOC_SIZE = 2
)
Possible values for NVOS32Parameters.Function:
const NV_IOCTL_MAGIC = uint32('F')
NV_IOCTL_MAGIC is the "canonical" IOC_TYPE for frontend ioctls. The driver ignores IOC_TYPE, allowing any value to be passed.
const ( // RMAPI_PARAM_COPY_MAX_PARAMS_SIZE is the size limit imposed while copying // "embedded pointers" in rmapi parameter structs. // See src/nvidia/src/kernel/rmapi/param_copy.c:rmapiParamsAcquire(). RMAPI_PARAM_COPY_MAX_PARAMS_SIZE = 1 * 1024 * 1024 )
From src/nvidia/inc/kernel/rmapi/param_copy.h:
const (
RM_GSS_LEGACY_MASK = 0x00008000
)
From src/nvidia/interface/deprecated/rmapi_deprecated.h:
const SDK_RS_ACCESS_MAX_LIMBS = 1
const (
UVM_INIT_FLAGS_MULTI_PROCESS_SHARING_MODE = 0x2
)
UVM_INITIALIZE_PARAMS flags, from kernel-open/nvidia-uvm/uvm_types.h.
Variables ¶
var ( SizeofIoctlRegisterFD = uint32((*IoctlRegisterFD)(nil).SizeBytes()) SizeofIoctlAllocOSEvent = uint32((*IoctlAllocOSEvent)(nil).SizeBytes()) SizeofIoctlFreeOSEvent = uint32((*IoctlFreeOSEvent)(nil).SizeBytes()) SizeofRMAPIVersion = uint32((*RMAPIVersion)(nil).SizeBytes()) SizeofIoctlSysParams = uint32((*IoctlSysParams)(nil).SizeBytes()) SizeofIoctlWaitOpenComplete = uint32((*IoctlWaitOpenComplete)(nil).SizeBytes()) SizeofIoctlNVOS02ParametersWithFD = uint32((*IoctlNVOS02ParametersWithFD)(nil).SizeBytes()) SizeofNVOS00Parameters = uint32((*NVOS00Parameters)(nil).SizeBytes()) SizeofNVOS21Parameters = uint32((*NVOS21Parameters)(nil).SizeBytes()) SizeofIoctlNVOS33ParametersWithFD = uint32((*IoctlNVOS33ParametersWithFD)(nil).SizeBytes()) SizeofNVOS55Parameters = uint32((*NVOS55Parameters)(nil).SizeBytes()) SizeofNVOS57Parameters = uint32((*NVOS57Parameters)(nil).SizeBytes()) SizeofNVOS32Parameters = uint32((*NVOS32Parameters)(nil).SizeBytes()) SizeofNVOS34Parameters = uint32((*NVOS34Parameters)(nil).SizeBytes()) SizeofNVOS54Parameters = uint32((*NVOS54Parameters)(nil).SizeBytes()) SizeofNVOS56Parameters = uint32((*NVOS56Parameters)(nil).SizeBytes()) SizeofNVOS64Parameters = uint32((*NVOS64Parameters)(nil).SizeBytes()) )
Frontend ioctl parameter struct sizes.
Functions ¶
This section is empty.
Types ¶
type ClassID ¶
type ClassID uint32
ClassID is a client class ID, in the sense of src/nvidia/src/kernel/rmapi/resource_desc.h:RS_RESOURCE_DESC::externalClassID.
+marshal
type Handle ¶
type Handle struct {
Val uint32
}
Handle is NvHandle, from src/common/sdk/nvidia/inc/nvtypes.h.
+marshal +stateify savable
type HasFrontendFD ¶
HasFrontendFD is a type constraint for parameter structs containing a frontend FD field. This is necessary because, as of this writing (Go 1.20), there is no way to enable field access using a Go type constraint.
type IoctlAllocOSEvent ¶
IoctlAllocOSEvent is nv_ioctl_alloc_os_event_t, the parameter type for NV_ESC_ALLOC_OS_EVENT.
+marshal
func (*IoctlAllocOSEvent) GetFrontendFD ¶
func (p *IoctlAllocOSEvent) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*IoctlAllocOSEvent) SetFrontendFD ¶
func (p *IoctlAllocOSEvent) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type IoctlFreeOSEvent ¶
IoctlFreeOSEvent is nv_ioctl_free_os_event_t, the parameter type for NV_ESC_FREE_OS_EVENT.
+marshal
func (*IoctlFreeOSEvent) GetFrontendFD ¶
func (p *IoctlFreeOSEvent) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*IoctlFreeOSEvent) SetFrontendFD ¶
func (p *IoctlFreeOSEvent) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type IoctlNVOS02ParametersWithFD ¶
type IoctlNVOS02ParametersWithFD struct { Params NVOS02Parameters FD int32 Pad0 [4]byte }
IoctlNVOS02ParametersWithFD is nv_ioctl_nvos2_parameters_with_fd, the parameter type for NV_ESC_RM_ALLOC_MEMORY.
+marshal
type IoctlNVOS33ParametersWithFD ¶
type IoctlNVOS33ParametersWithFD struct { Params NVOS33Parameters FD int32 Pad0 [4]byte }
IoctlNVOS33ParametersWithFD is nv_ioctl_nvos33_parameters_with_fd, the parameter type for NV_ESC_RM_MAP_MEMORY, from src/nvidia/arch/nvalloc/unix/include/nv-unix-nvos-params-wrappers.h.
+marshal
type IoctlRegisterFD ¶
type IoctlRegisterFD struct {
CtlFD int32
}
IoctlRegisterFD is nv_ioctl_register_fd_t, the parameter type for NV_ESC_REGISTER_FD.
+marshal
type IoctlSysParams ¶
type IoctlSysParams struct {
MemblockSize uint64
}
IoctlSysParams is nv_ioctl_sys_params_t, the parameter type for NV_ESC_SYS_PARAMS.
+marshal
type IoctlWaitOpenComplete ¶
IoctlWaitOpenComplete is nv_ioctl_wait_open_complete_t, the parameter type for NV_ESC_WAIT_OPEN_COMPLETE.
+marshal
type NV0000_CTRL_OS_UNIX_EXPORT_OBJECT ¶
type NV0000_CTRL_OS_UNIX_EXPORT_OBJECT struct { Type uint32 // enum NV0000_CTRL_OS_UNIX_EXPORT_OBJECT_TYPE // These fields are inside union `data`, in struct `rmObject`. HDevice Handle HParent Handle HObject Handle }
+marshal
type NV0000_CTRL_OS_UNIX_EXPORT_OBJECT_TO_FD_PARAMS ¶
type NV0000_CTRL_OS_UNIX_EXPORT_OBJECT_TO_FD_PARAMS struct { Object NV0000_CTRL_OS_UNIX_EXPORT_OBJECT FD int32 Flags uint32 }
+marshal
func (*NV0000_CTRL_OS_UNIX_EXPORT_OBJECT_TO_FD_PARAMS) GetFrontendFD ¶
func (p *NV0000_CTRL_OS_UNIX_EXPORT_OBJECT_TO_FD_PARAMS) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*NV0000_CTRL_OS_UNIX_EXPORT_OBJECT_TO_FD_PARAMS) SetFrontendFD ¶
func (p *NV0000_CTRL_OS_UNIX_EXPORT_OBJECT_TO_FD_PARAMS) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS ¶
type NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS struct { FD int32 DeviceInstance uint32 MaxObjects uint16 Pad [2]byte Metadata [NV0000_OS_UNIX_EXPORT_OBJECT_FD_BUFFER_SIZE]uint8 }
+marshal
func (*NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS) GetFrontendFD ¶
func (p *NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS) SetFrontendFD ¶
func (p *NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS_V545 ¶
type NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS_V545 struct { FD int32 DeviceInstance uint32 GpuInstanceID uint32 MaxObjects uint16 Pad [2]byte Metadata [NV0000_OS_UNIX_EXPORT_OBJECT_FD_BUFFER_SIZE]uint8 }
+marshal
func (*NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS_V545) GetFrontendFD ¶
func (p *NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS_V545) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS_V545) SetFrontendFD ¶
func (p *NV0000_CTRL_OS_UNIX_GET_EXPORT_OBJECT_INFO_PARAMS_V545) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type NV0000_CTRL_OS_UNIX_IMPORT_OBJECT_FROM_FD_PARAMS ¶
type NV0000_CTRL_OS_UNIX_IMPORT_OBJECT_FROM_FD_PARAMS struct { FD int32 Object NV0000_CTRL_OS_UNIX_EXPORT_OBJECT }
+marshal
func (*NV0000_CTRL_OS_UNIX_IMPORT_OBJECT_FROM_FD_PARAMS) GetFrontendFD ¶
func (p *NV0000_CTRL_OS_UNIX_IMPORT_OBJECT_FROM_FD_PARAMS) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*NV0000_CTRL_OS_UNIX_IMPORT_OBJECT_FROM_FD_PARAMS) SetFrontendFD ¶
func (p *NV0000_CTRL_OS_UNIX_IMPORT_OBJECT_FROM_FD_PARAMS) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type NV0000_CTRL_SYSTEM_GET_BUILD_VERSION_PARAMS ¶
type NV0000_CTRL_SYSTEM_GET_BUILD_VERSION_PARAMS struct { SizeOfStrings uint32 Pad [4]byte PDriverVersionBuffer P64 PVersionBuffer P64 PTitleBuffer P64 ChangelistNumber uint32 OfficialChangelistNumber uint32 }
+marshal
type NV0005_ALLOC_PARAMETERS ¶
type NV0005_ALLOC_PARAMETERS struct { HParentClient Handle HSrcResource Handle HClass uint32 NotifyIndex uint32 Data P64 // actually FD for NV01_EVENT_OS_EVENT, see src/nvidia/src/kernel/rmapi/event.c:eventConstruct_IMPL() => src/nvidia/arch/nvalloc/unix/src/os.c:osUserHandleToKernelPtr() }
NV0005_ALLOC_PARAMETERS is the alloc params type for NV01_EVENT_OS_EVENT, from src/common/sdk/nvidia/inc/class/cl0005.h.
+marshal
type NV0041_CTRL_GET_SURFACE_INFO_PARAMS ¶
type NV0041_CTRL_GET_SURFACE_INFO_PARAMS struct { SurfaceInfoListSize uint32 Pad [4]byte SurfaceInfoList P64 }
+marshal
type NV0080_ALLOC_PARAMETERS ¶
type NV0080_ALLOC_PARAMETERS struct { DeviceID uint32 HTargetClient Handle HTargetDevice Handle Flags uint32 Pad0 [4]byte VASpaceSize uint64 VAStartInternal uint64 VALimitInternal uint64 VAMode uint32 Pad1 [4]byte }
NV0080_ALLOC_PARAMETERS is the alloc params type for NV01_DEVICE_0, from src/common/sdk/nvidia/inc/class/cl0080.h.
+marshal
type NV0080_CTRL_FIFO_GET_CHANNELLIST_PARAMS ¶
type NV0080_CTRL_FIFO_GET_CHANNELLIST_PARAMS struct { NumChannels uint32 Pad [4]byte PChannelHandleList P64 PChannelList P64 }
+marshal
type NV0080_CTRL_GPU_GET_CLASSLIST_PARAMS ¶
+marshal
type NV0080_CTRL_GR_ROUTE_INFO ¶
+marshal
type NV00F8_ALLOCATION_PARAMETERS ¶
type NV00F8_ALLOCATION_PARAMETERS struct { Alignment uint64 AllocSize uint64 PageSize uint64 AllocFlags uint32 Map nv00f8Map // contains filtered or unexported fields }
NV00F8_ALLOCATION_PARAMETERS is the alloc param type for NV_MEMORY_FABRIC, from src/common/sdk/nvidia/inc/class/cl00f8.h.
+marshal
type NV2080_ALLOC_PARAMETERS ¶
type NV2080_ALLOC_PARAMETERS struct {
SubDeviceID uint32
}
NV2080_ALLOC_PARAMETERS is the alloc params type for NV20_SUBDEVICE_0, from src/common/sdk/nvidia/inc/class/cl2080.h.
+marshal
type NV2080_CTRL_FIFO_DISABLE_CHANNELS_PARAMS ¶
type NV2080_CTRL_FIFO_DISABLE_CHANNELS_PARAMS struct { BDisable uint8 Pad1 [3]byte NumChannels uint32 BOnlyDisableScheduling uint8 BRewindGpPut uint8 Pad2 [6]byte PRunlistPreemptEvent P64 HClientList [NV2080_CTRL_FIFO_DISABLE_CHANNELS_MAX_ENTRIES]Handle HChannelList [NV2080_CTRL_FIFO_DISABLE_CHANNELS_MAX_ENTRIES]Handle }
+marshal
type NV2080_CTRL_GR_GET_INFO_PARAMS ¶
type NV2080_CTRL_GR_GET_INFO_PARAMS struct { GRInfoListSize uint32 // in elements Pad [4]byte GRInfoList P64 GRRouteInfo NV0080_CTRL_GR_ROUTE_INFO }
+marshal
type NV2081_ALLOC_PARAMETERS ¶
type NV2081_ALLOC_PARAMETERS struct {
Reserved uint32
}
NV2081_ALLOC_PARAMETERS is the alloc params type for NV2081_BINAPI, from src/common/sdk/nvidia/inc/class/cl2081.h.
+marshal
type NV503B_ALLOC_PARAMETERS ¶
type NV503B_ALLOC_PARAMETERS struct { HSubDevice Handle HPeerSubDevice Handle SubDevicePeerIDMask uint32 PeerSubDevicePeerIDMask uint32 MailboxBar1Addr uint64 MailboxTotalSize uint32 Flags uint32 SubDeviceEgmPeerIDMask uint32 PeerSubDeviceEgmPeerIDMask uint32 L2pBar1P2PDmaInfo NV503B_BAR1_P2P_DMA_INFO P2lBar1P2PDmaInfo NV503B_BAR1_P2P_DMA_INFO }
NV503B_ALLOC_PARAMETERS is the alloc params type for NV50_P2P, from src/common/sdk/nvidia/inc/class/cl503b.h.
+marshal
type NV503B_BAR1_P2P_DMA_INFO ¶
NV503B_BAR1_P2P_DMA_INFO from src/common/sdk/nvidia/inc/class/cl503b.h.
+marshal
type NV503C_ALLOC_PARAMETERS ¶
type NV503C_ALLOC_PARAMETERS struct {
Flags uint32
}
NV503C_ALLOC_PARAMETERS is the alloc params type for NV50_THIRD_PARTY_P2P, from src/common/sdk/nvidia/inc/class/cl503c.h.
+marshal
type NV503C_CTRL_REGISTER_VA_SPACE_PARAMS ¶
type NV503C_CTRL_REGISTER_VA_SPACE_PARAMS struct { HVASpace Handle Pad [4]byte VASpaceToken uint64 }
+marshal
type NV83DE_ALLOC_PARAMETERS ¶
type NV83DE_ALLOC_PARAMETERS struct { HDebuggerClient_Obsolete Handle HAppClient Handle HClass3DObject Handle }
NV83DE_ALLOC_PARAMETERS is the alloc params type for GT200_DEBUGGER, from src/common/sdk/nvidia/inc/class/cl83de.h.
+marshal
type NVB0B5_ALLOCATION_PARAMETERS ¶
NVB0B5_ALLOCATION_PARAMETERS is the alloc param type for TURING_DMA_COPY_A, AMPERE_DMA_COPY_A, and AMPERE_DMA_COPY_B from src/common/sdk/nvidia/inc/class/clb0b5sw.h.
+marshal
type NVOS00Parameters ¶
NVOS00Parameters is NVOS00_PARAMETERS, the parameter type for NV_ESC_RM_FREE.
+marshal
type NVOS02Parameters ¶
type NVOS02Parameters struct { HRoot Handle HObjectParent Handle HObjectNew Handle HClass ClassID Flags uint32 Pad0 [4]byte PMemory P64 // address of application mapping, without indirection Limit uint64 Status uint32 Pad1 [4]byte }
+marshal
type NVOS21Parameters ¶
type NVOS21Parameters struct { HRoot Handle HObjectParent Handle HObjectNew Handle HClass ClassID PAllocParms P64 ParamsSize uint32 Status uint32 }
NVOS21Parameters is NVOS21_PARAMETERS, one possible parameter type for NV_ESC_RM_ALLOC.
+marshal
func (*NVOS21Parameters) FromOS64 ¶
func (n *NVOS21Parameters) FromOS64(other NVOS64Parameters)
FromOS64 implements RmAllocParamType.FromOS64.
func (*NVOS21Parameters) GetHClass ¶
func (n *NVOS21Parameters) GetHClass() ClassID
GetHClass implements RmAllocParamType.GetHClass.
func (*NVOS21Parameters) GetPAllocParms ¶
func (n *NVOS21Parameters) GetPAllocParms() P64
GetPAllocParms implements RmAllocParamType.GetPAllocParms.
func (*NVOS21Parameters) GetPRightsRequested ¶
func (n *NVOS21Parameters) GetPRightsRequested() P64
GetPRightsRequested implements RmAllocParamType.GetPRightsRequested.
func (*NVOS21Parameters) GetPointer ¶
func (n *NVOS21Parameters) GetPointer() uintptr
GetPointer implements RmAllocParamType.GetPointer.
func (*NVOS21Parameters) SetPAllocParms ¶
func (n *NVOS21Parameters) SetPAllocParms(p P64)
SetPAllocParms implements RmAllocParamType.SetPAllocParms.
func (*NVOS21Parameters) SetPRightsRequested ¶
func (n *NVOS21Parameters) SetPRightsRequested(p P64)
SetPRightsRequested implements RmAllocParamType.SetPRightsRequested.
func (*NVOS21Parameters) ToOS64 ¶
func (n *NVOS21Parameters) ToOS64() NVOS64Parameters
ToOS64 implements RmAllocParamType.ToOS64.
type NVOS32AllocSize ¶
type NVOS32AllocSize struct { Owner uint32 HMemory Handle Type uint32 Flags uint32 Attr uint32 Format uint32 ComprCovg uint32 ZcullCovg uint32 PartitionStride uint32 Width uint32 Height uint32 Pad0 [4]byte Size uint64 Alignment uint64 Offset uint64 Limit uint64 Address P64 RangeBegin uint64 RangeEnd uint64 Attr2 uint32 CtagOffset uint32 }
NVOS32AllocSize is the type of NVOS32Parameters.Data for NVOS32_FUNCTION_ALLOC_SIZE.
type NVOS32Parameters ¶
type NVOS32Parameters struct { HRoot Handle HObjectParent Handle Function uint32 HVASpace Handle IVCHeapNumber int16 Pad [2]byte Status uint32 Total uint64 Free uint64 Data [144]byte // union }
NVOS32Parameters is NVOS32_PARAMETERS, the parameter type for NV_ESC_RM_VID_HEAP_CONTROL.
+marshal
type NVOS33Parameters ¶
type NVOS33Parameters struct { HClient Handle HDevice Handle HMemory Handle Pad0 [4]byte Offset uint64 Length uint64 PLinearAddress P64 // address of application mapping, without indirection Status uint32 Flags uint32 }
+marshal
type NVOS34Parameters ¶
type NVOS34Parameters struct { HClient Handle HDevice Handle HMemory Handle Pad0 [4]byte PLinearAddress P64 // address of application mapping, without indirection Status uint32 Flags uint32 }
NVOS34Parameters is NVOS34_PARAMETERS, the parameter type for NV_ESC_RM_UNMAP_MEMORY.
+marshal
type NVOS54Parameters ¶
type NVOS54Parameters struct { HClient Handle HObject Handle Cmd uint32 Flags uint32 Params P64 ParamsSize uint32 Status uint32 }
NVOS54Parameters is NVOS54_PARAMETERS, the parameter type for NV_ESC_RM_CONTROL.
+marshal
type NVOS55Parameters ¶
type NVOS55Parameters struct { HClient Handle HParent Handle HObject Handle HClientSrc Handle HObjectSrc Handle Flags uint32 Status uint32 }
NVOS55Parameters is NVOS55_PARAMETERS, the parameter type for NV_ESC_RM_DUP_OBJECT.
+marshal
type NVOS56Parameters ¶
type NVOS56Parameters struct { HClient Handle HDevice Handle HMemory Handle Pad0 [4]byte POldCPUAddress P64 PNewCPUAddress P64 Status uint32 Pad1 [4]byte }
NVOS56Parameters is NVOS56_PARAMETERS, the parameter type for NV_ESC_RM_UPDATE_DEVICE_MAPPING_INFO.
+marshal
type NVOS57Parameters ¶
NVOS57Parameters is NVOS57_PARAMETERS, the parameter type for NV_ESC_RM_SHARE.
+marshal
type NVOS64Parameters ¶
type NVOS64Parameters struct { HRoot Handle HObjectParent Handle HObjectNew Handle HClass ClassID PAllocParms P64 PRightsRequested P64 ParamsSize uint32 Flags uint32 Status uint32 // contains filtered or unexported fields }
NVOS64Parameters is NVOS64_PARAMETERS, one possible parameter type for NV_ESC_RM_ALLOC.
+marshal +stateify savable
func (*NVOS64Parameters) FromOS64 ¶
func (n *NVOS64Parameters) FromOS64(other NVOS64Parameters)
FromOS64 implements RmAllocParamType.FromOS64.
func (*NVOS64Parameters) GetHClass ¶
func (n *NVOS64Parameters) GetHClass() ClassID
GetHClass implements RmAllocParamType.GetHClass.
func (*NVOS64Parameters) GetPAllocParms ¶
func (n *NVOS64Parameters) GetPAllocParms() P64
GetPAllocParms implements RmAllocParamType.GetPAllocParms.
func (*NVOS64Parameters) GetPRightsRequested ¶
func (n *NVOS64Parameters) GetPRightsRequested() P64
GetPRightsRequested implements RmAllocParamType.GetPRightsRequested.
func (*NVOS64Parameters) GetPointer ¶
func (n *NVOS64Parameters) GetPointer() uintptr
GetPointer implements RmAllocParamType.GetPointer.
func (*NVOS64Parameters) SetPAllocParms ¶
func (n *NVOS64Parameters) SetPAllocParms(p P64)
SetPAllocParms implements RmAllocParamType.SetPAllocParms.
func (*NVOS64Parameters) SetPRightsRequested ¶
func (n *NVOS64Parameters) SetPRightsRequested(p P64)
SetPRightsRequested implements RmAllocParamType.SetPRightsRequested.
func (*NVOS64Parameters) ToOS64 ¶
func (n *NVOS64Parameters) ToOS64() NVOS64Parameters
ToOS64 implements RmAllocParamType.ToOS64.
type NV_CHANNEL_ALLOC_PARAMS ¶
type NV_CHANNEL_ALLOC_PARAMS struct { HObjectError Handle HObjectBuffer Handle GPFIFOOffset uint64 GPFIFOEntries uint32 Flags uint32 HVASpace Handle HUserdMemory [NV_MAX_SUBDEVICES]Handle UserdOffset [NV_MAX_SUBDEVICES]uint64 EngineType uint32 CID uint32 SubDeviceID uint32 HObjectECCError Handle InstanceMem NV_MEMORY_DESC_PARAMS UserdMem NV_MEMORY_DESC_PARAMS RamfcMem NV_MEMORY_DESC_PARAMS MthdbufMem NV_MEMORY_DESC_PARAMS HPhysChannelGroup Handle InternalFlags uint32 ErrorNotifierMem NV_MEMORY_DESC_PARAMS ECCErrorNotifierMem NV_MEMORY_DESC_PARAMS ProcessID uint32 SubProcessID uint32 EncryptIv [CC_CHAN_ALLOC_IV_SIZE_DWORD]uint32 DecryptIv [CC_CHAN_ALLOC_IV_SIZE_DWORD]uint32 HmacNonce [CC_CHAN_ALLOC_NONCE_SIZE_DWORD]uint32 }
NV_CHANNEL_ALLOC_PARAMS is the alloc params type for TURING_CHANNEL_GPFIFO_A and AMPERE_CHANNEL_GPFIFO_A, from src/common/sdk/nvidia/inc/alloc/alloc_channel.h.
+marshal
type NV_CHANNEL_GROUP_ALLOCATION_PARAMETERS ¶
type NV_CHANNEL_GROUP_ALLOCATION_PARAMETERS struct { HObjectError Handle HObjectECCError Handle HVASpace Handle EngineType uint32 BIsCallingContextVgpuPlugin uint8 Pad0 [3]byte }
NV_CHANNEL_GROUP_ALLOCATION_PARAMETERS is the alloc params type for KEPLER_CHANNEL_GROUP_A, from src/common/sdk/nvidia/inc/nvos.h.
+marshal
type NV_CONFIDENTIAL_COMPUTE_ALLOC_PARAMS ¶
type NV_CONFIDENTIAL_COMPUTE_ALLOC_PARAMS struct { Handle Handle // contains filtered or unexported fields }
NV_CONFIDENTIAL_COMPUTE_ALLOC_PARAMS is the alloc param type for NV_CONFIDENTIAL_COMPUTE, from src/common/sdk/nvidia/inc/class/clcb33.h.
+marshal
type NV_CTXSHARE_ALLOCATION_PARAMETERS ¶
NV_CTXSHARE_ALLOCATION_PARAMETERS is the alloc params type for FERMI_CONTEXT_SHARE_A, from src/common/sdk/nvidia/inc/nvos.h.
+marshal
type NV_GR_ALLOCATION_PARAMETERS ¶
NV_GR_ALLOCATION_PARAMETERS is the alloc param type for TURING_COMPUTE_A, AMPERE_COMPUTE_A, and ADA_COMPUTE_A, from src/common/sdk/nvidia/inc/nvos.h.
+marshal
type NV_HOPPER_USERMODE_A_PARAMS ¶
NV_HOPPER_USERMODE_A_PARAMS is the alloc param type for HOPPER_USERMODE_A, from src/common/sdk/nvidia/inc/nvos.h.
+marshal
type NV_MEMORY_ALLOCATION_PARAMS ¶
type NV_MEMORY_ALLOCATION_PARAMS struct { Owner uint32 Type uint32 Flags uint32 Width uint32 Height uint32 Pitch int32 Attr uint32 Attr2 uint32 Format uint32 ComprCovg uint32 ZcullCovg uint32 RangeLo uint64 RangeHi uint64 Size uint64 Alignment uint64 Offset uint64 Limit uint64 Address P64 CtagOffset uint32 HVASpace Handle InternalFlags uint32 Tag uint32 // contains filtered or unexported fields }
NV_MEMORY_ALLOCATION_PARAMS is the alloc params type for various NV*_MEMORY* allocation classes, from src/common/sdk/nvidia/inc/nvos.h.
+marshal
type NV_MEMORY_ALLOCATION_PARAMS_V545 ¶
type NV_MEMORY_ALLOCATION_PARAMS_V545 struct { NV_MEMORY_ALLOCATION_PARAMS NumaNode int32 // contains filtered or unexported fields }
NV_MEMORY_ALLOCATION_PARAMS_V545 is the updated version of NV_MEMORY_ALLOCATION_PARAMS since 545.23.06.
+marshal
type NV_MEMORY_DESC_PARAMS ¶
type NV_MEMORY_DESC_PARAMS struct { Base uint64 Size uint64 AddressSpace uint32 CacheAttrib uint32 }
NV_MEMORY_DESC_PARAMS is from src/common/sdk/nvidia/inc/alloc/alloc_channel.h.
+marshal
type NV_VASPACE_ALLOCATION_PARAMETERS ¶
type NV_VASPACE_ALLOCATION_PARAMETERS struct { Index uint32 Flags uint32 VASize uint64 VAStartInternal uint64 VALimitInternal uint64 BigPageSize uint32 Pad0 [4]byte VABase uint64 }
NV_VASPACE_ALLOCATION_PARAMETERS is the alloc params type for FERMI_VASPACE_A, from src/common/sdk/nvidia/inc/nvos.h.
+marshal
type RMAPIVersion ¶
RMAPIVersion is nv_rm_api_version_t, the parameter type for NV_ESC_CHECK_VERSION_STR.
+marshal
type RS_ACCESS_MASK ¶
type RS_ACCESS_MASK struct {
Limbs [SDK_RS_ACCESS_MAX_LIMBS]uint32 // RsAccessLimb
}
RS_ACCESS_MASK is RS_ACCESS_MASK, from src/common/sdk/nvidia/inc/rs_access.h.
+marshal +stateify savable
type RS_SHARE_POLICY ¶
type RS_SHARE_POLICY struct { Target uint32 AccessMask RS_ACCESS_MASK Type uint16 Action uint8 Pad [1]byte }
RS_SHARE_POLICY is RS_SHARE_POLICY, from src/common/sdk/nvidia/inc/rs_access.h.
+marshal
type RmAllocParamType ¶
type RmAllocParamType interface { GetHClass() ClassID GetPAllocParms() P64 GetPRightsRequested() P64 SetPAllocParms(p P64) SetPRightsRequested(p P64) FromOS64(other NVOS64Parameters) ToOS64() NVOS64Parameters GetPointer() uintptr marshal.Marshallable }
RmAllocParamType should be implemented by all possible parameter types for NV_ESC_RM_ALLOC.
func GetRmAllocParamObj ¶
func GetRmAllocParamObj(isNVOS64 bool) RmAllocParamType
GetRmAllocParamObj returns the appropriate implementation of RmAllocParamType based on passed parameters.
type UVM_ALLOC_SEMAPHORE_POOL_PARAMS ¶
type UVM_ALLOC_SEMAPHORE_POOL_PARAMS struct { Base uint64 Length uint64 PerGPUAttributes [UVM_MAX_GPUS]UvmGpuMappingAttributes GPUAttributesCount uint64 RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_ALLOC_SEMAPHORE_POOL_PARAMS_V550 ¶
type UVM_ALLOC_SEMAPHORE_POOL_PARAMS_V550 struct { Base uint64 Length uint64 PerGPUAttributes [UVM_MAX_GPUS_V2]UvmGpuMappingAttributes GPUAttributesCount uint64 RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_CREATE_EXTERNAL_RANGE_PARAMS ¶
type UVM_CREATE_EXTERNAL_RANGE_PARAMS struct { Base uint64 Length uint64 RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_CREATE_RANGE_GROUP_PARAMS ¶
+marshal
type UVM_DESTROY_RANGE_GROUP_PARAMS ¶
+marshal
type UVM_DISABLE_READ_DUPLICATION_PARAMS ¶
type UVM_DISABLE_READ_DUPLICATION_PARAMS struct { RequestedBase uint64 Length uint64 RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_FREE_PARAMS ¶
+marshal
type UVM_INITIALIZE_PARAMS ¶
+marshal
type UVM_MAP_DYNAMIC_PARALLELISM_REGION_PARAMS ¶
type UVM_MAP_DYNAMIC_PARALLELISM_REGION_PARAMS struct { Base uint64 Length uint64 GPUUUID NvUUID RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_MAP_EXTERNAL_ALLOCATION_PARAMS ¶
type UVM_MAP_EXTERNAL_ALLOCATION_PARAMS struct { Base uint64 Length uint64 Offset uint64 PerGPUAttributes [UVM_MAX_GPUS]UvmGpuMappingAttributes GPUAttributesCount uint64 RMCtrlFD int32 HClient Handle HMemory Handle RMStatus uint32 }
+marshal
func (*UVM_MAP_EXTERNAL_ALLOCATION_PARAMS) GetFrontendFD ¶
func (p *UVM_MAP_EXTERNAL_ALLOCATION_PARAMS) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*UVM_MAP_EXTERNAL_ALLOCATION_PARAMS) SetFrontendFD ¶
func (p *UVM_MAP_EXTERNAL_ALLOCATION_PARAMS) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type UVM_MAP_EXTERNAL_ALLOCATION_PARAMS_V550 ¶
type UVM_MAP_EXTERNAL_ALLOCATION_PARAMS_V550 struct { Base uint64 Length uint64 Offset uint64 PerGPUAttributes [UVM_MAX_GPUS_V2]UvmGpuMappingAttributes GPUAttributesCount uint64 RMCtrlFD int32 HClient Handle HMemory Handle RMStatus uint32 }
+marshal
func (*UVM_MAP_EXTERNAL_ALLOCATION_PARAMS_V550) GetFrontendFD ¶
func (p *UVM_MAP_EXTERNAL_ALLOCATION_PARAMS_V550) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*UVM_MAP_EXTERNAL_ALLOCATION_PARAMS_V550) SetFrontendFD ¶
func (p *UVM_MAP_EXTERNAL_ALLOCATION_PARAMS_V550) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type UVM_MIGRATE_RANGE_GROUP_PARAMS ¶
type UVM_MIGRATE_RANGE_GROUP_PARAMS struct { RangeGroupID uint64 DestinationUUID NvUUID RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_MM_INITIALIZE_PARAMS ¶
+marshal
type UVM_PAGEABLE_MEM_ACCESS_PARAMS ¶
+marshal
type UVM_REGISTER_CHANNEL_PARAMS ¶
type UVM_REGISTER_CHANNEL_PARAMS struct { GPUUUID NvUUID RMCtrlFD int32 HClient Handle HChannel Handle Pad [4]byte Base uint64 Length uint64 RMStatus uint32 Pad0 [4]byte }
+marshal
func (*UVM_REGISTER_CHANNEL_PARAMS) GetFrontendFD ¶
func (p *UVM_REGISTER_CHANNEL_PARAMS) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*UVM_REGISTER_CHANNEL_PARAMS) SetFrontendFD ¶
func (p *UVM_REGISTER_CHANNEL_PARAMS) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type UVM_REGISTER_GPU_PARAMS ¶
type UVM_REGISTER_GPU_PARAMS struct { GPUUUID NvUUID NumaEnabled uint8 Pad [3]byte NumaNodeID int32 RMCtrlFD int32 HClient Handle HSMCPartRef Handle RMStatus uint32 }
+marshal
func (*UVM_REGISTER_GPU_PARAMS) GetFrontendFD ¶
func (p *UVM_REGISTER_GPU_PARAMS) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*UVM_REGISTER_GPU_PARAMS) SetFrontendFD ¶
func (p *UVM_REGISTER_GPU_PARAMS) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type UVM_REGISTER_GPU_VASPACE_PARAMS ¶
type UVM_REGISTER_GPU_VASPACE_PARAMS struct { GPUUUID NvUUID RMCtrlFD int32 HClient Handle HVASpace Handle RMStatus uint32 }
+marshal
func (*UVM_REGISTER_GPU_VASPACE_PARAMS) GetFrontendFD ¶
func (p *UVM_REGISTER_GPU_VASPACE_PARAMS) GetFrontendFD() int32
GetFrontendFD implements HasFrontendFD.GetFrontendFD.
func (*UVM_REGISTER_GPU_VASPACE_PARAMS) SetFrontendFD ¶
func (p *UVM_REGISTER_GPU_VASPACE_PARAMS) SetFrontendFD(fd int32)
SetFrontendFD implements HasFrontendFD.SetFrontendFD.
type UVM_SET_PREFERRED_LOCATION_PARAMS ¶
type UVM_SET_PREFERRED_LOCATION_PARAMS struct { RequestedBase uint64 Length uint64 PreferredLocation NvUUID RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_SET_PREFERRED_LOCATION_PARAMS_V550 ¶
type UVM_SET_PREFERRED_LOCATION_PARAMS_V550 struct { RequestedBase uint64 Length uint64 PreferredLocation NvUUID PreferredCPUNumaNode int32 RMStatus uint32 }
+marshal
type UVM_SET_RANGE_GROUP_PARAMS ¶
type UVM_SET_RANGE_GROUP_PARAMS struct { RangeGroupID uint64 RequestedBase uint64 Length uint64 RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_TOOLS_READ_PROCESS_MEMORY_PARAMS ¶
type UVM_TOOLS_READ_PROCESS_MEMORY_PARAMS struct { Buffer uint64 Size uint64 TargetVA uint64 BytesRead uint64 RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_TOOLS_WRITE_PROCESS_MEMORY_PARAMS ¶
type UVM_TOOLS_WRITE_PROCESS_MEMORY_PARAMS struct { Buffer uint64 Size uint64 TargetVA uint64 BytesWritten uint64 RMStatus uint32 Pad0 [4]byte }
+marshal
type UVM_UNREGISTER_CHANNEL_PARAMS ¶
type UVM_UNREGISTER_CHANNEL_PARAMS struct { GPUUUID NvUUID HClient Handle HChannel Handle RMStatus uint32 }
+marshal
type UVM_UNREGISTER_GPU_PARAMS ¶
+marshal
type UVM_UNREGISTER_GPU_VASPACE_PARAMS ¶
+marshal
type UVM_VALIDATE_VA_RANGE_PARAMS ¶
+marshal