         numRegs                  = nr
       }
 
+#if CUDART_VERSION >= 3000
+-- |
+-- Cache configuration preference
+--
+{# enum cudaFuncCache as CacheConfig
+    { }
+    with prefix="cudaFuncCachePrefer" deriving (Eq, Show) #}
+#endif
+
 -- |
 -- Kernel function parameters. Doubles will be converted to an internal float
 -- representation on devices that do not support doubles natively.

    peek'     = peek . castPtr


-- |
-- Invoke the named kernel on the device, which must have been declared
-- @__global__@. This must be preceded by a call to 'setConfig' and (if

--
--------------------------------------------------------------------------------

#include "cbits/stubs.h"
#include <cuda_runtime_api.h>
{# context lib="cudart" #}

module Foreign.CUDA.Runtime.Exec
  (
    FunAttributes(..), FunParam(..),
#if CUDART_VERSION >= 3000
    CacheConfig(..),
#endif
    attributes, setConfig, setParams,
#if CUDART_VERSION >= 3000
    setCacheConfig,
#endif
    launch
  )
  where

-- Friends
import Foreign.CUDA.Runtime.Stream
