]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/cuda/ffi/ffi.factor
use radix literals
[factor.git] / extra / cuda / ffi / ffi.factor
index b7efeff9fb173151092117087ed78a49790e5550..4a7db0f4741271f29d68e682e4c373cc7ec7ee2f 100644 (file)
@@ -28,28 +28,19 @@ TYPEDEF: void* CUgraphicsResource
 
 SYMBOLS: CUdouble CUlonglong CUulonglong ;
 
-: >cuda-param-type ( c-type -- c-type' )
-    {
-        { CUdeviceptr [ void* ] }
-        { double      [ CUdouble ] }
-        { longlong    [ CUlonglong ] }
-        { ulonglong   [ CUulonglong ] }
-        [ ]
-    } case ;
-
 <<
 : always-8-byte-align ( c-type -- c-type )
     8 >>align 8 >>align-first ;
 
-longlong  c-type clone always-8-byte-align \ CUlonglong  typedef
-ulonglong c-type clone always-8-byte-align \ CUulonglong typedef
-double    c-type clone always-8-byte-align \ CUdouble    typedef
+longlong  lookup-c-type clone always-8-byte-align \ CUlonglong  typedef
+ulonglong lookup-c-type clone always-8-byte-align \ CUulonglong typedef
+double    lookup-c-type clone always-8-byte-align \ CUdouble    typedef
 >>
 
 STRUCT: CUuuid
     { bytes char[16] } ;
 
-C-ENUM: CUctx_flags
+ENUM: CUctx_flags
     { CU_CTX_SCHED_AUTO  0 }
     { CU_CTX_SCHED_SPIN  1 }
     { CU_CTX_SCHED_YIELD 2 }
@@ -57,32 +48,32 @@ C-ENUM: CUctx_flags
     { CU_CTX_BLOCKING_SYNC 4 }
     { CU_CTX_MAP_HOST      8 }
     { CU_CTX_LMEM_RESIZE_TO_MAX 16 }
-    { CU_CTX_FLAGS_MASK  HEX: 1f } ;
+    { CU_CTX_FLAGS_MASK  0x1f } ;
 
-C-ENUM: CUevent_flags
+ENUM: CUevent_flags
     { CU_EVENT_DEFAULT       0 }
     { CU_EVENT_BLOCKING_SYNC 1 } ;
 
-C-ENUM: CUarray_format
-    { CU_AD_FORMAT_UNSIGNED_INT8  HEX: 01 }
-    { CU_AD_FORMAT_UNSIGNED_INT16 HEX: 02 }
-    { CU_AD_FORMAT_UNSIGNED_INT32 HEX: 03 }
-    { CU_AD_FORMAT_SIGNED_INT8    HEX: 08 }
-    { CU_AD_FORMAT_SIGNED_INT16   HEX: 09 }
-    { CU_AD_FORMAT_SIGNED_INT32   HEX: 0a }
-    { CU_AD_FORMAT_HALF           HEX: 10 }
-    { CU_AD_FORMAT_FLOAT          HEX: 20 } ;
-
-C-ENUM: CUaddress_mode
+ENUM: CUarray_format
+    { CU_AD_FORMAT_UNSIGNED_INT8  0x01 }
+    { CU_AD_FORMAT_UNSIGNED_INT16 0x02 }
+    { CU_AD_FORMAT_UNSIGNED_INT32 0x03 }
+    { CU_AD_FORMAT_SIGNED_INT8    0x08 }
+    { CU_AD_FORMAT_SIGNED_INT16   0x09 }
+    { CU_AD_FORMAT_SIGNED_INT32   0x0a }
+    { CU_AD_FORMAT_HALF           0x10 }
+    { CU_AD_FORMAT_FLOAT          0x20 } ;
+
+ENUM: CUaddress_mode
     { CU_TR_ADDRESS_MODE_WRAP   0 }
     { CU_TR_ADDRESS_MODE_CLAMP  1 }
     { CU_TR_ADDRESS_MODE_MIRROR 2 } ;
 
-C-ENUM: CUfilter_mode
+ENUM: CUfilter_mode
     { CU_TR_FILTER_MODE_POINT  0 }
     { CU_TR_FILTER_MODE_LINEAR 1 } ;
 
-C-ENUM: CUdevice_attribute
+ENUM: CUdevice_attribute
     { CU_DEVICE_ATTRIBUTE_MAX_THREADS_PER_BLOCK 1 }
     { CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_X 2 }
     { CU_DEVICE_ATTRIBUTE_MAX_BLOCK_DIM_Y 3 }
@@ -131,7 +122,7 @@ STRUCT: CUdevprop
     { clockRate int }
     { textureAlign int } ;
 
-C-ENUM: CUfunction_attribute
+ENUM: CUfunction_attribute
     { CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK 0 }
     { CU_FUNC_ATTRIBUTE_SHARED_SIZE_BYTES 1     }
     { CU_FUNC_ATTRIBUTE_CONST_SIZE_BYTES 2      }
@@ -141,22 +132,22 @@ C-ENUM: CUfunction_attribute
     { CU_FUNC_ATTRIBUTE_BINARY_VERSION 6        }
     CU_FUNC_ATTRIBUTE_MAX ;
 
-C-ENUM: CUfunc_cache
-    { CU_FUNC_CACHE_PREFER_NONE   HEX: 00 }
-    { CU_FUNC_CACHE_PREFER_SHARED HEX: 01 }
-    { CU_FUNC_CACHE_PREFER_L1     HEX: 02 } ;
+ENUM: CUfunc_cache
+    { CU_FUNC_CACHE_PREFER_NONE   0x00 }
+    { CU_FUNC_CACHE_PREFER_SHARED 0x01 }
+    { CU_FUNC_CACHE_PREFER_L1     0x02 } ;
 
-C-ENUM: CUmemorytype
-    { CU_MEMORYTYPE_HOST   HEX: 01 }
-    { CU_MEMORYTYPE_DEVICE HEX: 02 }
-    { CU_MEMORYTYPE_ARRAY  HEX: 03 } ;
+ENUM: CUmemorytype
+    { CU_MEMORYTYPE_HOST   0x01 }
+    { CU_MEMORYTYPE_DEVICE 0x02 }
+    { CU_MEMORYTYPE_ARRAY  0x03 } ;
 
-C-ENUM: CUcomputemode
+ENUM: CUcomputemode
     { CU_COMPUTEMODE_DEFAULT    0 }
     { CU_COMPUTEMODE_EXCLUSIVE  1 }
     { CU_COMPUTEMODE_PROHIBITED 2 } ;
 
-C-ENUM: CUjit_option
+ENUM: CUjit_option
     { CU_JIT_MAX_REGISTERS 0 }
     CU_JIT_THREADS_PER_BLOCK
     CU_JIT_WALL_TIME
@@ -169,34 +160,34 @@ C-ENUM: CUjit_option
     CU_JIT_TARGET
     CU_JIT_FALLBACK_STRATEGY ;
 
-C-ENUM: CUjit_target
+ENUM: CUjit_target
     { CU_TARGET_COMPUTE_10 0 }
     CU_TARGET_COMPUTE_11
     CU_TARGET_COMPUTE_12
     CU_TARGET_COMPUTE_13
     CU_TARGET_COMPUTE_20 ;
 
-C-ENUM: CUjit_fallback
+ENUM: CUjit_fallback
     { CU_PREFER_PTX 0 }
     CU_PREFER_BINARY ;
 
-C-ENUM: CUgraphicsRegisterFlags
+ENUM: CUgraphicsRegisterFlags
     { CU_GRAPHICS_REGISTER_FLAGS_NONE 0 } ;
 
-C-ENUM: CUgraphicsMapResourceFlags
-    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE          HEX: 00 }
-    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY     HEX: 01 }
-    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD HEX: 02 } ;
+ENUM: CUgraphicsMapResourceFlags
+    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE          0x00 }
+    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY     0x01 }
+    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD 0x02 } ;
 
-C-ENUM: CUarray_cubemap_face
-    { CU_CUBEMAP_FACE_POSITIVE_X  HEX: 00 }
-    { CU_CUBEMAP_FACE_NEGATIVE_X  HEX: 01 }
-    { CU_CUBEMAP_FACE_POSITIVE_Y  HEX: 02 }
-    { CU_CUBEMAP_FACE_NEGATIVE_Y  HEX: 03 }
-    { CU_CUBEMAP_FACE_POSITIVE_Z  HEX: 04 }
-    { CU_CUBEMAP_FACE_NEGATIVE_Z  HEX: 05 } ;
+ENUM: CUarray_cubemap_face
+    { CU_CUBEMAP_FACE_POSITIVE_X  0x00 }
+    { CU_CUBEMAP_FACE_NEGATIVE_X  0x01 }
+    { CU_CUBEMAP_FACE_POSITIVE_Y  0x02 }
+    { CU_CUBEMAP_FACE_NEGATIVE_Y  0x03 }
+    { CU_CUBEMAP_FACE_POSITIVE_Z  0x04 }
+    { CU_CUBEMAP_FACE_NEGATIVE_Z  0x05 } ;
 
-C-ENUM: CUresult
+ENUM: CUresult
     { CUDA_SUCCESS                    0 }
     { CUDA_ERROR_INVALID_VALUE        1 }
     { CUDA_ERROR_OUT_OF_MEMORY        2 }
@@ -239,9 +230,9 @@ C-ENUM: CUresult
 
     { CUDA_ERROR_UNKNOWN              999 } ;
 
-CONSTANT: CU_MEMHOSTALLOC_PORTABLE        HEX: 01
-CONSTANT: CU_MEMHOSTALLOC_DEVICEMAP       HEX: 02
-CONSTANT: CU_MEMHOSTALLOC_WRITECOMBINED   HEX: 04
+CONSTANT: CU_MEMHOSTALLOC_PORTABLE        0x01
+CONSTANT: CU_MEMHOSTALLOC_DEVICEMAP       0x02
+CONSTANT: CU_MEMHOSTALLOC_WRITECOMBINED   0x04
 
 STRUCT: CUDA_MEMCPY2D
     { srcXInBytes uint }
@@ -302,10 +293,10 @@ STRUCT: CUDA_ARRAY3D_DESCRIPTOR
     { NumChannels uint }
     { Flags uint } ;
 
-CONSTANT: CUDA_ARRAY3D_2DARRAY    HEX: 01
-CONSTANT: CU_TRSA_OVERRIDE_FORMAT HEX: 01
-CONSTANT: CU_TRSF_READ_AS_INTEGER         HEX: 01
-CONSTANT: CU_TRSF_NORMALIZED_COORDINATES  HEX: 02
+CONSTANT: CUDA_ARRAY3D_2DARRAY    0x01
+CONSTANT: CU_TRSA_OVERRIDE_FORMAT 0x01
+CONSTANT: CU_TRSF_READ_AS_INTEGER         0x01
+CONSTANT: CU_TRSF_NORMALIZED_COORDINATES  0x02
 CONSTANT: CU_PARAM_TR_DEFAULT -1
 
 FUNCTION: CUresult cuInit ( uint Flags ) ;
@@ -460,4 +451,3 @@ FUNCTION: CUresult cuGraphicsMapResources ( uint count, CUgraphicsResource* reso
 FUNCTION: CUresult cuGraphicsUnmapResources ( uint count, CUgraphicsResource* resources, CUstream hStream ) ;
 
 FUNCTION: CUresult cuGetExportTable ( void** ppExportTable, CUuuid* pExportTableId ) ;
-