0.7.2.11:
[sbcl.git] / src / code / foreign.lisp
index ac0df23..4bf5d7c 100644 (file)
@@ -10,7 +10,7 @@
 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
 ;;;; files for more information.
 
-(in-package "SB-SYS") ; (SB-SYS, not SB!SYS, since we're built in warm load.)
+(in-package "SB-ALIEN") ; (SB-ALIEN, not SB!ALIEN, since we're in warm load.)
 
 (defun pick-temporary-file-name (&optional
                                 ;; KLUDGE: There are various security
@@ -54,7 +54,7 @@
 ;;; placeholder implementation is overwritten by a subsequent real
 ;;; implementation.)
 ;;;
-;;; You may want to use sb-sys:foreign-symbol-address instead of
+;;; You may want to use SB-SYS:FOREIGN-SYMBOL-ADDRESS instead of
 ;;; calling this directly; see code/target-load.lisp.
 (defun get-dynamic-foreign-symbol-address (symbol)
   (declare (type simple-string symbol) (ignore symbol))
 ;;; dlsym()-based implementation of GET-DYNAMIC-FOREIGN-SYMBOL-ADDRESS
 ;;; and functions (e.g. LOAD-FOREIGN) which affect it.  This should 
 ;;; work on any ELF system with dlopen(3) and dlsym(3)
+#-(or linux FreeBSD)
+(macrolet ((define-unsupported-fun (fun-name)
+            `(defun ,fun-name (&rest rest)
+               "unsupported on this system"
+                (declare (ignore rest))
+               (error 'unsupported-operator :name ',fun-name))))
+  (define-unsupported-fun load-1-foreign)
+  (define-unsupported-fun load-foreign))
 #+(or linux FreeBSD)
 (progn
 
 (defvar *dso-linker-options* '("-G" "-o"))
 
 
-(sb-alien:def-alien-routine dlopen system-area-pointer
-  (file sb-c-call:c-string) (mode sb-c-call:int))
-(sb-alien:def-alien-routine dlsym system-area-pointer
+(sb-alien:define-alien-routine dlopen system-area-pointer
+  (file sb-alien:c-string) (mode sb-alien:int))
+(sb-alien:define-alien-routine dlsym system-area-pointer
   (lib system-area-pointer)
-  (name sb-c-call:c-string))
-(sb-alien:def-alien-routine dlerror sb-c-call:c-string)
+  (name sb-alien:c-string))
+(sb-alien:define-alien-routine dlerror sb-alien:c-string)
 
 ;;; Ensure that we've opened our own binary so we can dynamically resolve 
 ;;; symbols in the C runtime.  
     ld -shared -o /tmp/ffi-test.so /tmp/ffi-test.o
   then in SBCL do this:
     (LOAD-1-FOREIGN \"/tmp/ffi-test.so\")
-    (DEF-ALIEN-ROUTINE SUMMISH INT (X INT) (Y INT))
+    (DEFINE-ALIEN-ROUTINE SUMMISH INT (X INT) (Y INT))
   Now running (SUMMISH 10 20) should return 31.
 "
   (ensure-runtime-symbol-table-opened)