r2185: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 28 Jun 2002 21:09:42 +0000 (21:09 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Fri, 28 Jun 2002 21:09:42 +0000 (21:09 +0000)
ChangeLog
debian/changelog
doc/ref.sgml
src/objects.cl
src/package.cl

index ab5d5de33463fa31a8ecee7d3e1316c0d074fc4c..3e99d1cb783d797374312dc70b22b5a79cbebe1e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2002-06-28 Kevin Rosenberg (kevin@rosenberg.net)
+
+       * Added size-of-foreign-type function.
+       
 2002-06-26 Kevin Rosenberg (kevin@rosenberg.net)
 
        * Fix bug in Lispworks allocate-foreign-object
index b6d79b3f59e233203ff0258bca658269a558304d..d31ac6dc59abb0851df413d1b8abf25e7bb69a00 100644 (file)
@@ -1,6 +1,8 @@
-cl-uffi (0.4.8-2) unstable; urgency=low
+cl-uffi (0.5.0-1) unstable; urgency=low
 
-  * Additions to the copyright file
+  * New upstream version
+  
+  * Additions to the copyright file to comply with Debian Policy
 
  -- Kevin M. Rosenberg <kevin@rosenberg.net>  Fri, 28 Jun 2002 11:16:28 -0600
 
index 1058e484bdd2b7016bd12d9bc8c4e01d22313120..827ac079f6e3e39f5102540b8a8964bc3d1c2c59 100644 (file)
@@ -1050,6 +1050,61 @@ much better with static allocation.
       </refsect1>
     </refentry>
 
+    <refentry id="size-of-foreign-type">
+      <refnamediv>
+       <refname>size-of-foreign-type</refname>
+       <refpurpose>Returns the number of data bytes used by a foreign object type.
+       </refpurpose>
+       <refclass>Macro</refclass>
+      </refnamediv>
+      <refsynopsisdiv>
+       <title>Syntax</title>
+       <synopsis>
+         <function>size-of-foreign-type</function> <replaceable>ftype</replaceable>
+       </synopsis>
+      </refsynopsisdiv>
+      <refsect1>
+       <title>Arguments and Values</title>
+       <variablelist>
+         <varlistentry>
+           <term><parameter>ftype</parameter></term>
+           <listitem>
+             <para>A foreign type specifier. This parameter is evaluated.
+             </para>
+           </listitem>
+         </varlistentry>
+       </variablelist>
+      </refsect1>
+      <refsect1>
+       <title>Description</title>
+       <para>
+         Returns the number of data bytes used by a foreign object type. This does not include any Lisp storage overhead.
+       </para>
+      </refsect1>
+      <refsect1>
+       <title>Examples</title>
+       <para>
+<programlisting>
+(size-of-foreign-object :unsigned-byte)
+=> 1
+(size-of-foreign-object 'my-100-byte-vector-type)
+=> 100
+</programlisting>
+        </para>
+      </refsect1>
+      <refsect1>
+       <title>Side Effects</title>
+       <para>None.</para>
+      </refsect1>      <refsect1>
+       <title>Affected by</title>
+       <para>None.</para>
+      </refsect1>
+      <refsect1>
+       <title>Exceptional Situations</title>
+       <para>None.</para>
+      </refsect1>
+    </refentry>
+
     <refentry id="pointer-address">
       <refnamediv>
        <refname>pointer-address</refname>
index c71aa48598f914c0e8c81c88a045f23803cc1ddb..fd5ac67d55c6497deb05f29adef20c7d52747748 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: objects.cl,v 1.18 2002/06/27 03:42:40 kevin Exp $
+;;;; $Id: objects.cl,v 1.19 2002/06/28 21:08:00 kevin Exp $
 ;;;;
 ;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
@@ -55,6 +55,12 @@ an array of TYPE with size SIZE. The TYPE parameter is evaluated."
   #+cmu   `(alien:null-alien ,obj)
   )
 
+(defmacro size-of-foreign-type (type)
+  #+lispworks `(fli:size-of ,type)
+  #+allegro `(ff:sizeof-fobject ,type)
+  #+cmu   `(alien:alien-size ,type)
+  )
+
 
 (defmacro make-null-pointer (type)
   #+(or allegro cmu) (declare (ignore type))
index 30d115b8c627a5afcf2960a44c207fdf67c98d8a..abacbc892c06973482969e524abf32d321b2affa 100644 (file)
@@ -41,6 +41,7 @@
    #:free-foreign-object
    #:with-foreign-object
    #:with-foreign-objects
+   #:size-of-foreign-type
    #:pointer-address
    #:deref-pointer
    #:ensure-char-character