(require :sb-grovel))
(defpackage :example-package.system
- (:use :cl :asdf :sb-grovel))
+ (:use :cl :asdf :sb-grovel :sb-alien))
(in-package :example-package.system)
@item
@code{:integer} - constant expressions in C. Used in this form:
@lisp
- (:integer lisp-variable-name "C expression")
+ (:integer lisp-variable-name "C expression" &optional doc export)
@end lisp
@code{"C expression"} will be typically be the name of a constant. But
other forms are possible.
@item
+@code{:enum}
+@lisp
+ (:enum lisp-type-name ((lisp-enumerated-name c-enumerated-name) ...)))
+@end lisp
+
+An @code{sb-alien:enum} type with name @code{lisp-type-name} will be defined.
+The symbols are the @code{lisp-enumerated-name}s, and the values
+are grovelled from the @code{c-enumerated-name}s.
+
+@item
@code{:structure} - alien structure definitions look like this:
@lisp
(:structure lisp-struct-name ("struct c_structure"
@item
@code{:function} - alien function definitions are similar to
@code{define-alien-routine} definitions, because they expand to such
-forms when the lisp program is loaded. @xref{Foreign Function Calls}
+forms when the lisp program is loaded. @xref{Foreign Function Calls}.
@lisp
(:function lisp-function-name ("alien_function_name" alien-return-type