1- # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
1+ # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22#
33# SPDX-License-Identifier: LicenseRef-NVIDIA-SOFTWARE-LICENSE
44#
@@ -8,7 +8,7 @@ cimport cython # NOQA
88from libc cimport errno
99from ._internal.utils cimport (get_buffer_pointer, get_nested_resource_ptr,
1010 nested_resource)
11- from enum import IntEnum as _IntEnum
11+ from cuda.bindings.utils._fast_enum import FastEnum as _FastEnum
1212
1313import cython
1414
@@ -2288,6 +2288,8 @@ cdef class StatsLevel2:
22882288 def read_size_kb_hist (self , val ):
22892289 if self ._readonly:
22902290 raise ValueError (" This StatsLevel2 instance is read-only" )
2291+ if len (val) != 32 :
2292+ raise ValueError (f" Expected length { 32 } for field read_size_kb_hist, got {len(val)}" )
22912293 cdef view.array arr = view.array(shape = (32 ,), itemsize = sizeof(uint64_t), format = " Q" , mode = " c" )
22922294 arr[:] = _numpy.asarray(val, dtype = _numpy.uint64)
22932295 memcpy(< void * > (& (self ._ptr[0 ].read_size_kb_hist)), < void * > (arr.data), sizeof(uint64_t) * len (val))
@@ -2303,6 +2305,8 @@ cdef class StatsLevel2:
23032305 def write_size_kb_hist (self , val ):
23042306 if self ._readonly:
23052307 raise ValueError (" This StatsLevel2 instance is read-only" )
2308+ if len (val) != 32 :
2309+ raise ValueError (f" Expected length { 32 } for field write_size_kb_hist, got {len(val)}" )
23062310 cdef view.array arr = view.array(shape = (32 ,), itemsize = sizeof(uint64_t), format = " Q" , mode = " c" )
23072311 arr[:] = _numpy.asarray(val, dtype = _numpy.uint64)
23082312 memcpy(< void * > (& (self ._ptr[0 ].write_size_kb_hist)), < void * > (arr.data), sizeof(uint64_t) * len (val))
@@ -2441,7 +2445,7 @@ cdef class StatsLevel3:
24412445 raise ValueError (" This StatsLevel3 instance is read-only" )
24422446 cdef PerGpuStats val_ = val
24432447 if len (val) != 16 :
2444- raise ValueError (f" Expected length 16 for field per_gpu_stats, got {len(val)}" )
2448+ raise ValueError (f" Expected length { 16 } for field per_gpu_stats, got {len(val)}" )
24452449 memcpy(< void * > & (self ._ptr[0 ].per_gpu_stats), < void * > (val_._get_ptr()), sizeof(CUfilePerGpuStats_t) * 16 )
24462450
24472451 @property
@@ -2496,7 +2500,7 @@ cdef class StatsLevel3:
24962500# Enum
24972501# ##############################################################################
24982502
2499- class OpError (_IntEnum ):
2503+ class OpError (_FastEnum ):
25002504 """ See `CUfileOpError`."""
25012505 SUCCESS = CU_FILE_SUCCESS
25022506 DRIVER_NOT_INITIALIZED = CU_FILE_DRIVER_NOT_INITIALIZED
@@ -2548,48 +2552,48 @@ class OpError(_IntEnum):
25482552 BATCH_NOCOMPAT_ERROR = CU_FILE_BATCH_NOCOMPAT_ERROR
25492553 IO_MAX_ERROR = CU_FILE_IO_MAX_ERROR
25502554
2551- class DriverStatusFlags (_IntEnum ):
2555+ class DriverStatusFlags (_FastEnum ):
25522556 """ See `CUfileDriverStatusFlags_t`."""
2553- LUSTRE_SUPPORTED = CU_FILE_LUSTRE_SUPPORTED
2554- WEKAFS_SUPPORTED = CU_FILE_WEKAFS_SUPPORTED
2555- NFS_SUPPORTED = CU_FILE_NFS_SUPPORTED
2557+ LUSTRE_SUPPORTED = ( CU_FILE_LUSTRE_SUPPORTED, ' Support for DDN LUSTRE ' )
2558+ WEKAFS_SUPPORTED = ( CU_FILE_WEKAFS_SUPPORTED, ' Support for WEKAFS ' )
2559+ NFS_SUPPORTED = ( CU_FILE_NFS_SUPPORTED, ' Support for NFS ' )
25562560 GPFS_SUPPORTED = CU_FILE_GPFS_SUPPORTED
2557- NVME_SUPPORTED = CU_FILE_NVME_SUPPORTED
2558- NVMEOF_SUPPORTED = CU_FILE_NVMEOF_SUPPORTED
2559- SCSI_SUPPORTED = CU_FILE_SCSI_SUPPORTED
2560- SCALEFLUX_CSD_SUPPORTED = CU_FILE_SCALEFLUX_CSD_SUPPORTED
2561- NVMESH_SUPPORTED = CU_FILE_NVMESH_SUPPORTED
2562- BEEGFS_SUPPORTED = CU_FILE_BEEGFS_SUPPORTED
2563- NVME_P2P_SUPPORTED = CU_FILE_NVME_P2P_SUPPORTED
2564- SCATEFS_SUPPORTED = CU_FILE_SCATEFS_SUPPORTED
2565- VIRTIOFS_SUPPORTED = CU_FILE_VIRTIOFS_SUPPORTED
2566- MAX_TARGET_TYPES = CU_FILE_MAX_TARGET_TYPES
2567-
2568- class DriverControlFlags (_IntEnum ):
2561+ NVME_SUPPORTED = ( CU_FILE_NVME_SUPPORTED, ' < Support for GPFS Support for NVMe ' )
2562+ NVMEOF_SUPPORTED = ( CU_FILE_NVMEOF_SUPPORTED, ' Support for NVMeOF ' )
2563+ SCSI_SUPPORTED = ( CU_FILE_SCSI_SUPPORTED, ' Support for SCSI ' )
2564+ SCALEFLUX_CSD_SUPPORTED = ( CU_FILE_SCALEFLUX_CSD_SUPPORTED, ' Support for Scaleflux CSD ' )
2565+ NVMESH_SUPPORTED = ( CU_FILE_NVMESH_SUPPORTED, ' Support for NVMesh Block Dev ' )
2566+ BEEGFS_SUPPORTED = ( CU_FILE_BEEGFS_SUPPORTED, ' Support for BeeGFS ' )
2567+ NVME_P2P_SUPPORTED = ( CU_FILE_NVME_P2P_SUPPORTED, ' Do not use this macro. This is deprecated now ' )
2568+ SCATEFS_SUPPORTED = ( CU_FILE_SCATEFS_SUPPORTED, ' Support for ScateFS ' )
2569+ VIRTIOFS_SUPPORTED = ( CU_FILE_VIRTIOFS_SUPPORTED, ' Support for VirtioFS ' )
2570+ MAX_TARGET_TYPES = ( CU_FILE_MAX_TARGET_TYPES, ' Maximum FS supported ' )
2571+
2572+ class DriverControlFlags (_FastEnum ):
25692573 """ See `CUfileDriverControlFlags_t`."""
2570- USE_POLL_MODE = CU_FILE_USE_POLL_MODE
2571- ALLOW_COMPAT_MODE = CU_FILE_ALLOW_COMPAT_MODE
2574+ USE_POLL_MODE = ( CU_FILE_USE_POLL_MODE, ' use POLL mode. properties.use_poll_mode ' )
2575+ ALLOW_COMPAT_MODE = ( CU_FILE_ALLOW_COMPAT_MODE, ' allow COMPATIBILITY mode. properties.allow_compat_mode ' )
25722576
2573- class FeatureFlags (_IntEnum ):
2577+ class FeatureFlags (_FastEnum ):
25742578 """ See `CUfileFeatureFlags_t`."""
2575- DYN_ROUTING_SUPPORTED = CU_FILE_DYN_ROUTING_SUPPORTED
2576- BATCH_IO_SUPPORTED = CU_FILE_BATCH_IO_SUPPORTED
2577- STREAMS_SUPPORTED = CU_FILE_STREAMS_SUPPORTED
2578- PARALLEL_IO_SUPPORTED = CU_FILE_PARALLEL_IO_SUPPORTED
2579- P2P_SUPPORTED = CU_FILE_P2P_SUPPORTED
2579+ DYN_ROUTING_SUPPORTED = ( CU_FILE_DYN_ROUTING_SUPPORTED, ' Support for Dynamic routing to handle devices across the PCIe bridges ' )
2580+ BATCH_IO_SUPPORTED = ( CU_FILE_BATCH_IO_SUPPORTED, ' Supported ' )
2581+ STREAMS_SUPPORTED = ( CU_FILE_STREAMS_SUPPORTED, ' Supported ' )
2582+ PARALLEL_IO_SUPPORTED = ( CU_FILE_PARALLEL_IO_SUPPORTED, ' Supported ' )
2583+ P2P_SUPPORTED = ( CU_FILE_P2P_SUPPORTED, ' Support for PCI P2PDMA ' )
25802584
2581- class FileHandleType (_IntEnum ):
2585+ class FileHandleType (_FastEnum ):
25822586 """ See `CUfileFileHandleType`."""
2583- OPAQUE_FD = CU_FILE_HANDLE_TYPE_OPAQUE_FD
2584- OPAQUE_WIN32 = CU_FILE_HANDLE_TYPE_OPAQUE_WIN32
2587+ OPAQUE_FD = ( CU_FILE_HANDLE_TYPE_OPAQUE_FD, ' Linux based fd ' )
2588+ OPAQUE_WIN32 = ( CU_FILE_HANDLE_TYPE_OPAQUE_WIN32, ' Windows based handle (unsupported) ' )
25852589 USERSPACE_FS = CU_FILE_HANDLE_TYPE_USERSPACE_FS
25862590
2587- class Opcode (_IntEnum ):
2591+ class Opcode (_FastEnum ):
25882592 """ See `CUfileOpcode_t`."""
25892593 READ = CUFILE_READ
25902594 WRITE = CUFILE_WRITE
25912595
2592- class Status (_IntEnum ):
2596+ class Status (_FastEnum ):
25932597 """ See `CUfileStatus_t`."""
25942598 WAITING = CUFILE_WAITING
25952599 PENDING = CUFILE_PENDING
@@ -2599,11 +2603,11 @@ class Status(_IntEnum):
25992603 TIMEOUT = CUFILE_TIMEOUT
26002604 FAILED = CUFILE_FAILED
26012605
2602- class BatchMode (_IntEnum ):
2606+ class BatchMode (_FastEnum ):
26032607 """ See `CUfileBatchMode_t`."""
26042608 BATCH = CUFILE_BATCH
26052609
2606- class SizeTConfigParameter (_IntEnum ):
2610+ class SizeTConfigParameter (_FastEnum ):
26072611 """ See `CUFileSizeTConfigParameter_t`."""
26082612 PROFILE_STATS = CUFILE_PARAM_PROFILE_STATS
26092613 EXECUTION_MAX_IO_QUEUE_DEPTH = CUFILE_PARAM_EXECUTION_MAX_IO_QUEUE_DEPTH
@@ -2618,7 +2622,7 @@ class SizeTConfigParameter(_IntEnum):
26182622 POLLTHRESHOLD_SIZE_KB = CUFILE_PARAM_POLLTHRESHOLD_SIZE_KB
26192623 PROPERTIES_BATCH_IO_TIMEOUT_MS = CUFILE_PARAM_PROPERTIES_BATCH_IO_TIMEOUT_MS
26202624
2621- class BoolConfigParameter (_IntEnum ):
2625+ class BoolConfigParameter (_FastEnum ):
26222626 """ See `CUFileBoolConfigParameter_t`."""
26232627 PROPERTIES_USE_POLL_MODE = CUFILE_PARAM_PROPERTIES_USE_POLL_MODE
26242628 PROPERTIES_ALLOW_COMPAT_MODE = CUFILE_PARAM_PROPERTIES_ALLOW_COMPAT_MODE
@@ -2633,24 +2637,24 @@ class BoolConfigParameter(_IntEnum):
26332637 SKIP_TOPOLOGY_DETECTION = CUFILE_PARAM_SKIP_TOPOLOGY_DETECTION
26342638 STREAM_MEMOPS_BYPASS = CUFILE_PARAM_STREAM_MEMOPS_BYPASS
26352639
2636- class StringConfigParameter (_IntEnum ):
2640+ class StringConfigParameter (_FastEnum ):
26372641 """ See `CUFileStringConfigParameter_t`."""
26382642 LOGGING_LEVEL = CUFILE_PARAM_LOGGING_LEVEL
26392643 ENV_LOGFILE_PATH = CUFILE_PARAM_ENV_LOGFILE_PATH
26402644 LOG_DIR = CUFILE_PARAM_LOG_DIR
26412645
2642- class ArrayConfigParameter (_IntEnum ):
2646+ class ArrayConfigParameter (_FastEnum ):
26432647 """ See `CUFileArrayConfigParameter_t`."""
26442648 POSIX_POOL_SLAB_SIZE_KB = CUFILE_PARAM_POSIX_POOL_SLAB_SIZE_KB
26452649 POSIX_POOL_SLAB_COUNT = CUFILE_PARAM_POSIX_POOL_SLAB_COUNT
26462650
2647- class P2PFlags (_IntEnum ):
2651+ class P2PFlags (_FastEnum ):
26482652 """ See `CUfileP2PFlags_t`."""
2649- P2PDMA = CUFILE_P2PDMA
2650- NVFS = CUFILE_NVFS
2651- DMABUF = CUFILE_DMABUF
2652- C2C = CUFILE_C2C
2653- NVIDIA_PEERMEM = CUFILE_NVIDIA_PEERMEM
2653+ P2PDMA = ( CUFILE_P2PDMA, ' Support for PCI P2PDMA ' )
2654+ NVFS = ( CUFILE_NVFS, ' Support for nvidia-fs ' )
2655+ DMABUF = ( CUFILE_DMABUF, ' Support for DMA Buffer ' )
2656+ C2C = ( CUFILE_C2C, ' Support for Chip-to-Chip (Grace-based systems) ' )
2657+ NVIDIA_PEERMEM = ( CUFILE_NVIDIA_PEERMEM, ' Only for IBM Spectrum Scale and WekaFS ' )
26542658
26552659
26562660# ##############################################################################
0 commit comments