0.8.4.22:
[sbcl.git] / contrib / sb-posix / macros.lisp
index d32bfe5..00af8de 100644 (file)
@@ -1,5 +1,17 @@
 (in-package :sb-posix-internal)
 
+(define-designator filename c-string
+  (pathname  (namestring (translate-logical-pathname filename)))
+  (string filename))
+
+(define-designator file-descriptor (integer 32)
+  (sb-impl::file-stream (sb-impl::fd-stream-fd file-descriptor))
+  (fixnum file-descriptor))
+
+(define-designator sap-or-nil sb-sys:system-area-pointer
+  (null (sb-sys:int-sap 0))
+  (sb-sys:system-area-pointer sap-or-nil))
+
 (defun lisp-for-c-symbol (s)
   (intern (substitute #\- #\_ (string-upcase s)) :sb-posix))
 
                   (function ,return-type
                             ,@(mapcar
                                (lambda (x)
-                                 (get (cadr x) 'designator-type (cadr x)))
+                                 (gethash (cadr x) *designator-types* (cadr x)))
                                arguments)))
                  ,@(mapcar (lambda (x)
-                             (if (get (cadr x) 'designator-type)
+                             (if (nth-value 1 (gethash (cadr x) *designator-types*))
                                  `(,(intern (symbol-name (cadr x)) :sb-posix)
                                    ,(car x))
                                  (car x)))