(#||#
"sys/types.h"
"sys/stat.h"
-
- "sys/socket.h" "sys/un.h" "netinet/in.h" "netinet/in_systm.h"
- "netinet/ip.h" "net/if.h" "netinet/tcp.h" "sys/mman.h" "sys/wait.h"
+ #-win32 "utime.h"
+ #-win32 "sys/socket.h"
+ #-win32 "sys/un.h"
+ #-win32 "netinet/in.h"
+ #-win32 "netinet/in_systm.h"
+ #-win32 "netinet/ip.h"
+ #-win32 "net/if.h"
+ #-win32 "netinet/tcp.h"
+ #-win32 "sys/mman.h"
+ #-win32 "sys/wait.h"
"fcntl.h"
- "netdb.h" "errno.h"
+ #-win32 "netdb.h"
+ "errno.h"
"dirent.h" "signal.h"
- "pwd.h"
+ #-win32 "pwd.h"
"unistd.h"
-
- "termios.h")
+ #-win32 "termios.h")
;;; then the stuff we're looking for
((:integer af-inet "AF_INET" "IP Protocol family" t)
- (:type uid-t "uid_t")
- (:type gid-t "gid_t")
+ ;; KLUDGE: These types simply do not seem to exist on Windows,
+ ;; but we'll provide these anyways -- at least in a way that should
+ ;; match with stat.
+ (:type uid-t #-win32 "uid_t" #+win32 "short")
+ (:type gid-t #-win32 "gid_t" #+win32 "short")
+ (:type nlink-t #-win32 "nlink_t" #+win32 "short")
(:type pid-t "pid_t")
(:type ino-t "ino_t")
- (:type nlink-t "nlink_t")
(:type time-t "time_t")
(:type dev-t "dev_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)
;; password database
+ #-win32
(:structure alien-passwd
("struct passwd"
(c-string-pointer name "char *" "pw_name")
(: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 lflag "tcflag_t" "c_lflag")
((array cc-t) cc "cc_t" "c_cc")))
+ ;; utime(), utimes()
+ #-win32
+ (:structure alien-utimbuf
+ ("struct utimbuf"
+ (time-t actime "time_t" "actime")
+ (time-t modtime "time_t" "modtime")))
+ #-win32
+ (:structure alien-timeval
+ ("struct timeval"
+ (long sec "long" "tv_sec")
+ (long usec "long" "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)