"clean up" the remainder by hand
authorD Herring <dherring@at.tentpost.dot.com>
Thu, 7 Apr 2011 03:57:13 +0000 (23:57 -0400)
committerD Herring <dherring@at.tentpost.dot.com>
Thu, 7 Apr 2011 03:57:13 +0000 (23:57 -0400)
there are some platform-specific details to fix
Why doesn't CFFI build-in size_t or off_t?

types.lisp

index 848922b..fd16bdc 100644 (file)
@@ -3,10 +3,51 @@
 (cffi:defctype herr-t :int)
 (cffi:defctype hbool-t :unsigned-int)
 (cffi:defctype hsize-t :unsigned-long-long)
+(cffi:defctype hssize-t :long-long)
 (cffi:defctype haddr-t :uint64) ; possibly platform-specific -- see H5public.h
 (cffi:defctype htri-t :int)
 (cffi:defctype h5z-filter-t :int)
 (cffi:defctype size-t :uint64) ; definitely platform-specific
+(cffi:defctype ssize-t :int64)
+(cffi:defctype off-t :int64)
+
+#|
+# sed -n -e '/^typedef [ ]*[^ ]* [ ]*[^ ]*[ ]*;$/ p' *
+typedef hid_t   H5E_major_t;
+typedef hid_t   H5E_minor_t;
+typedef enum H5F_mem_t  H5FD_mem_t;
+typedef int hid_t;
+typedef herr_t (*H5I_free_t)(void*);
+typedef uint32_t H5O_msg_crt_idx_t;
+typedef H5P_prp_cb1_t H5P_prp_create_func_t;
+typedef H5P_prp_cb2_t H5P_prp_set_func_t;
+typedef H5P_prp_cb2_t H5P_prp_get_func_t;
+typedef H5P_prp_cb2_t H5P_prp_delete_func_t;
+typedef H5P_prp_cb1_t H5P_prp_copy_func_t;
+typedef H5P_prp_cb1_t H5P_prp_close_func_t;
+typedef int H5Z_filter_t;
+typedef int herr_t;
+typedef int htri_t;
+typedef int ssize_t;
+typedef long ssize_t;
+|#
+(progn
+  (cffi:defctype h5e-major-t hid-t)
+  (cffi:defctype h5e-minor-t hid-t)
+
+  (cffi:defctype h5fd-mem-t h5f-mem-t)
+  (cffi:defctype h5o-msg-crt-idx-t :uint32)
+
+  (cffi:defctype h5p-prp-create-func-t h5p-prp-cb1-t)
+  (cffi:defctype h5p-prp-set-func-t h5p-prp-cb2-t)
+  (cffi:defctype h5p-prp-get-func-t h5p-prp-cb2-t)
+  (cffi:defctype h5p-prp-delete-func-t h5p-prp-cb2-t)
+  (cffi:defctype h5p-prp-copy-func-t h5p-prp-cb1-t)
+  (cffi:defctype h5p-prp-close-func-t h5p-prp-cb1-t)
+
+  (cffi:defctype h5z-filter-t :int)
+
+  (cffi:defctype h5g-link-t h5l-type-t))
 
 #|
 On review, H5OPEN and H5CHECK define most of the intersting constants.
@@ -47,10 +88,3 @@ Final expression:
 |#
 
 ;; structs
-
-
-;; functions
-
-Since they use the H5_DLL macro to control exporting, the following should provide a complete list of interesting stuff.
-Note that H5_DLLVAR marks variables used to define some "constants".
-# sed -n -e '/^H5_DLL [^)]*$/,/)/ p' -e '/^H5_DLL .*)/ p' H*public.h | cpp | sed -e '/#/ d' -e 's/H5_DLL //'