X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2Fconstants.lisp;h=fc99cb830d628d8159af4bde58f344e7b26ddbdc;hb=833f66a5363cf6c3a4082afcf9d76cec72e7cdf8;hp=560be59361891f48e2de60a4ef4354090ef49122;hpb=14a1a090731b8fa3632a6e4b51deee8cbc8f59c9;p=sbcl.git diff --git a/contrib/sb-posix/constants.lisp b/contrib/sb-posix/constants.lisp index 560be59..fc99cb8 100644 --- a/contrib/sb-posix/constants.lisp +++ b/contrib/sb-posix/constants.lisp @@ -6,29 +6,39 @@ (#||# "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" - "fcntl.h" - "netdb.h" "errno.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" + #-win32 "netdb.h" + "errno.h" "dirent.h" "signal.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") - + ;; signals (:integer SIGHUP "SIGHUP" #+sb-doc "terminal line hangup." t) (:integer SIGINT "SIGINT" #+sb-doc "interrupt program." t) @@ -195,7 +205,7 @@ (:integer edquot "EDQUOT" nil t) (:integer enomedium "ENOMEDIUM" nil t) (:integer emediumtype "EMEDIUMTYPE" nil t) - + ;; wait (:integer wnohang "WNOHANG") (:integer wuntraced "WUNTRACED") @@ -242,22 +252,48 @@ ;; opendir() (:structure dirent - ("struct dirent" - (:c-string name "char *" "d_name" - :distrust-length #+sunos t #-sunos nil)) t) + ("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") + (c-string-pointer passwd "char *" "pw_passwd") + (uid-t uid "uid_t" "pw_uid") + (gid-t gid "gid_t" "pw_gid") + ;; 'change', 'class', and 'expire' are not supported on Linux + #+nil + (time-t change "time_t" "pw_change") + #+nil + (c-string-pointer class "char *" "pw_class") + (c-string-pointer gecos "char *" "pw_gecos") + (c-string-pointer dir "char *" "pw_dir") + (c-string-pointer shell "char *" "pw_shell") + #+nil + (time-t expire "time_t" "pw_expire") + ;; OS X manpages say this exists. they lie! + #+nil + (:integer fields "int" "pw_fields"))) (:structure alien-stat - ("struct stat" - (mode-t mode "mode_t" "st_mode") - (ino-t ino "ino_t" "st_ino") - (dev-t 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") - (time-t atime "time_t" "st_atime") - (time-t mtime "time_t" "st_mtime") - (time-t ctime "time_t" "st_ctime"))) + ("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") + (time-t atime "time_t" "st_atime") + (time-t mtime "time_t" "st_mtime") + (time-t ctime "time_t" "st_ctime"))) ;; open() (:integer o-rdonly "O_RDONLY" nil t) @@ -275,7 +311,7 @@ (:integer o-directory "O_DIRECTORY" nil t) (:integer o-direct "O_DIRECT" nil t) (:integer o-async "O_ASYNC" nil t) - (:integer o-largefile "O_LARGEFILE" nil t) ; hmm... + (:integer o-largefile "O_LARGEFILE" nil t) ; hmm... (:integer o-dsync "O_DSYNC" nil t) (:integer o-rsync "O_RSYNC" nil t) @@ -297,19 +333,22 @@ (: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"))) - + ("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"))) + (:integer veof "VEOF" nil t) (:integer veol "VEOL" nil t) (:integer verase "VERASE" nil t) @@ -330,7 +369,7 @@ (:integer inlcr "INLCR" nil t) (:integer inpck "INPCK" nil t) (:integer istrip "ISTRIP" nil t) - #+xsi ; FIXME: an extension, apparently + #+xsi ; FIXME: an extension, apparently (:integer ixany "IXANY" nil t) (:integer ixoff "IXOFF" nil t) (:integer ixon "IXON" nil t) @@ -415,5 +454,5 @@ (:integer tcion "TCION" nil t) (:integer tcooff "TCOOFF" nil t) (:integer tcoon "TCOON" nil t) - + )