Index: /trunk/ccl/lib/foreign-types.lisp
===================================================================
--- /trunk/ccl/lib/foreign-types.lisp	(revision 417)
+++ /trunk/ccl/lib/foreign-types.lisp	(revision 418)
@@ -646,8 +646,19 @@
     (make-foreign-integer-type :bits bits :signed nil)))
 
+(def-foreign-type-translator bitfield (&optional (bits 1))
+  (make-foreign-integer-type :bits bits :signed nil :alignment 1))
+
+						  
+
 (def-foreign-type-method (integer :unparse) (type)
-  (list (if (foreign-integer-type-signed type) :signed :unsigned)
-	(foreign-integer-type-bits type)))
-
+  (let* ((bits (foreign-integer-type-bits type))
+	 (signed (foreign-integer-type-signed type))
+	 (alignment (foreign-integer-type-alignment type)))
+    (if (eql alignment 1)
+      (if (eql bits 1)
+	:bit
+	`(:bitfield ,bits))
+      (list (if signed :signed :unsigned) bits))))
+  
 (def-foreign-type-method (integer :type=) (type1 type2)
   (and (eq (foreign-integer-type-signed type1)
@@ -1408,4 +1419,5 @@
 (def-foreign-type unsigned-long (unsigned 32))
 (def-foreign-type unsigned-doubleword (unsigned 64))
+(def-foreign-type bit (bitfield 1))
 
 (def-foreign-type float single-float)
