From 6fe823a614279cceb2d48507bd8e93b0efd87f94 Mon Sep 17 00:00:00 2001 From: Thomas Albers Date: Sat, 4 Mar 2023 22:47:28 +0100 Subject: Initial commit --- src/platform.lisp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/platform.lisp (limited to 'src/platform.lisp') diff --git a/src/platform.lisp b/src/platform.lisp new file mode 100644 index 0000000..1b976f4 --- /dev/null +++ b/src/platform.lisp @@ -0,0 +1,24 @@ +(in-package #:ocl) + +(defun get-platform-ids () + (let ((num-platforms nil)) + (cffi:with-foreign-object (c-num-platforms 'cl-uint) + (check-error (%get-platform-ids 0 (cffi:null-pointer) c-num-platforms)) + (setf num-platforms (cffi:mem-ref c-num-platforms 'cl-uint))) + (cffi:with-foreign-object (c-platforms 'cl-platform-id num-platforms) + (check-error (%get-platform-ids num-platforms c-platforms (cffi:null-pointer))) + (loop :for i :below num-platforms + :collect (cffi:mem-aref c-platforms 'cl-platform-id i))))) + +(defparameter +platform-info-type-alist+ + '((:platform-profile . :string) + (:platform-version . :string) + (:platform-numeric-version . cl-version) + (:platform-name . :string) + (:platform-vendor . :string) + (:platform-extensions . :string) + (:platform-extensions-with-version . (:pointer cl-name-version)) + (:platform-host-timer-resolution . cl-ulong))) + +(wrap-get-info-function get-platform-info %get-platform-info + +platform-info-type-alist+) -- cgit v1.2.3