b77e99a1eb24fb3322339f72ef4b2d743a875a97
[uffi.git] / src-mcl / package.cl
1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
4 ;;;;
5 ;;;; Name:          package.cl
6 ;;;; Purpose:       Defines UFFI package
7 ;;;; Programmer:    Kevin M. Rosenberg
8 ;;;; Date Started:  Feb 2002
9 ;;;;
10 ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
11 ;;;;
12 ;;;; UFFI users are granted the rights to distribute and use this software
13 ;;;; as governed by the terms of the Lisp Lesser GNU Public License
14 ;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
15 ;;;; *************************************************************************
16
17 (declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))
18 (in-package :cl-user)
19
20 (defpackage :uffi
21   (:use :cl)
22   (:export 
23    
24    ;; immediate types
25    #:def-constant
26    #:def-foreign-type
27    #:def-type
28    #:null-char-p
29    
30    ;; aggregate types
31    #:def-enum
32    #:def-struct
33    #:get-slot-value
34    #:get-slot-pointer
35    #:def-array-pointer
36    #:deref-array
37    #:def-union
38    
39    ;; objects
40    #:allocate-foreign-object
41    #:free-foreign-object
42    #:with-foreign-object
43    #:with-foreign-objects
44    #:pointer-address
45    #:deref-pointer
46    #:ensure-char-character
47    #:ensure-char-integer
48    #:null-pointer-p
49    #:make-null-pointer
50    #:+null-cstring-pointer+
51    #:char-array-to-pointer
52    
53    ;; string functions
54    #:convert-from-cstring
55    #:convert-to-cstring
56    #:free-cstring
57    #:with-cstring
58    #:with-cstrings
59    #:convert-from-foreign-string
60    #:convert-to-foreign-string
61    #:allocate-foreign-string
62    #:with-foreign-string
63    
64    ;; function call
65    #:def-function
66
67    ;; Libraries
68    #:load-foreign-library
69
70    ;; Utilities
71    ))