X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2Fmacros.lisp;h=cd722e3339a95b2e66dabd7c50b5627f6d1ae462;hb=0c26b29ea29678579b1e6520db5d49a68d87a236;hp=248db203491fb80794d0b8458d7ec9310d7cc4a8;hpb=808502965803b3772ea40dab28ec85dc131e676a;p=sbcl.git diff --git a/contrib/sb-posix/macros.lisp b/contrib/sb-posix/macros.lisp index 248db20..cd722e3 100644 --- a/contrib/sb-posix/macros.lisp +++ b/contrib/sb-posix/macros.lisp @@ -46,8 +46,9 @@ (defun lisp-for-c-symbol (s) (intern (substitute #\- #\_ (string-upcase s)) :sb-posix)) -(defmacro define-call-internally (lisp-name c-name return-type error-predicate &rest arguments) - (if (sb-fasl::foreign-symbol-address-as-integer-or-nil +(defmacro define-call-internally (lisp-name c-name return-type error-predicate + &rest arguments) + (if (sb-sys:foreign-symbol-address-as-integer-or-nil (sb-vm:extern-alien-name c-name)) `(progn (declaim (inline ,lisp-name)) @@ -58,11 +59,16 @@ (function ,return-type ,@(mapcar (lambda (x) - (gethash (cadr x) *designator-types* (cadr x))) + (gethash (cadr x) + *designator-types* + (cadr x))) arguments))) ,@(mapcar (lambda (x) - (if (nth-value 1 (gethash (cadr x) *designator-types*)) - `(,(intern (symbol-name (cadr x)) :sb-posix) + (if (nth-value 1 + (gethash (cadr x) + *designator-types*)) + `(,(intern (symbol-name (cadr x)) + :sb-posix) ,(car x)) (car x))) arguments)))) @@ -73,7 +79,11 @@ (let ((lisp-name (lisp-for-c-symbol name))) `(progn (export ',lisp-name :sb-posix) - (define-call-internally ,lisp-name ,name ,return-type ,error-predicate ,@arguments)))) + (define-call-internally ,lisp-name + ,name + ,return-type + ,error-predicate + ,@arguments)))) (defmacro define-entry-point (name arglist &body body) (let ((lisp-name (lisp-for-c-symbol name)))