The CUDA driver API call
CUresult CUDAAPI cuMemGetAccess(
unsigned long long * flags,
const CUmemLocation * location,
CUdeviceptr ptr);
takes a pointer to a builtin C(++) language type rather than any type definition. Yet - it's pretty obvious what this type definition should be: It is CUmemAccess_flags
:
typedef enum CUmemAccess_flags_enum {
CU_MEM_ACCESS_FLAGS_PROT_NONE = 0x0, /**< Default, make the address range not accessible */
CU_MEM_ACCESS_FLAGS_PROT_READ = 0x1, /**< Make the address range read accessible */
CU_MEM_ACCESS_FLAGS_PROT_READWRITE = 0x3, /**< Make the address range read-write accessible */
CU_MEM_ACCESS_FLAGS_PROT_MAX = 0x7FFFFFFF
} CUmemAccess_flags;
right? So, why doesn't it take that enum? Are the semantics different somehow?