Update of /project/cparse/cvsroot/cparse
In directory clnet:/tmp/cvs-serv2059/cparse
Modified Files:
uffi-alien.lisp cparse.system ChangeLog 00debug.lisp
Added Files:
test4.lisp test3.lisp
Log Message:
2006-08-29 Christian Lynbech <christian(a)defun.dk>
* test3.lisp: New file.
* test4.lisp: New file.
* uffi-alien.lisp (*cpp-args-defaults*): Removed "-D_BITS_PTHREADTYPES_H"
and docstring instead.
(make-alien-defs): Updated docstring.
* cparse.system: Added CLC require for UFFI. Changed from defsystem to
asdf. Added warning for the CMUCL hash fill bug.
* 00debug.lisp: Added case for uffi-1.5.5 and uffi-1.5.15.
Changed from defsystem to asdf.
(*uffi*): changed to allow quicker switching.
--- /project/cparse/cvsroot/cparse/uffi-alien.lisp 2004/11/24 20:23:58 1.1
+++ /project/cparse/cvsroot/cparse/uffi-alien.lisp 2006/08/29 20:31:54 1.2
@@ -2,7 +2,7 @@
;;; Copyright (c) 2001 Timothy Moore
;;; All rights reserved.
;;;
-;;; Modified 2004 by Christian Lynbech.
+;;; Modified 2004-2006 by Christian Lynbech.
;;;
;;; Redistribution and use in source and binary forms, with or without
;;; modification, are permitted provided that the following conditions
@@ -32,10 +32,16 @@
(defvar *cpp-args-defaults* '("-D__restrict="
"-D__extension__="
"-D__attribute__(x)="
- "-D__const="
- ;;CMUCL does not support long long and
- ;;the pthreadtypes header file uses it
- #+cmu "-D_BITS_PTHREADTYPES_H"))
+ "-D__const=")
+ "Default arguments given to 'cpp' when preprocessing the supplied file.
+Can be used both to define specific features that are relevant to the file
+being processed and to get rid of stuff that CPARSE does not know how
+to handle such as GCC extensions like __restrict.
+
+Implementation note: 'long long' is not supported by UFFI, so we use backend
+specific translations when they are known.
+One particular troublesome Linux header file is \"pthreadtypes\" which may
+be turned off by adding \"-D_BITS_PTHREADTYPES_H\" to the cpp argument list.")
(defmacro with-temp-file ((file-name
&optional
@@ -94,8 +100,9 @@
:CPP-ARGS is a list of command-line arguments for the C
preprocessor (for example, '\(\"-I/usr/X11R6/include\"\)\).
-The value of :CPP-ARGS will be added to the value of
-*cpp-args-defaults* unless :NO-CPP-DEFAULTS is non-true.
+:CPP-ARGS is a list of arguments to be given as arguments to the
+CPP call. Also added as arguments are those of *cpp-args-defaults*
+unless :NO-CPP-DEFAULTS is non-nil.
:EXTRA-CPP-LINES are added to the file passed to the C preprocessor
and can be used for extra macro definitions, #includes, etc."
--- /project/cparse/cvsroot/cparse/cparse.system 2004/11/24 20:23:58 1.2
+++ /project/cparse/cvsroot/cparse/cparse.system 2006/08/29 20:31:54 1.3
@@ -1,7 +1,7 @@
;;; Copyright (c) 2001 Timothy Moore -*- lisp -*-
;;; All rights reserved.
;;;
-;;; Modified 2004 by Christian Lynbech
+;;; Modified 2004, 2006 by Christian Lynbech
;;;
;;; Redistribution and use in source and binary forms, with or without
;;; modification, are permitted provided that the following conditions
@@ -29,6 +29,8 @@
;;;
;;; CPARSE - library for parsing C header files.
+(clc:clc-require :uffi)
+
;; Choose one of the supported backends
(defvar *cparse-backend* (nth 0 '("uffi-alien" "cmu-alien" "acl-alien")))
@@ -37,12 +39,15 @@
#+CMU
;;; CMUCL 18c and earlier doesn't hash strings with fill pointers correctly.
+;;; The code below checks for the problem and adds 'hash-fill-bug' to features
+;;; in case the implementation has the problem.
(let ((string-with-fill (make-array 32
:element-type 'base-char
:adjustable t
:fill-pointer 7)))
(setf (subseq string-with-fill 0) "typedef")
(unless (= (sxhash string-with-fill) (sxhash "typedef"))
+ (warn "This CMUCL has the 'hash-fill-bug' feature.")
(pushnew :hash-fill-bug *features*)))
@@ -51,7 +56,12 @@
;;; with whatever kind of system his is most comfortable with.
#+ASDF
-'(to-be-done asdf:defsystem cparse)
+(asdf:defsystem :cparse
+ :serial t
+ :components ((:file "package")
+ (:file "ctype")
+ (:file "cparse")
+ (:file #.*cparse-backend*)))
#+MK-DEFSYSTEM
(mk:defsystem cparse
--- /project/cparse/cvsroot/cparse/ChangeLog 2004/11/29 20:26:05 1.6
+++ /project/cparse/cvsroot/cparse/ChangeLog 2006/08/29 20:31:54 1.7
@@ -1,3 +1,19 @@
+2006-08-29 Christian Lynbech <christian(a)defun.dk>
+
+ * test3.lisp: New file.
+ * test4.lisp: New file.
+
+ * uffi-alien.lisp (*cpp-args-defaults*): Removed "-D_BITS_PTHREADTYPES_H"
+ and docstring instead.
+ (make-alien-defs): Updated docstring.
+
+ * cparse.system: Added CLC require for UFFI. Changed from defsystem to
+ asdf. Added warning for the CMUCL hash fill bug.
+
+ * 00debug.lisp: Added case for uffi-1.5.5 and uffi-1.5.15.
+ Changed from defsystem to asdf.
+ (*uffi*): changed to allow quicker switching.
+
2004-11-29 Christian Lynbech <christian.lynbech(a)ericsson.com>
* 02debug.lisp: New file.
--- /project/cparse/cvsroot/cparse/00debug.lisp 2004/11/24 20:29:32 1.1
+++ /project/cparse/cvsroot/cparse/00debug.lisp 2006/08/29 20:31:54 1.2
@@ -1,6 +1,6 @@
;;;; debug.lisp --- various forms usefull when doing debugging.
-(defparameter *uffi* '|1.4.30|)
+(defparameter *uffi* (nth 2 '(dist |1.5.5| |1.5.15| cl-home)))
(case *uffi*
(cl-home (load "../../cl-home/cl-uffi/uffi.asd")
@@ -9,18 +9,25 @@
(asdf:operate 'asdf:load-op :uffi))
(|1.4.30| (load "../cl-uffi-1.4.30/uffi.asd")
(asdf:operate 'asdf:load-op :uffi))
+ (|1.5.5| (load "../cl-uffi-1.5.5/uffi.asd")
+ (asdf:operate 'asdf:load-op :uffi))
+ (|1.5.15| (load "../cl-uffi-1.5.15/uffi.asd")
+ (asdf:operate 'asdf:load-op :uffi))
(dist (clc:clc-require :uffi)))
-(load "/usr/share/common-lisp/source/defsystem/defsystem.lisp")
+;(load "/usr/share/common-lisp/source/defsystem/defsystem.lisp")
(load "cparse.system")
#+nil
(mk:clean-system :cparse)
+#+nil
(progn
(mk:compile-system :cparse) (mk:load-system :cparse))
+(asdf:operate 'asdf:load-op :cparse)
+
(defun dotest (&rest files)
(flet ((test-1 (file)
(let ((ffi (uffi-alien:make-alien-defs file)))
--- /project/cparse/cvsroot/cparse/test4.lisp 2006/08/29 20:31:55 NONE
+++ /project/cparse/cvsroot/cparse/test4.lisp 2006/08/29 20:31:55 1.1
(UNLESS (FIND-PACKAGE :DIR-TEST) (DEFPACKAGE :DIR-TEST (:SHADOW T)))
(IN-PACKAGE :DIR-TEST)
(PROGN
(UFFI:DEF-FOREIGN-TYPE SIZE-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --U-CHAR :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE --U-SHORT :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE --U-INT :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --U-LONG :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --INT8-T :CHAR)
(UFFI:DEF-FOREIGN-TYPE --UINT8-T :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE --INT16-T :SHORT)
(UFFI:DEF-FOREIGN-TYPE --UINT16-T :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE --INT32-T :INT)
(UFFI:DEF-FOREIGN-TYPE --UINT32-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --INT64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --UINT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --QUAD-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --U-QUAD-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --DEV-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --UID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --GID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --INO-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --INO64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --MODE-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --NLINK-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --OFF-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --OFF64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --PID-T :INT)
(UFFI:DEF-FOREIGN-TYPE --FSID-T (:STRUCT NIL (--VAL (:ARRAY :INT 2))))
(UFFI:DEF-FOREIGN-TYPE --CLOCK-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --RLIM-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --RLIM64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --ID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --TIME-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --USECONDS-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --SUSECONDS-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --DADDR-T :INT)
(UFFI:DEF-FOREIGN-TYPE --SWBLK-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --KEY-T :INT)
(UFFI:DEF-FOREIGN-TYPE --CLOCKID-T :INT)
(UFFI:DEF-FOREIGN-TYPE --TIMER-T :INT)
(UFFI:DEF-FOREIGN-TYPE --BLKSIZE-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --BLKCNT-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --BLKCNT64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --FSBLKCNT-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSBLKCNT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSFILCNT-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSFILCNT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --SSIZE-T :INT)
(UFFI:DEF-FOREIGN-TYPE --LOFF-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --QADDR-T (* :LONG))
(UFFI:DEF-FOREIGN-TYPE --CADDR-T (* :CHAR))
(UFFI:DEF-FOREIGN-TYPE --INTPTR-T :INT)
(UFFI:DEF-FOREIGN-TYPE --SOCKLEN-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE U-CHAR :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE U-SHORT :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE U-INT :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE U-LONG :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE QUAD-T :LONG)
(UFFI:DEF-FOREIGN-TYPE U-QUAD-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE FSID-T (:STRUCT NIL (--VAL (:ARRAY :INT 2))))
(UFFI:DEF-FOREIGN-TYPE LOFF-T :LONG)
(UFFI:DEF-FOREIGN-TYPE INO-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE DEV-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE GID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE MODE-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE NLINK-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE UID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE OFF-T :LONG)
(UFFI:DEF-FOREIGN-TYPE PID-T :INT)
(UFFI:DEF-FOREIGN-TYPE ID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE SSIZE-T :INT)
(UFFI:DEF-FOREIGN-TYPE DADDR-T :INT)
(UFFI:DEF-FOREIGN-TYPE CADDR-T (* :CHAR))
(UFFI:DEF-FOREIGN-TYPE KEY-T :INT)
(UFFI:DEF-FOREIGN-TYPE TIME-T :LONG)
(UFFI:DEF-FOREIGN-TYPE CLOCKID-T :INT)
(UFFI:DEF-FOREIGN-TYPE TIMER-T :INT)
(UFFI:DEF-FOREIGN-TYPE ULONG :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE USHORT :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE UINT :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE INT8-T :INT)
(UFFI:DEF-FOREIGN-TYPE INT16-T :INT)
(UFFI:DEF-FOREIGN-TYPE INT32-T :INT)
(UFFI:DEF-FOREIGN-TYPE INT64-T :INT)
(UFFI:DEF-FOREIGN-TYPE U-INT8-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE U-INT16-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE U-INT32-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE U-INT64-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE REGISTER-T :INT)
(UFFI:DEF-FOREIGN-TYPE --SIG-ATOMIC-T :INT)
(UFFI:DEF-FOREIGN-TYPE --SIGSET-T
(:STRUCT NIL (--VAL (:ARRAY :UNSIGNED-LONG 32))))
(UFFI:DEF-FOREIGN-TYPE SIGSET-T
(:STRUCT NIL (--VAL (:ARRAY :UNSIGNED-LONG 32))))
(UFFI:DEF-FOREIGN-TYPE NIL (:STRUCT TIMESPEC (TV-SEC :LONG) (TV-NSEC :LONG)))
(UFFI:DEF-FOREIGN-TYPE NIL (:STRUCT TIMEVAL (TV-SEC :LONG) (TV-USEC :LONG)))
(UFFI:DEF-FOREIGN-TYPE SUSECONDS-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --FD-MASK :LONG)
(UFFI:DEF-FOREIGN-TYPE FD-SET (:STRUCT NIL (--FDS-BITS (:ARRAY :LONG 32))))
(UFFI:DEF-FOREIGN-TYPE FD-MASK :LONG)
(PROGN
(DECLAIM (INLINE SELECT))
(UFFI:DEF-FUNCTION "select"
((--NFDS :INT)
(--READFDS
(* (:STRUCT NIL (--FDS-BITS (:ARRAY :LONG 32)))))
(--WRITEFDS
(* (:STRUCT NIL (--FDS-BITS (:ARRAY :LONG 32)))))
(--EXCEPTFDS
(* (:STRUCT NIL (--FDS-BITS (:ARRAY :LONG 32)))))
(--TIMEOUT
(* (:STRUCT TIMEVAL (TV-SEC :LONG) (TV-USEC :LONG)))))
:RETURNING
:INT))
(UFFI:DEF-FOREIGN-TYPE BLKCNT-T :LONG)
(UFFI:DEF-FOREIGN-TYPE FSBLKCNT-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE FSFILCNT-T :UNSIGNED-LONG))
(PROGN
(UFFI:DEF-FOREIGN-TYPE SIZE-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --U-CHAR :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE --U-SHORT :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE --U-INT :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --U-LONG :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --INT8-T :CHAR)
(UFFI:DEF-FOREIGN-TYPE --UINT8-T :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE --INT16-T :SHORT)
(UFFI:DEF-FOREIGN-TYPE --UINT16-T :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE --INT32-T :INT)
(UFFI:DEF-FOREIGN-TYPE --UINT32-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --INT64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --UINT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --QUAD-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --U-QUAD-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --DEV-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --UID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --GID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --INO-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --INO64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --MODE-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --NLINK-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --OFF-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --OFF64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --PID-T :INT)
(UFFI:DEF-FOREIGN-TYPE --FSID-T (:STRUCT NIL (--VAL (:ARRAY :INT 2))))
(UFFI:DEF-FOREIGN-TYPE --CLOCK-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --RLIM-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --RLIM64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --ID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --TIME-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --USECONDS-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --SUSECONDS-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --DADDR-T :INT)
(UFFI:DEF-FOREIGN-TYPE --SWBLK-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --KEY-T :INT)
(UFFI:DEF-FOREIGN-TYPE --CLOCKID-T :INT)
(UFFI:DEF-FOREIGN-TYPE --TIMER-T :INT)
(UFFI:DEF-FOREIGN-TYPE --BLKSIZE-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --BLKCNT-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --BLKCNT64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --FSBLKCNT-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSBLKCNT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSFILCNT-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSFILCNT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --SSIZE-T :INT)
(UFFI:DEF-FOREIGN-TYPE --LOFF-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --QADDR-T (* :LONG))
(UFFI:DEF-FOREIGN-TYPE --CADDR-T (* :CHAR))
(UFFI:DEF-FOREIGN-TYPE --INTPTR-T :INT)
(UFFI:DEF-FOREIGN-TYPE --SOCKLEN-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE dirent
(:STRUCT DIRENT (D-INO :UNSIGNED-LONG) (D-OFF :LONG)
(D-RECLEN :UNSIGNED-SHORT) (D-TYPE :UNSIGNED-CHAR)
(D-NAME (:ARRAY :CHAR 256))))
(UFFI:DEF-ENUM UFFI-ALIEN::ENUM
((:DT-UNKNOWN 0) (:DT-FIFO 1) (:DT-CHR 2) (:DT-DIR 4)
(:DT-BLK 6) (:DT-REG 8) (:DT-LNK 10) (:DT-SOCK 12)
(:DT-WHT 14)))
(UFFI:DEF-FOREIGN-TYPE DIR (:STRUCT --DIRSTREAM))
(PROGN
(DECLAIM (INLINE OPENDIR))
(UFFI:DEF-FUNCTION "opendir"
((--NAME (* :CHAR)))
:RETURNING
(* (:STRUCT --DIRSTREAM))))
(PROGN
(DECLAIM (INLINE CLOSEDIR))
(UFFI:DEF-FUNCTION "closedir"
((--DIRP (* (:STRUCT --DIRSTREAM))))
:RETURNING
:INT))
(PROGN
(DECLAIM (INLINE READDIR))
(UFFI:DEF-FUNCTION "readdir"
((--DIRP (* (:STRUCT --DIRSTREAM))))
:RETURNING
(*
(:STRUCT DIRENT (D-INO :UNSIGNED-LONG) (D-OFF :LONG)
(D-RECLEN :UNSIGNED-SHORT) (D-TYPE :UNSIGNED-CHAR)
(D-NAME (:ARRAY :CHAR 256))))))
(PROGN
(DECLAIM (INLINE READDIR-R))
(UFFI:DEF-FUNCTION "readdir_r"
((--DIRP (* (:STRUCT --DIRSTREAM)))
(--ENTRY
(*
(:STRUCT DIRENT (D-INO :UNSIGNED-LONG) (D-OFF :LONG)
(D-RECLEN :UNSIGNED-SHORT) (D-TYPE :UNSIGNED-CHAR)
(D-NAME (:ARRAY :CHAR 256)))))
(--RESULT
(*
(*
(:STRUCT DIRENT (D-INO :UNSIGNED-LONG) (D-OFF :LONG)
(D-RECLEN :UNSIGNED-SHORT) (D-TYPE :UNSIGNED-CHAR)
(D-NAME (:ARRAY :CHAR 256)))))))
:RETURNING
:INT))
(PROGN
(DECLAIM (INLINE REWINDDIR))
(UFFI:DEF-FUNCTION "rewinddir"
((--DIRP (* (:STRUCT --DIRSTREAM))))
:RETURNING
:VOID))
(PROGN
(DECLAIM (INLINE SEEKDIR))
(UFFI:DEF-FUNCTION "seekdir"
((--DIRP (* (:STRUCT --DIRSTREAM))) (--POS :LONG))
:RETURNING
:VOID))
(PROGN
(DECLAIM (INLINE TELLDIR))
(UFFI:DEF-FUNCTION "telldir"
((--DIRP (* (:STRUCT --DIRSTREAM))))
:RETURNING
:LONG))
(PROGN
(DECLAIM (INLINE DIRFD))
(UFFI:DEF-FUNCTION "dirfd"
((--DIRP (* (:STRUCT --DIRSTREAM))))
:RETURNING
:INT))
(PROGN
(DECLAIM (INLINE SCANDIR))
(UFFI:DEF-FUNCTION "scandir"
((--DIR (* :CHAR))
(--NAMELIST
(*
(*
(*
(:STRUCT DIRENT (D-INO :UNSIGNED-LONG) (D-OFF :LONG)
(D-RECLEN :UNSIGNED-SHORT) (D-TYPE :UNSIGNED-CHAR)
(D-NAME (:ARRAY :CHAR 256)))))))
(--SELECTOR
(*
(FUNCTION :INT
(NIL
(*
(:STRUCT DIRENT (D-INO :UNSIGNED-LONG) (D-OFF :LONG)
(D-RECLEN :UNSIGNED-SHORT) (D-TYPE :UNSIGNED-CHAR)
(D-NAME (:ARRAY :CHAR 256))))))))
(--CMP
(*
(FUNCTION :INT (NIL :POINTER-VOID)
(NIL :POINTER-VOID)))))
:RETURNING
:INT))
(PROGN
(DECLAIM (INLINE ALPHASORT))
(UFFI:DEF-FUNCTION "alphasort"
((|--E1| :POINTER-VOID) (|--E2| :POINTER-VOID))
:RETURNING
:INT))
(PROGN
(DECLAIM (INLINE GETDIRENTRIES))
(UFFI:DEF-FUNCTION "getdirentries"
((--FD :INT) (--BUF (* :CHAR)) (--NBYTES :UNSIGNED-INT)
(--BASEP (* :LONG)))
:RETURNING
:INT)))
--- /project/cparse/cvsroot/cparse/test3.lisp 2006/08/29 20:31:55 NONE
+++ /project/cparse/cvsroot/cparse/test3.lisp 2006/08/29 20:31:55 1.1
(UNLESS (FIND-PACKAGE :OBEX) (DEFPACKAGE :OBEX (:SHADOW T)))
(IN-PACKAGE :OBEX)
(PROGN
(UFFI:DEF-FOREIGN-TYPE INT8-T :CHAR)
(UFFI:DEF-FOREIGN-TYPE INT16-T :SHORT)
(UFFI:DEF-FOREIGN-TYPE INT32-T :INT)
(UFFI:DEF-FOREIGN-TYPE INT64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE UINT8-T :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE UINT16-T :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE UINT32-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE UINT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE INT-LEAST8-T :CHAR)
(UFFI:DEF-FOREIGN-TYPE INT-LEAST16-T :SHORT)
(UFFI:DEF-FOREIGN-TYPE INT-LEAST32-T :INT)
(UFFI:DEF-FOREIGN-TYPE INT-LEAST64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE UINT-LEAST8-T :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE UINT-LEAST16-T :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE UINT-LEAST32-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE UINT-LEAST64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE INT-FAST8-T :CHAR)
(UFFI:DEF-FOREIGN-TYPE INT-FAST16-T :INT)
(UFFI:DEF-FOREIGN-TYPE INT-FAST32-T :INT)
(UFFI:DEF-FOREIGN-TYPE INT-FAST64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE UINT-FAST8-T :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE UINT-FAST16-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE UINT-FAST32-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE UINT-FAST64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE INTPTR-T :INT)
(UFFI:DEF-FOREIGN-TYPE UINTPTR-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE INTMAX-T :LONG)
(UFFI:DEF-FOREIGN-TYPE UINTMAX-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE SIZE-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --U-CHAR :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE --U-SHORT :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE --U-INT :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --U-LONG :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --INT8-T :CHAR)
(UFFI:DEF-FOREIGN-TYPE --UINT8-T :UNSIGNED-CHAR)
(UFFI:DEF-FOREIGN-TYPE --INT16-T :SHORT)
(UFFI:DEF-FOREIGN-TYPE --UINT16-T :UNSIGNED-SHORT)
(UFFI:DEF-FOREIGN-TYPE --INT32-T :INT)
(UFFI:DEF-FOREIGN-TYPE --UINT32-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --INT64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --UINT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --QUAD-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --U-QUAD-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --DEV-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --UID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --GID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --INO-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --INO64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --MODE-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --NLINK-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --OFF-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --OFF64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --PID-T :INT)
(UFFI:DEF-FOREIGN-TYPE --FSID-T (:STRUCT NIL (--VAL (:ARRAY :INT 2))))
(UFFI:DEF-FOREIGN-TYPE --CLOCK-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --RLIM-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --RLIM64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --ID-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --TIME-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --USECONDS-T :UNSIGNED-INT)
(UFFI:DEF-FOREIGN-TYPE --SUSECONDS-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --DADDR-T :INT)
(UFFI:DEF-FOREIGN-TYPE --SWBLK-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --KEY-T :INT)
(UFFI:DEF-FOREIGN-TYPE --CLOCKID-T :INT)
(UFFI:DEF-FOREIGN-TYPE --TIMER-T :INT)
(UFFI:DEF-FOREIGN-TYPE --BLKSIZE-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --BLKCNT-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --BLKCNT64-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --FSBLKCNT-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSBLKCNT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSFILCNT-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --FSFILCNT64-T :UNSIGNED-LONG)
(UFFI:DEF-FOREIGN-TYPE --SSIZE-T :INT)
(UFFI:DEF-FOREIGN-TYPE --LOFF-T :LONG)
(UFFI:DEF-FOREIGN-TYPE --QADDR-T (* :LONG))
(UFFI:DEF-FOREIGN-TYPE --CADDR-T (* :CHAR))
[660 lines skipped]