$Revision: 5.0.2.3 $
Package: FOREIGN-FUNCTIONS
Arguments: (name-and-options &key type convention)
This macro creates the specification which allows lisp to correctly reference non-lisp variable data. Like other defining forms, its macroexpansion clearly shows what will occur and at what eval-when times. The execution of the expanded form always returns the lisp name being defined. The definition that is installed is a symbol-macro that accesses the non-lisp value correctly.
name-and-options can either be a symbol or a list of a symbol and an
external-name specification. The symbol represents the lisp-name for which the
foreign-variable definition will be installed. The external name specification can be
either a string specifying a literal external name, or it can be a symbol, which
represents the name of a conversion function. That conversion function must take one
required argument and at least the language keyword argument, and must be defined at the
time the macro expansion is executed. At that time this conversion function will be called
and will receive the lisp-name specified, as well as the arguments :language lang
where lang is the value of the convention keyword.
type is the access type of the variable, and can be any of the valid access
types for sys:memref and sys:memref-int. The default access type is :unsigned-long.
convention is used by the macro to properly translate the lisp name into a
foreign name, and is given to the conversion function as its language keyword
argument. The possible values are :c and :fortran.
See ftype.htm for information on foreign types in Allegro CL. See foreign_functions.htm for general information on foreign functions in Allegro CL.
The general documentation description is in introduction.htm. The index in index.htm.
Copyright (C) 1998-1999, Franz Inc., Berkeley, CA. All Rights Reserved.