1.0.3.16: experimental x86-64/darwin suport
[sbcl.git] / contrib / sb-posix / constants.lisp
index fc99cb8..bae76f4 100644 (file)
@@ -6,6 +6,7 @@
 (#||#
  "sys/types.h"
  "sys/stat.h"
+ #-win32 "utime.h"
  #-win32 "sys/socket.h"
  #-win32 "sys/un.h"
  #-win32 "netinet/in.h"
@@ -21,7 +22,8 @@
  "dirent.h" "signal.h"
  #-win32 "pwd.h"
  "unistd.h"
- #-win32 "termios.h")
+ #-win32 "termios.h"
+ #-win32 "syslog.h")
 
 ;;; then the stuff we're looking for
 ((:integer af-inet "AF_INET" "IP Protocol family" t)
 
  ;; opendir()
  (:structure dirent
-             ("struct dirent"
+             (#+(and linux largefile) "struct dirent64"
+              #-(and linux largefile) "struct dirent"
               (:c-string name "char *" "d_name"
                          :distrust-length #+sunos t #-sunos nil)) t)
 
               #+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)
               (tcflag-t lflag "tcflag_t" "c_lflag")
               ((array cc-t) cc "cc_t" "c_cc")))
 
+ ;; utime(), utimes()
+ #-win32
+ (:type suseconds-t "suseconds_t")
+
+ #-win32
+ (:structure alien-utimbuf
+             ("struct utimbuf"
+              (time-t actime "time_t" "actime")
+              (time-t modtime "time_t" "modtime")))
+ #-win32
+ (:structure alien-timeval
+             ("struct timeval"
+              (time-t sec "time_t" "tv_sec")
+              (suseconds-t usec "suseconds_t" "tv_usec")))
+
  (:integer veof "VEOF" nil t)
  (:integer veol "VEOL" nil t)
  (:integer verase "VERASE" nil t)
  (:integer b9600 "B9600" nil t)
  (:integer b19200 "B19200" nil t)
  (:integer b38400 "B38400" nil t)
+ (:integer b57600 "B57600" nil t)
+ (:integer b115200 "B115200" nil t)
+ (:integer b230400 "B230400" nil t)
 
  (:integer csize "CSIZE" nil t)
  (:integer cs5 "CS5" nil t)
  (:integer tcooff "TCOOFF" nil t)
  (:integer tcoon "TCOON" nil t)
 
- )
+ ;; syslog -- does this exist at all on Windows?
+
+ ;; SUSv3-standard openlog() facilities
+ #-win32
+ (:integer log-user "LOG_USER" "Default openlog() faclity." t)
+ #-win32
+ (:integer log-local0 "LOG_LOCAL0" "Locally-defined openlog() facility" t)
+ #-win32
+ (:integer log-local1 "LOG_LOCAL1" "Locally-defined openlog() facility" t)
+ #-win32
+ (:integer log-local2 "LOG_LOCAL2" "Locally-defined openlog() facility" t)
+ #-win32
+ (:integer log-local3 "LOG_LOCAL3" "Locally-defined openlog() facility" t)
+ #-win32
+ (:integer log-local4 "LOG_LOCAL4" "Locally-defined openlog() facility" t)
+ #-win32
+ (:integer log-local5 "LOG_LOCAL5" "Locally-defined openlog() facility" t)
+ #-win32
+ (:integer log-local6 "LOG_LOCAL6" "Locally-defined openlog() facility" t)
+ #-win32
+ (:integer log-local7 "LOG_LOCAL7" "Locally-defined openlog() facility" t)
+
+ ;; Additional, non-standard openlog() facilities (most of which
+ ;; probably won't be needed by Lisp programs, but here for
+ ;; completeness).
+ #-win32
+ (:integer
+  log-authpriv "LOG_AUTHPRIV" "openlog() facility for authorization messages" t)
+ #-win32
+ (:integer
+  log-cron "LOG_CRON" "openlog() facility for cron and at daemons" t)
+ #-win32
+ (:integer
+  log-daemon "LOG_DAEMON" "openlog() facility for arbitrary daemons" t)
+ #-win32
+ (:integer
+  log-ftp "LOG_FTP" "openlog() facility for FTP daemons" t)
+ #-win32
+ (:integer
+  log-kern "LOG_KERN" "openlog() facility for kernel messages" t)
+ #-win32
+ (:integer
+  log-lpr "LOG_LPR" "openlog() facility for the printer subsystem" t)
+ #-win32
+ (:integer
+  log-mail "LOG_MAIL" "openlog() facility for the mail subsystem" t)
+ #-win32
+ (:integer
+  log-news "LOG_NEWS" "openlog() facility for the usenet subsystem" t)
+ #-win32
+ (:integer
+  log-syslog "LOG_SYSLOG" "openlog() facility for the syslog subsystem" t)
+ #-win32
+ (:integer
+  log-uucp "LOG_UUCP" "openlog() facility for the UUCP subsystem" t)
+
+ ;; openlog() options
+ #-win32
+ (:integer
+  log-pid "LOG_PID"
+  "If supplied to openlog(), log the process ID with each message"
+  t)
+ #-win32
+ (:integer
+  log-cons "LOG_CONS"
+  "If supplied to openlog(), log to the system console as well as logfiles"
+  t)
+ #-win32
+ (:integer
+  log-ndelay "LOG_NDELAY"
+  "If supplied to openlog(), immediately open the syslog connection."
+  t)
+ #-win32
+ (:integer
+  log-odelay "LOG_ODELAY"
+  "If supplied to openlog(), delay opening the syslog connection to the first syslog() call."
+  t)
+ #-win32
+ (:integer
+  log-nowait "LOG_NOWAIT"
+  "If supplied to openlog(), do not wait for child processes created by calls to syslog()."
+  t)
+ ;; Not in SUSv3, but at least Glibc and BSD libc have this
+ #-win32
+ (:integer
+  log-perror "LOG_PERROR"
+  "If supplied to openlog(), write log messages to the process's standard error descriptor in addition to the logging facility."
+  t)
+
+ ;; syslog() severity levels
+ #-win32
+ (:integer
+  log-emerg "LOG_EMERG" "Log severity level denoting a panic." t)
+ #-win32
+ (:integer
+  log-alert "LOG_ALERT" "Log severity level denoting a condition that should be corrected immediately." t)
+ #-win32
+ (:integer
+  log-crit "LOG_CRIT" "Log severity level denoting critical conditions." t)
+ #-win32
+ (:integer
+  log-err "LOG_ERR" "Log severity level denoting an error." t)
+ #-win32
+ (:integer
+  log-warning "LOG_WARNING" "Log severity level denoting a warning." t)
+ #-win32
+ (:integer
+  log-notice "LOG_NOTICE" "Log severity level denoting non-errors that may require special handling." t)
+ #-win32
+ (:integer
+  log-info "LOG_INFO" "Log severity level denoting informational messages." t)
+ #-win32
+ (:integer
+  log-debug "LOG_DEBUG" "Log severity level denoting debugging information ." t)
+
+)