use std::os::raw::{c_char, c_int, c_void};
pub const CUFILE_VERSION: u32 = 1000;
pub const CU_FILE_SUCCESS: i32 = 0;
pub const CU_FILE_DRIVER_NOT_INITIALIZED: i32 = 5001;
pub const CU_FILE_DRIVER_INVALID_PROPS: i32 = 5002;
pub const CU_FILE_DRIVER_UNSUPPORTED_LIMIT: i32 = 5003;
pub const CU_FILE_DRIVER_VERSION_MISMATCH: i32 = 5004;
pub const CU_FILE_DRIVER_VERSION_READ_ERROR: i32 = 5005;
pub const CU_FILE_DRIVER_CLOSING: i32 = 5006;
pub const CU_FILE_PLATFORM_NOT_SUPPORTED: i32 = 500;
pub const CU_FILE_IO_NOT_SUPPORTED: i32 = 5008;
pub const CU_FILE_DEVICE_NOT_SUPPORTED: i32 = 5009;
pub const CU_FILE_NVFS_DRIVER_ERROR: i32 = 5010;
pub const CU_FILE_CUDA_DRIVER_ERROR: i32 = 5011;
pub const CU_FILE_CUDA_POINTER_INVALID: i32 = 5012;
pub const CU_FILE_CUDA_MEMORY_TYPE_INVALID: i32 = 5013;
pub const CU_FILE_CUDA_POINTER_RANGE_ERROR: i32 = 5014;
pub const CU_FILE_CUDA_CONTEXT_MISMATCH: i32 = 5015;
pub const CU_FILE_INVALID_MAPPING_SIZE: i32 = 5016;
pub const CU_FILE_INVALID_MAPPING_RANGE: i32 = 5017;
pub const CU_FILE_INVALID_FILE_TYPE: i32 = 5018;
pub const CU_FILE_INVALID_FILE_OPEN_FLAG: i32 = 5019;
pub const CU_FILE_DIO_NOT_SET: i32 = 5020;
pub const CU_FILE_INVALID_VALUE: i32 = 5022;
pub const CU_FILE_MEMORY_ALREADY_REGISTERED: i32 = 5023;
pub const CU_FILE_MEMORY_NOT_REGISTERED: i32 = 5024;
pub const CU_FILE_PERMISSION_DENIED: i32 = 5025;
pub const CU_FILE_DRIVER_ALREADY_OPEN: i32 = 5026;
pub const CU_FILE_HANDLE_NOT_REGISTERED: i32 = 5027;
pub const CU_FILE_HANDLE_ALREADY_REGISTERED: i32 = 5028;
pub const CU_FILE_DEVICE_NOT_FOUND: i32 = 5029;
pub const CU_FILE_INTERNAL_ERROR: i32 = 5030;
pub const CU_FILE_GETNEWFD_FAILED: i32 = 5031;
pub const CU_FILE_NVFS_SETUP_ERROR: i32 = 5033;
pub const CU_FILE_IO_DISABLED: i32 = 5034;
pub const CU_FILE_BATCH_SUBMIT_FAILED: i32 = 5035;
pub const CU_FILE_GPU_MEMORY_PINNING_FAILED: i32 = 5036;
pub const CU_FILE_BATCH_FULL: i32 = 5037;
pub const CU_FILE_ASYNC_NOT_SUPPORTED: i32 = 5038;
pub type CUfileHandle_t = *mut c_void;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum CUfileFileHandleType {
CU_FILE_HANDLE_TYPE_OPAQUE_FD = 1,
CU_FILE_HANDLE_TYPE_OPAQUE_WIN32 = 2,
CU_FILE_HANDLE_TYPE_USERSPACE_FS = 3,
}
#[repr(C)]
pub union CUfileDescrHandle {
pub fd: c_int, pub handle: *mut c_void, }
#[repr(C)]
pub struct CUfileDescr_t {
pub type_: CUfileFileHandleType,
pub handle: CUfileDescrHandle,
pub fs_ops: *const c_void,
}
pub type CUfileError_t = c_int;
extern "C" {
pub fn cuFileDriverOpen() -> CUfileError_t;
pub fn cuFileDriverClose() -> CUfileError_t;
pub fn cuFileHandleRegister(
fh: *mut CUfileHandle_t,
descr: *mut CUfileDescr_t,
) -> CUfileError_t;
pub fn cuFileHandleDeregister(fh: CUfileHandle_t) -> CUfileError_t;
pub fn cuFileBufRegister(devPtr_base: *const c_void, size: usize, flags: c_int) -> CUfileError_t;
pub fn cuFileBufDeregister(devPtr_base: *const c_void) -> CUfileError_t;
pub fn cuFileRead(
fh: CUfileHandle_t,
bufPtr_base: *mut c_void,
size: usize,
file_offset: i64,
bufPtr_offset: i64,
) -> isize;
pub fn cuFileWrite(
fh: CUfileHandle_t,
bufPtr_base: *const c_void,
size: usize,
file_offset: i64,
bufPtr_offset: i64,
) -> isize;
pub fn cuFileGetErrorString(error: CUfileError_t) -> *const c_char;
}