diff options
Diffstat (limited to 'objcl.lisp')
-rw-r--r-- | objcl.lisp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/objcl.lisp b/objcl.lisp new file mode 100644 index 0000000..82ab250 --- /dev/null +++ b/objcl.lisp @@ -0,0 +1,40 @@ +(in-package #:mulk.objective-cl) + +(define-foreign-library libobjcl + (unix "/home/mulk/Dokumente/Projekte/Objective-CL/shared_obj/libobjcl.so")) + +(use-foreign-library libobjcl) + +(defctype pointer-array :pointer + "An array of void pointers.") + +#+nil +(defmethod translate-to-foreign ((vector vector) + (type (eql 'pointer-array))) + (foreign-alloc :pointer + :count (length vector) + :null-terminated-p nil + :initial-contents vector)) + +#+nil +(defmethod translate-from-foreign (foreign-value + (type (eql 'pointer-array))) + ) + + +(defcfun "objcl_initialise_runtime" :void) +(defcfun "objcl_shutdown_runtime" :void) +(defcfun "objcl_invoke_instance_method" :pointer + (receiver :pointer) + (method-name :string) + (argc :int) + &rest) + +(defcfun "objcl_invoke_class_method" :pointer + (receiver :void) + (method-name :string) + (argc :int) + &rest) + +(defcfun "objcl_find_class" :pointer + (class-name :string)) |