X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2Fconstants.lisp;h=fc99cb830d628d8159af4bde58f344e7b26ddbdc;hb=b4488369e16bcc093eedadc4f75dbc6ef90bc931;hp=84b1f91d0e7865206a9cf48bb3a15953d31400fe;hpb=df7c79dc72044de878cc47e11fab19ecc2e56a60;p=sbcl.git diff --git a/contrib/sb-posix/constants.lisp b/contrib/sb-posix/constants.lisp index 84b1f91..fc99cb8 100644 --- a/contrib/sb-posix/constants.lisp +++ b/contrib/sb-posix/constants.lisp @@ -6,26 +6,36 @@ (#||# "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 "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" + #-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") @@ -246,10 +256,33 @@ (: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") + ;; Linux/MIPS uses unsigned long instead of dev_t here. #-mips (dev-t dev "dev_t" "st_dev") #+mips @@ -300,11 +333,14 @@ (: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")