| 1 | (in-package "ALIEN") |
| 2 | (export '(load-shared-library)) |
| 3 | (in-package "SYSTEM") |
| 4 | (import 'alien:load-shared-library) |
| 5 | |
| 6 | (defun load-shared-library (file &key init prototype initargs) |
| 7 | (format t ";;; Loading shared library ~A~%" file) |
| 8 | (load-object-file file) |
| 9 | (when init |
| 10 | (apply |
| 11 | #'alien:alien-funcall |
| 12 | (alien::%heap-alien |
| 13 | (alien::make-heap-alien-info |
| 14 | :type (alien::parse-alien-type (or prototype `(function c-call:void))) |
| 15 | :sap-form (system:foreign-symbol-address init))) |
| 16 | initargs))) |
| 17 | |