]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/cuda/ffi/ffi.factor
use radix literals
[factor.git] / extra / cuda / ffi / ffi.factor
index bcbb1ff60a48edf82d97f358fcabe8dd9860b293..4a7db0f4741271f29d68e682e4c373cc7ec7ee2f 100644 (file)
@@ -28,22 +28,13 @@ 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
@@ -57,21 +48,21 @@ 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 } ;
 
 ENUM: CUevent_flags
     { CU_EVENT_DEFAULT       0 }
     { CU_EVENT_BLOCKING_SYNC 1 } ;
 
 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 } ;
+    { 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 }
@@ -142,14 +133,14 @@ ENUM: CUfunction_attribute
     CU_FUNC_ATTRIBUTE_MAX ;
 
 ENUM: CUfunc_cache
-    { CU_FUNC_CACHE_PREFER_NONE   HEX: 00 }
-    { CU_FUNC_CACHE_PREFER_SHARED HEX: 01 }
-    { CU_FUNC_CACHE_PREFER_L1     HEX: 02 } ;
+    { CU_FUNC_CACHE_PREFER_NONE   0x00 }
+    { CU_FUNC_CACHE_PREFER_SHARED 0x01 }
+    { CU_FUNC_CACHE_PREFER_L1     0x02 } ;
 
 ENUM: CUmemorytype
-    { CU_MEMORYTYPE_HOST   HEX: 01 }
-    { CU_MEMORYTYPE_DEVICE HEX: 02 }
-    { CU_MEMORYTYPE_ARRAY  HEX: 03 } ;
+    { CU_MEMORYTYPE_HOST   0x01 }
+    { CU_MEMORYTYPE_DEVICE 0x02 }
+    { CU_MEMORYTYPE_ARRAY  0x03 } ;
 
 ENUM: CUcomputemode
     { CU_COMPUTEMODE_DEFAULT    0 }
@@ -184,17 +175,17 @@ ENUM: CUgraphicsRegisterFlags
     { CU_GRAPHICS_REGISTER_FLAGS_NONE 0 } ;
 
 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 } ;
+    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE          0x00 }
+    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_READ_ONLY     0x01 }
+    { CU_GRAPHICS_MAP_RESOURCE_FLAGS_WRITE_DISCARD 0x02 } ;
 
 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 } ;
+    { 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 } ;
 
 ENUM: CUresult
     { CUDA_SUCCESS                    0 }
@@ -239,9 +230,9 @@ 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 ) ;