(defmacro def-function (names args &key module returning)
(multiple-value-bind (lisp-args out processed)
(preprocess-args args)
(defmacro def-function (names args &key module returning)
(multiple-value-bind (lisp-args out processed)
(preprocess-args args)
(if (= (length out) 0)
`(%def-function ,names ,args
,@(if module (list :module module) (values))
(if (= (length out) 0)
`(%def-function ,names ,args
,@(if module (list :module module) (values))
,@(if module (list :module module) (values))
:result-type ,result-type
:language :ansi-c
,@(if module (list :module module) (values))
:result-type ,result-type
:language :ansi-c
#+digitool
`(eval-when (:compile-toplevel :load-toplevel :execute)
(ccl:define-entry-point (,lisp-name ,foreign-name)
#+digitool
`(eval-when (:compile-toplevel :load-toplevel :execute)
(ccl:define-entry-point (,lisp-name ,foreign-name)