 (defn info-reference-count [device]
   (info-int* CL/clGetDeviceInfo device CL/CL_DEVICE_REFERENCE_COUNT))
 
-;;TODO
 (defn info-single-fp-config [device]
-  (info-long* CL/clGetDeviceInfo device CL/CL_DEVICE_SINGLE_FP_CONFIG))
+  (info-mask* CL/clGetDeviceInfo device
+              CL/CL_DEVICE_SINGLE_FP_CONFIG
+              fp-config-table))
 
 (defn info-spir-versions [device]
   nil)

(defn info-local-mem-size [device]
  (info-long* CL/clGetDeviceInfo device CL/CL_DEVICE_LOCAL_MEM_SIZE))

;;TODO
(defn info-local-mem-type [device]
  (info-long* CL/clGetDeviceInfo device CL/CL_DEVICE_LOCAL_MEM_TYPE))

(defn info-max-clock-frequency [device]
  (info-int* CL/clGetDeviceInfo device CL/CL_DEVICE_MAX_CLOCK_FREQUENCY))

;; ============= Context ===========================================
(defn context-properties [props]
  (reduce (fn [^cl_context_properties cp [p v]]
            (doto cp (.addProperty (context-prop-table p) v)))
          (cl_context_properties.)
          props))

