| 76 | | (if (eq type :pointer-self) |
|---|
| 77 | | #+(or cmu scl) `((* (alien:struct ,name))) |
|---|
| 78 | | #+sbcl `((* (sb-alien:struct ,name))) |
|---|
| 79 | | #+(or openmcl digitool) `((:* (:struct ,name))) |
|---|
| 80 | | #+lispworks `((:pointer ,name)) |
|---|
| 81 | | #-(or cmu sbcl scl openmcl digitool lispworks) `((* ,name)) |
|---|
| 82 | | `(,(convert-from-uffi-type type :struct)))))) |
|---|
| | 76 | (if (eq type :pointer-self) |
|---|
| | 77 | (ecase aggregate-type |
|---|
| | 78 | (:struct |
|---|
| | 79 | #+(or cmu scl) `((* (alien:struct ,name))) |
|---|
| | 80 | #+sbcl `((* (sb-alien:struct ,name))) |
|---|
| | 81 | #+(or openmcl digitool) `((:* (:struct ,name))) |
|---|
| | 82 | #+lispworks `((:pointer ,name)) |
|---|
| | 83 | #-(or cmu sbcl scl openmcl digitool lispworks) `((* ,name))) |
|---|
| | 84 | (:union |
|---|
| | 85 | #+(or cmu scl) `((* (alien:union ,name))) |
|---|
| | 86 | #+sbcl `((* (sb-alien:union ,name))) |
|---|
| | 87 | #+(or openmcl digitool) `((:* (:union ,name))) |
|---|
| | 88 | #+lispworks `((:pointer ,name)) |
|---|
| | 89 | #-(or cmu sbcl scl openmcl digitool lispworks) `((* ,name)))) |
|---|
| | 90 | `(,(convert-from-uffi-type type aggregate-type)))))) |
|---|
| 91 | | `(alien:def-alien-type ,name (alien:struct ,name ,@(process-struct-fields name fields))) |
|---|
| 92 | | #+sbcl |
|---|
| 93 | | `(sb-alien:define-alien-type ,name (sb-alien:struct ,name ,@(process-struct-fields name fields))) |
|---|
| 94 | | #+allegro |
|---|
| 95 | | `(ff:def-foreign-type ,name (:struct ,@(process-struct-fields name fields))) |
|---|
| 96 | | #+lispworks |
|---|
| 97 | | `(fli:define-c-struct ,name ,@(process-struct-fields name fields)) |
|---|
| 98 | | #+digitool |
|---|
| 99 | | `(ccl:defrecord ,name ,@(process-struct-fields name fields)) |
|---|
| | 99 | `(alien:def-alien-type ,name (alien:struct ,name ,@(process-aggregate-fields name fields))) |
|---|
| | 100 | #+sbcl |
|---|
| | 101 | `(sb-alien:define-alien-type ,name (sb-alien:struct ,name ,@(process-aggregate-fields name fields))) |
|---|
| | 102 | #+allegro |
|---|
| | 103 | `(ff:def-foreign-type ,name (:struct ,@(process-aggregate-fields name fields))) |
|---|
| | 104 | #+lispworks |
|---|
| | 105 | `(fli:define-c-struct ,name ,@(process-aggregate-fields name fields)) |
|---|
| | 106 | #+digitool |
|---|
| | 107 | `(ccl:defrecord ,name ,@(process-aggregate-fields name fields)) |
|---|
| 195 | | `(ff:def-foreign-type ,name (:union ,@(process-struct-fields name fields))) |
|---|
| 196 | | #+lispworks |
|---|
| 197 | | `(fli:define-c-union ,name ,@(process-struct-fields name fields)) |
|---|
| 198 | | #+(or cmu scl) |
|---|
| 199 | | `(alien:def-alien-type ,name (alien:union ,name ,@(process-struct-fields name fields))) |
|---|
| 200 | | #+sbcl |
|---|
| 201 | | `(sb-alien:define-alien-type ,name (sb-alien:union ,name ,@(process-struct-fields name fields))) |
|---|
| 202 | | #+digitool |
|---|
| 203 | | `(ccl:defrecord ,name (:variant ,@(process-struct-fields name fields t))) |
|---|
| | 203 | `(ff:def-foreign-type ,name (:union ,@(process-aggregate-fields name fields |
|---|
| | 204 | :aggregate-type :union))) |
|---|
| | 205 | #+lispworks |
|---|
| | 206 | `(fli:define-c-union ,name ,@(process-aggregate-fields name fields |
|---|
| | 207 | :aggregate-type :union)) |
|---|
| | 208 | #+(or cmu scl) |
|---|
| | 209 | `(alien:def-alien-type ,name (alien:union ,name ,@(process-aggregate-fields name fields |
|---|
| | 210 | :aggregate-type :union))) |
|---|
| | 211 | #+sbcl |
|---|
| | 212 | `(sb-alien:define-alien-type ,name (sb-alien:union ,name ,@(process-aggregate-fields name fields |
|---|
| | 213 | :aggregate-type :union))) |
|---|
| | 214 | #+digitool |
|---|
| | 215 | `(ccl:defrecord ,name (:variant ,@(process-aggregate-fields name fields |
|---|
| | 216 | :variant t |
|---|
| | 217 | :aggregate-type :union))) |
|---|