-;;;; -*- Mode: ANSI-Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
+;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: UFFI -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: primitives.cl,v 1.12 2002/03/21 11:38:07 kevin Exp $
+;;;; $Id: primitives.cl,v 1.17 2002/04/28 06:03:13 kevin Exp $
;;;;
;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
"Macro to define a constant and to export it"
`(eval-when (:compile-toplevel :load-toplevel :execute)
(defconstant ,name ,value)
- ,(if export (list 'export `(quote ,name)) (values))))
+ ,(when export (list 'export `(quote ,name)))
+ ',name))
(defmacro def-type (name type)
"Generates a (deftype) statement for CL. Currently, only CMUCL
)
"Conversions in CMUCL or def-foreign-type are different thatn in def-function")
+(defparameter +type-conversion-list+ nil)
#+cmu
-(defconstant +type-conversion-list+
+(setq +type-conversion-list+
'((* . *) (:void . c-call:void)
(:short . c-call:short)
(:pointer-void . (* t))
(:float . c-call:float) (:double . c-call:double)
(:array . alien:array)))
#+allegro
-(defconstant +type-conversion-list+
+(setq +type-conversion-list+
'((* . *) (:void . :void)
(:short . :short)
(:pointer-void . (* :void))
(:float . :float) (:double . :double)
(:array . :array)))
#+lispworks
-(defconstant +type-conversion-list+
+(setq +type-conversion-list+
'((* . :pointer) (:void . :void)
(:short . :short)
- (:pointer-void . (:pointer :unsigned :void))
+ (:pointer-void . (:pointer :void))
(:cstring . (:reference-pass :ef-mb-string :allow-null t))
(:cstring-returning . (:reference :ef-mb-string :allow-null t))
(:char . :char)