1.0.3.16: experimental x86-64/darwin suport
[sbcl.git] / contrib / sb-posix / constants.lisp
index 63a04a5..bae76f4 100644 (file)
               #+nil
               (:integer fields "int" "pw_fields")))
 
+ #-darwin
  (:structure alien-stat
              ("struct stat"
               (mode-t mode "mode_t" "st_mode")
               (time-t mtime "time_t" "st_mtime")
               (time-t ctime "time_t" "st_ctime")))
 
+ #+darwin
+ (:structure alien-timespec
+             ("struct timespec"
+              (time-t tv-sec "time_t" "tv_sec")
+              (long tv-nsec "long" "tv_nsec")))
+ #+darwin
+ (:structure alien-stat
+             ("struct stat"
+              (mode-t mode "mode_t" "st_mode")
+              (ino-t ino "ino_t" "st_ino")
+              ;; Linux/MIPS uses unsigned long instead of dev_t here.
+              #-mips
+              (dev-t dev "dev_t" "st_dev")
+              #+mips
+              ((unsigned 32) dev "dev_t" "st_dev")
+              (nlink-t nlink "nlink_t" "st_nlink")
+              (uid-t uid "uid_t" "st_uid")
+              (gid-t gid "gid_t" "st_gid")
+              (off-t size "off_t" "st_size")
+              (alien-timespec atime "struct timespec" "st_atime")
+              (alien-timespec mtime "struct timespec" "st_mtime")
+              (alien-timespec ctime "struct timespec" "st_ctime")))
+
  ;; open()
  (:integer o-rdonly "O_RDONLY" nil t)
  (:integer o-wronly "O_WRONLY" nil t)
 
  ;; utime(), utimes()
  #-win32
+ (:type suseconds-t "suseconds_t")
+
+ #-win32
  (:structure alien-utimbuf
              ("struct utimbuf"
               (time-t actime "time_t" "actime")
  #-win32
  (:structure alien-timeval
              ("struct timeval"
-              (long sec "long" "tv_sec")
-              (long usec "long" "tv_usec")))
+              (time-t sec "time_t" "tv_sec")
+              (suseconds-t usec "suseconds_t" "tv_usec")))
 
  (:integer veof "VEOF" nil t)
  (:integer veol "VEOL" nil t)