+ (:integer f-dupfd "F_DUPFD" nil t)
+ (:integer f-getfd "F_GETFD" nil t)
+ (:integer f-setfd "F_SETFD" nil t)
+ (:integer f-getfl "F_GETFL" nil t)
+ (:integer f-setfl "F_SETFL" nil t)
+ (:integer f-getlk "F_GETLK" nil t)
+ (:integer f-setlk "F_SETLK" nil t)
+ (:integer f-setlkw "F_SETLKW" nil t)
+ (:integer f-getown "F_GETOWN" nil t)
+ (:integer f-setown "F_SETOWN" nil t)
+
+ ;; tcgetattr(), tcsetattr()
+ #-win32
+ (:type cc-t "cc_t")
+ #-win32
+ (:type speed-t "speed_t" nil t)
+ #-win32
+ (:type tcflag-t "tcflag_t" nil t)
+ (:integer nccs "NCCS" nil t)
+ #-win32
+ (:structure alien-termios
+ ("struct termios"
+ (tcflag-t iflag "tcflag_t" "c_iflag")
+ (tcflag-t oflag "tcflag_t" "c_oflag")
+ (tcflag-t cflag "tcflag_t" "c_cflag")
+ (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 vintr "VINTR" nil t)
+ (:integer vkill "VKILL" nil t)
+ (:integer vmin "VMIN" nil t)
+ (:integer vquit "VQUIT" nil t)
+ (:integer vstart "VSTART" nil t)
+ (:integer vstop "VSTOP" nil t)
+ (:integer vsusp "VSUSP" nil t)
+ (:integer vtime "VTIME" nil t)
+
+ (:integer brkint "BRKINT" nil t)
+ (:integer icrnl "ICRNL" nil t)
+ (:integer ignbrk "IGNBRK" nil t)
+ (:integer igncr "IGNCR" nil t)
+ (:integer ignpar "IGNPAR" nil t)
+ (:integer inlcr "INLCR" nil t)
+ (:integer inpck "INPCK" nil t)
+ (:integer istrip "ISTRIP" nil t)
+ #+xsi ; FIXME: an extension, apparently
+ (:integer ixany "IXANY" nil t)
+ (:integer ixoff "IXOFF" nil t)
+ (:integer ixon "IXON" nil t)
+ (:integer parmrk "PARMRK" nil t)
+
+ (:integer opost "OPOST" nil t)
+ #+xsi
+ (:integer onlcr "ONLCR" nil t)
+ (:integer ocrnl "OCRNL" nil t)
+ (:integer onlret "ONLRET" nil t)
+ (:integer ofill "OFILL" nil t)
+ (:integer nldly "NLDLY" nil t)
+ (:integer nl0 "NL0" nil t)
+ (:integer nl1 "NL1" nil t)
+ (:integer crdly "CRDLY" nil t)
+ (:integer cr0 "CR0" nil t)
+ (:integer cr1 "CR1" nil t)
+ (:integer cr2 "CR2" nil t)
+ (:integer cr3 "CR3" nil t)
+ (:integer tabdly "TABDLY" nil t)
+ (:integer tab0 "TAB0" nil t)
+ (:integer tab1 "TAB1" nil t)
+ (:integer tab2 "TAB2" nil t)
+ (:integer tab3 "TAB3" nil t)
+ (:integer bsdly "BSDLY" nil t)
+ (:integer bs0 "BS0" nil t)
+ (:integer bs1 "BS1" nil t)
+ (:integer vtdly "VTDLY" nil t)
+ (:integer vt0 "VT0" nil t)
+ (:integer vt1 "VT1" nil t)
+ (:integer ffdly "FFDLY" nil t)
+ (:integer ff0 "FF0" nil t)
+ (:integer ff1 "FF1" nil t)
+
+ (:integer b0 "B0" nil t)
+ (:integer b50 "B50" nil t)
+ (:integer b75 "B75" nil t)
+ (:integer b110 "B110" nil t)
+ (:integer b134 "B134" nil t)
+ (:integer b150 "B150" nil t)
+ (:integer b200 "B200" nil t)
+ (:integer b300 "B300" nil t)
+ (:integer b600 "B600" nil t)
+ (:integer b1200 "B1200" nil t)
+ (:integer b1800 "B1800" nil t)
+ (:integer b2400 "B2400" nil t)
+ (:integer b4800 "B4800" 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 cs6 "CS6" nil t)
+ (:integer cs7 "CS7" nil t)
+ (:integer cs8 "CS8" nil t)
+ (:integer cstopb "CSTOPB" nil t)
+ (:integer cread "CREAD" nil t)
+ (:integer parenb "PARENB" nil t)
+ (:integer parodd "PARODD" nil t)
+ (:integer hupcl "HUPCL" nil t)
+ (:integer clocal "CLOCAL" nil t)
+
+ (:integer echo "ECHO" nil t)
+ (:integer echoe "ECHOE" nil t)
+ (:integer echok "ECHOK" nil t)
+ (:integer echonl "ECHONL" nil t)
+ (:integer icanon "ICANON" nil t)
+ (:integer iexten "IEXTEN" nil t)
+ (:integer isig "ISIG" nil t)
+ (:integer noflsh "NOFLSH" nil t)
+ (:integer tostop "TOSTOP" nil t)
+
+ (:integer tcsanow "TCSANOW" nil t)
+ (:integer tcsadrain "TCSADRAIN" nil t)
+ (:integer tcsaflush "TCSAFLUSH" nil t)
+
+ (:integer tciflush "TCIFLUSH" nil t)
+ (:integer tcioflush "TCIOFLUSH" nil t)
+ (:integer tcoflush "TCOFLUSH" nil t)
+ (:integer tcioff "TCIOFF" nil t)
+ (:integer tcion "TCION" 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)
+
+)