0.8.11.77:
authorAndreas Fuchs <asf@boinkor.net>
Tue, 1 Jun 2004 17:02:22 +0000 (17:02 +0000)
committerAndreas Fuchs <asf@boinkor.net>
Tue, 1 Jun 2004 17:02:22 +0000 (17:02 +0000)
sb-grovel & sb-posix symbol export changes

... sb-grovel no longer quietly exports every constant
... instead, I restored the old default of not exporting the symbol
    (and, additionally:) unless asked to

... sb-posix now exports all groveled-for constants and
    structure/class accessors

... (implicitly:) sb-bsd-sockets now does no more export its
    constants. This corresponds to the behavior before 0.8.11.65.

contrib/sb-grovel/def-to-lisp.lisp
contrib/sb-posix/constants.lisp
contrib/sb-posix/defpackage.lisp
contrib/sb-posix/interface.lisp
version.lisp-expr

index 265a0ce..19e4107 100644 (file)
@@ -78,15 +78,12 @@ code:
              (format nil "sizeof(~A)" type)))
     (printf ")")
     (dolist (def definitions)
-      (destructuring-bind (type lispname cname &optional doc dont-export) def
+      (destructuring-bind (type lispname cname &optional doc export) def
        (case type
          (:integer
           (as-c "#ifdef" cname)
           (printf "(cl:defconstant ~A %d \"~A\")" lispname doc
                   cname)
-          ;; XXX: do this?
-          (unless dont-export
-            (printf "(cl:export '~A)" lispname))
           (as-c "#else")
           (printf "(sb-int:style-warn \"Couldn't grovel for ~A (unknown to the C compiler).\")" cname)
           (as-c "#endif"))
@@ -103,11 +100,13 @@ code:
             (printf "(sb-grovel::define-foreign-routine (\"~A\" ~A)" f-cname lispname)
             (printf "~{  ~W~^\\n~})" definition)))
          (:structure
+          ;; FIXME: structure slots should be auto-exportable as well.
           (c-for-structure lispname cname))
          (otherwise
           ;; should we really not sprechen espagnol, monsieurs?
-          (error "Unknown grovel keyword encountered: ~A" type))
-       )))
+          (error "Unknown grovel keyword encountered: ~A" type)))
+       (when export
+         (printf "(cl:export '~A)" lispname))))
     (as-c "return 0;")
     (as-c "}")))
 
index 8acbd2d..a566050 100644 (file)
@@ -16,7 +16,7 @@
  "termios.h")
 
 ;;; then the stuff we're looking for
-((:integer af-inet "AF_INET" "IP Protocol family")
+((:integer af-inet "AF_INET" "IP Protocol family" t)
 
  (:type uid-t "uid_t")
  (:type gid-t "gid_t")
  (:type dev-t "dev_t")
  
  ;; signals
- (:integer SIGHUP "SIGHUP" #+sb-doc "terminal line hangup.")
- (:integer SIGINT "SIGINT" #+sb-doc "interrupt program.")
- (:integer SIGQUIT "SIGQUIT" #+sb-doc "quit program.")
- (:integer SIGILL "SIGILL" #+sb-doc "illegal instruction.")
- (:integer SIGTRAP "SIGTRAP" #+sb-doc "trace trap.")
- (:integer SIGABRT "SIGABRT" #+sb-doc "abort program (formerly SIGIOT).")
- (:integer SIGEMT "SIGEMT" #+sb-doc "emulate instruction executed.")
- (:integer SIGFPE "SIGFPE" #+sb-doc "floating-point exception.")
- (:integer SIGKILL "SIGKILL" #+sb-doc "kill program.")
- (:integer SIGBUS "SIGBUS" #+sb-doc "bus error.")
- (:integer SIGSEGV "SIGSEGV" #+sb-doc "segmentation violation.")
- (:integer SIGSYS "SIGSYS" #+sb-doc "non-existent system call invoked.")
- (:integer SIGPIPE "SIGPIPE" #+sb-doc "write on a pipe with no reader.")
- (:integer SIGALRM "SIGALRM" #+sb-doc "real-time timer expired.")
- (:integer SIGTERM "SIGTERM" #+sb-doc "software termination signal.")
- (:integer SIGURG "SIGURG" #+sb-doc "urgent condition present on socket.")
- (:integer SIGSTOP "SIGSTOP" #+sb-doc "stop (cannot be caught or ignored).")
- (:integer SIGTSTP "SIGTSTP" #+sb-doc "stop signal generated from keyboard.")
- (:integer SIGCONT "SIGCONT" #+sb-doc "continue after stop.")
- (:integer SIGCHLD "SIGCHLD" #+sb-doc "child status has changed.")
+ (:integer SIGHUP "SIGHUP" #+sb-doc "terminal line hangup." t)
+ (:integer SIGINT "SIGINT" #+sb-doc "interrupt program." t)
+ (:integer SIGQUIT "SIGQUIT" #+sb-doc "quit program." t)
+ (:integer SIGILL "SIGILL" #+sb-doc "illegal instruction." t)
+ (:integer SIGTRAP "SIGTRAP" #+sb-doc "trace trap." t)
+ (:integer SIGABRT "SIGABRT" #+sb-doc "abort program (formerly SIGIOT)." t)
+ (:integer SIGEMT "SIGEMT" #+sb-doc "emulate instruction executed." t)
+ (:integer SIGFPE "SIGFPE" #+sb-doc "floating-point exception." t)
+ (:integer SIGKILL "SIGKILL" #+sb-doc "kill program." t)
+ (:integer SIGBUS "SIGBUS" #+sb-doc "bus error." t)
+ (:integer SIGSEGV "SIGSEGV" #+sb-doc "segmentation violation." t)
+ (:integer SIGSYS "SIGSYS" #+sb-doc "non-existent system call invoked." t)
+ (:integer SIGPIPE "SIGPIPE" #+sb-doc "write on a pipe with no reader." t)
+ (:integer SIGALRM "SIGALRM" #+sb-doc "real-time timer expired." t)
+ (:integer SIGTERM "SIGTERM" #+sb-doc "software termination signal." t)
+ (:integer SIGURG "SIGURG" #+sb-doc "urgent condition present on socket." t)
+ (:integer SIGSTOP "SIGSTOP" #+sb-doc "stop (cannot be caught or ignored)." t)
+ (:integer SIGTSTP "SIGTSTP" #+sb-doc "stop signal generated from keyboard." t)
+ (:integer SIGCONT "SIGCONT" #+sb-doc "continue after stop." t)
+ (:integer SIGCHLD "SIGCHLD" #+sb-doc "child status has changed." t)
  (:integer SIGTTIN "SIGTTIN"
-           #+sb-doc "background read attempted from control terminal.")
+           #+sb-doc "background read attempted from control terminal." t)
  (:integer SIGTTOU "SIGTTOU"
-           #+sb-doc "background write attempted to control terminal.")
+           #+sb-doc "background write attempted to control terminal." t)
  (:integer SIGIO "SIGIO"
-           #+sb-doc "I/O is possible on a descriptor (see fcntl(2)).")
+           #+sb-doc "I/O is possible on a descriptor (see fcntl(2))." t)
  (:integer SIGXCPU "SIGXCPU"
-           #+sb-doc "cpu time limit exceeded (see setrlimit(2)).")
+           #+sb-doc "cpu time limit exceeded (see setrlimit(2))." t)
  (:integer SIGXFSZ "SIGXFSZ"
-           #+sb-doc "file size limit exceeded (see setrlimit(2)).")
+           #+sb-doc "file size limit exceeded (see setrlimit(2))." t)
  (:integer SIGVTALRM "SIGVTALRM"
-           #+sb-doc "virtual time alarm (see setitimer(2)).")
+           #+sb-doc "virtual time alarm (see setitimer(2))." t)
  (:integer SIGPROF "SIGPROF"
-           #+sb-doc "profiling timer alarm (see setitimer(2)).")
- (:integer SIGWINCH "SIGWINCH" #+sb-doc "Window size change.")
- (:integer SIGINFO "SIGINFO" #+sb-doc "status request from keyboard.")
- (:integer SIGUSR1 "SIGUSR1" #+sb-doc "User defined signal 1.")
- (:integer SIGUSR2 "SIGUSR2" #+sb-doc "User defined signal 2.")
- (:integer SIGRTMIN "SIGRTMIN" #+sb-doc "Smallest real-time signal number.")
- (:integer SIGRTMAX "SIGRTMAX" #+sb-doc "Largest real-time signal number.")
+           #+sb-doc "profiling timer alarm (see setitimer(2))." t)
+ (:integer SIGWINCH "SIGWINCH" #+sb-doc "Window size change." t)
+ (:integer SIGINFO "SIGINFO" #+sb-doc "status request from keyboard." t)
+ (:integer SIGUSR1 "SIGUSR1" #+sb-doc "User defined signal 1." t)
+ (:integer SIGUSR2 "SIGUSR2" #+sb-doc "User defined signal 2." t)
+ (:integer SIGRTMIN "SIGRTMIN" #+sb-doc "Smallest real-time signal number." t)
+ (:integer SIGRTMAX "SIGRTMAX" #+sb-doc "Largest real-time signal number." t)
 
  ;; error numbers
- (:integer eperm "EPERM")
- (:integer enoent "ENOENT")
- (:integer esrch "ESRCH")
- (:integer eintr "EINTR")
- (:integer eio "EIO")
- (:integer enxio "ENXIO")
- (:integer e2big "E2BIG")
- (:integer enoexec "ENOEXEC")
- (:integer ebadf "EBADF")
- (:integer echild "ECHILD")
- (:integer eagain "EAGAIN")
- (:integer enomem "ENOMEM")
- (:integer eacces "EACCES")
- (:integer efault "EFAULT")
- (:integer enotblk "ENOTBLK")
- (:integer ebusy "EBUSY")
- (:integer eexist "EEXIST")
- (:integer exdev "EXDEV")
- (:integer enodev "ENODEV")
- (:integer enotdir "ENOTDIR")
- (:integer eisdir "EISDIR")
- (:integer einval "EINVAL")
- (:integer enfile "ENFILE")
- (:integer emfile "EMFILE")
- (:integer enotty "ENOTTY")
- (:integer etxtbsy "ETXTBSY")
- (:integer efbig "EFBIG")
- (:integer enospc "ENOSPC")
- (:integer espipe "ESPIPE")
- (:integer erofs "EROFS")
- (:integer emlink "EMLINK")
- (:integer epipe "EPIPE")
- (:integer edom "EDOM")
- (:integer erange "ERANGE")
- (:integer edeadlk "EDEADLK")
- (:integer enametoolong "ENAMETOOLONG")
- (:integer enolck "ENOLCK")
- (:integer enosys "ENOSYS")
- (:integer enotempty "ENOTEMPTY")
- (:integer eloop "ELOOP")
- (:integer ewouldblock "EWOULDBLOCK")
- (:integer enomsg "ENOMSG")
- (:integer eidrm "EIDRM")
- (:integer echrng "ECHRNG")
- (:integer el2nsync "EL2NSYNC")
- (:integer el3hlt "EL3HLT")
- (:integer el3rst "EL3RST")
- (:integer elnrng "ELNRNG")
- (:integer eunatch "EUNATCH")
- (:integer enocsi "ENOCSI")
- (:integer el2hlt "EL2HLT")
- (:integer ebade "EBADE")
- (:integer ebadr "EBADR")
- (:integer exfull "EXFULL")
- (:integer enoano "ENOANO")
- (:integer ebadrqc "EBADRQC")
- (:integer ebadslt "EBADSLT")
- (:integer edeadlock "EDEADLOCK")
- (:integer ebfont "EBFONT")
- (:integer enostr "ENOSTR")
- (:integer enodata "ENODATA")
- (:integer etime "ETIME")
- (:integer enosr "ENOSR")
- (:integer enonet "ENONET")
- (:integer enopkg "ENOPKG")
- (:integer eremote "EREMOTE")
- (:integer enolink "ENOLINK")
- (:integer eadv "EADV")
- (:integer esrmnt "ESRMNT")
- (:integer ecomm "ECOMM")
- (:integer eproto "EPROTO")
- (:integer emultihop "EMULTIHOP")
- (:integer edotdot "EDOTDOT")
- (:integer ebadmsg "EBADMSG")
- (:integer eoverflow "EOVERFLOW")
- (:integer enotuniq "ENOTUNIQ")
- (:integer ebadfd "EBADFD")
- (:integer eremchg "EREMCHG")
- (:integer elibacc "ELIBACC")
- (:integer elibbad "ELIBBAD")
- (:integer elibscn "ELIBSCN")
- (:integer elibmax "ELIBMAX")
- (:integer elibexec "ELIBEXEC")
- (:integer eilseq "EILSEQ")
- (:integer erestart "ERESTART")
- (:integer estrpipe "ESTRPIPE")
- (:integer eusers "EUSERS")
- (:integer enotsock "ENOTSOCK")
- (:integer edestaddrreq "EDESTADDRREQ")
- (:integer emsgsize "EMSGSIZE")
- (:integer eprototype "EPROTOTYPE")
- (:integer enoprotoopt "ENOPROTOOPT")
- (:integer eprotonosupport "EPROTONOSUPPORT")
- (:integer esocktnosupport "ESOCKTNOSUPPORT")
- (:integer eopnotsupp "EOPNOTSUPP")
- (:integer epfnosupport "EPFNOSUPPORT")
- (:integer eafnosupport "EAFNOSUPPORT")
- (:integer eaddrinuse "EADDRINUSE")
- (:integer eaddrnotavail "EADDRNOTAVAIL")
- (:integer enetdown "ENETDOWN")
- (:integer enetunreach "ENETUNREACH")
- (:integer enetreset "ENETRESET")
- (:integer econnaborted "ECONNABORTED")
- (:integer econnreset "ECONNRESET")
- (:integer enobufs "ENOBUFS")
- (:integer eisconn "EISCONN")
- (:integer enotconn "ENOTCONN")
- (:integer eshutdown "ESHUTDOWN")
- (:integer etoomanyrefs "ETOOMANYREFS")
- (:integer etimedout "ETIMEDOUT")
- (:integer econnrefused "ECONNREFUSED")
- (:integer ehostdown "EHOSTDOWN")
- (:integer ehostunreach "EHOSTUNREACH")
- (:integer ealready "EALREADY")
- (:integer einprogress "EINPROGRESS")
- (:integer estale "ESTALE")
- (:integer euclean "EUCLEAN")
- (:integer enotnam "ENOTNAM")
- (:integer enavail "ENAVAIL")
- (:integer eremoteio "EREMOTEIO")
- (:integer edquot "EDQUOT")
- (:integer enomedium "ENOMEDIUM")
- (:integer emediumtype "EMEDIUMTYPE")
+ (:integer eperm "EPERM" nil t)
+ (:integer enoent "ENOENT" nil t)
+ (:integer esrch "ESRCH" nil t)
+ (:integer eintr "EINTR" nil t)
+ (:integer eio "EIO" nil t)
+ (:integer enxio "ENXIO" nil t)
+ (:integer e2big "E2BIG" nil t)
+ (:integer enoexec "ENOEXEC" nil t)
+ (:integer ebadf "EBADF" nil t)
+ (:integer echild "ECHILD" nil t)
+ (:integer eagain "EAGAIN" nil t)
+ (:integer enomem "ENOMEM" nil t)
+ (:integer eacces "EACCES" nil t)
+ (:integer efault "EFAULT" nil t)
+ (:integer enotblk "ENOTBLK" nil t)
+ (:integer ebusy "EBUSY" nil t)
+ (:integer eexist "EEXIST" nil t)
+ (:integer exdev "EXDEV" nil t)
+ (:integer enodev "ENODEV" nil t)
+ (:integer enotdir "ENOTDIR" nil t)
+ (:integer eisdir "EISDIR" nil t)
+ (:integer einval "EINVAL" nil t)
+ (:integer enfile "ENFILE" nil t)
+ (:integer emfile "EMFILE" nil t)
+ (:integer enotty "ENOTTY" nil t)
+ (:integer etxtbsy "ETXTBSY" nil t)
+ (:integer efbig "EFBIG" nil t)
+ (:integer enospc "ENOSPC" nil t)
+ (:integer espipe "ESPIPE" nil t)
+ (:integer erofs "EROFS" nil t)
+ (:integer emlink "EMLINK" nil t)
+ (:integer epipe "EPIPE" nil t)
+ (:integer edom "EDOM" nil t)
+ (:integer erange "ERANGE" nil t)
+ (:integer edeadlk "EDEADLK" nil t)
+ (:integer enametoolong "ENAMETOOLONG" nil t)
+ (:integer enolck "ENOLCK" nil t)
+ (:integer enosys "ENOSYS" nil t)
+ (:integer enotempty "ENOTEMPTY" nil t)
+ (:integer eloop "ELOOP" nil t)
+ (:integer ewouldblock "EWOULDBLOCK" nil t)
+ (:integer enomsg "ENOMSG" nil t)
+ (:integer eidrm "EIDRM" nil t)
+ (:integer echrng "ECHRNG" nil t)
+ (:integer el2nsync "EL2NSYNC" nil t)
+ (:integer el3hlt "EL3HLT" nil t)
+ (:integer el3rst "EL3RST" nil t)
+ (:integer elnrng "ELNRNG" nil t)
+ (:integer eunatch "EUNATCH" nil t)
+ (:integer enocsi "ENOCSI" nil t)
+ (:integer el2hlt "EL2HLT" nil t)
+ (:integer ebade "EBADE" nil t)
+ (:integer ebadr "EBADR" nil t)
+ (:integer exfull "EXFULL" nil t)
+ (:integer enoano "ENOANO" nil t)
+ (:integer ebadrqc "EBADRQC" nil t)
+ (:integer ebadslt "EBADSLT" nil t)
+ (:integer edeadlock "EDEADLOCK" nil t)
+ (:integer ebfont "EBFONT" nil t)
+ (:integer enostr "ENOSTR" nil t)
+ (:integer enodata "ENODATA" nil t)
+ (:integer etime "ETIME" nil t)
+ (:integer enosr "ENOSR" nil t)
+ (:integer enonet "ENONET" nil t)
+ (:integer enopkg "ENOPKG" nil t)
+ (:integer eremote "EREMOTE" nil t)
+ (:integer enolink "ENOLINK" nil t)
+ (:integer eadv "EADV" nil t)
+ (:integer esrmnt "ESRMNT" nil t)
+ (:integer ecomm "ECOMM" nil t)
+ (:integer eproto "EPROTO" nil t)
+ (:integer emultihop "EMULTIHOP" nil t)
+ (:integer edotdot "EDOTDOT" nil t)
+ (:integer ebadmsg "EBADMSG" nil t)
+ (:integer eoverflow "EOVERFLOW" nil t)
+ (:integer enotuniq "ENOTUNIQ" nil t)
+ (:integer ebadfd "EBADFD" nil t)
+ (:integer eremchg "EREMCHG" nil t)
+ (:integer elibacc "ELIBACC" nil t)
+ (:integer elibbad "ELIBBAD" nil t)
+ (:integer elibscn "ELIBSCN" nil t)
+ (:integer elibmax "ELIBMAX" nil t)
+ (:integer elibexec "ELIBEXEC" nil t)
+ (:integer eilseq "EILSEQ" nil t)
+ (:integer erestart "ERESTART" nil t)
+ (:integer estrpipe "ESTRPIPE" nil t)
+ (:integer eusers "EUSERS" nil t)
+ (:integer enotsock "ENOTSOCK" nil t)
+ (:integer edestaddrreq "EDESTADDRREQ" nil t)
+ (:integer emsgsize "EMSGSIZE" nil t)
+ (:integer eprototype "EPROTOTYPE" nil t)
+ (:integer enoprotoopt "ENOPROTOOPT" nil t)
+ (:integer eprotonosupport "EPROTONOSUPPORT" nil t)
+ (:integer esocktnosupport "ESOCKTNOSUPPORT" nil t)
+ (:integer eopnotsupp "EOPNOTSUPP" nil t)
+ (:integer epfnosupport "EPFNOSUPPORT" nil t)
+ (:integer eafnosupport "EAFNOSUPPORT" nil t)
+ (:integer eaddrinuse "EADDRINUSE" nil t)
+ (:integer eaddrnotavail "EADDRNOTAVAIL" nil t)
+ (:integer enetdown "ENETDOWN" nil t)
+ (:integer enetunreach "ENETUNREACH" nil t)
+ (:integer enetreset "ENETRESET" nil t)
+ (:integer econnaborted "ECONNABORTED" nil t)
+ (:integer econnreset "ECONNRESET" nil t)
+ (:integer enobufs "ENOBUFS" nil t)
+ (:integer eisconn "EISCONN" nil t)
+ (:integer enotconn "ENOTCONN" nil t)
+ (:integer eshutdown "ESHUTDOWN" nil t)
+ (:integer etoomanyrefs "ETOOMANYREFS" nil t)
+ (:integer etimedout "ETIMEDOUT" nil t)
+ (:integer econnrefused "ECONNREFUSED" nil t)
+ (:integer ehostdown "EHOSTDOWN" nil t)
+ (:integer ehostunreach "EHOSTUNREACH" nil t)
+ (:integer ealready "EALREADY" nil t)
+ (:integer einprogress "EINPROGRESS" nil t)
+ (:integer estale "ESTALE" nil t)
+ (:integer euclean "EUCLEAN" nil t)
+ (:integer enotnam "ENOTNAM" nil t)
+ (:integer enavail "ENAVAIL" nil t)
+ (:integer eremoteio "EREMOTEIO" nil t)
+ (:integer edquot "EDQUOT" nil t)
+ (:integer enomedium "ENOMEDIUM" nil t)
+ (:integer emediumtype "EMEDIUMTYPE" nil t)
  
  ;; mode_t
  (:type mode-t "mode_t")
- (:integer s-isuid "S_ISUID")
- (:integer s-isgid "S_ISGID")
- (:integer s-isvtx "S_ISVTX")
- (:integer s-irusr "S_IRUSR")
- (:integer s-iwusr "S_IWUSR")
- (:integer s-ixusr "S_IXUSR")
- (:integer s-iread "S_IRUSR")
- (:integer s-iwrite "S_IWUSR")
- (:integer s-iexec "S_IXUSR")
- (:integer s-irgrp "S_IRGRP")
- (:integer s-iwgrp "S_IWGRP")
- (:integer s-ixgrp "S_IXGRP")
- (:integer s-iroth "S_IROTH")
- (:integer s-iwoth "S_IWOTH")
- (:integer s-ixoth "S_IXOTH")
+ (:integer s-isuid "S_ISUID" nil t)
+ (:integer s-isgid "S_ISGID" nil t)
+ (:integer s-isvtx "S_ISVTX" nil t)
+ (:integer s-irusr "S_IRUSR" nil t)
+ (:integer s-iwusr "S_IWUSR" nil t)
+ (:integer s-ixusr "S_IXUSR" nil t)
+ (:integer s-iread "S_IRUSR" nil t)
+ (:integer s-iwrite "S_IWUSR" nil t)
+ (:integer s-iexec "S_IXUSR" nil t)
+ (:integer s-irgrp "S_IRGRP" nil t)
+ (:integer s-iwgrp "S_IWGRP" nil t)
+ (:integer s-ixgrp "S_IXGRP" nil t)
+ (:integer s-iroth "S_IROTH" nil t)
+ (:integer s-iwoth "S_IWOTH" nil t)
+ (:integer s-ixoth "S_IXOTH" nil t)
 
  ;; access()
- (:integer r-ok "R_OK")
- (:integer w-ok "W_OK")
- (:integer x-ok "X_OK")
- (:integer f-ok "F_OK")
+ (:integer r-ok "R_OK" nil t)
+ (:integer w-ok "W_OK" nil t)
+ (:integer x-ok "X_OK" nil t)
+ (:integer f-ok "F_OK" nil t)
 
  ;; mmap()
  (:type off-t "off_t")
- (:integer prot-none "PROT_NONE" #+sb-doc "mmap: no protection")
- (:integer prot-read "PROT_READ" #+sb-doc "mmap: read protection")
- (:integer prot-write "PROT_WRITE" #+sb-doc "mmap: write protection")
- (:integer prot-exec "PROT_EXEC" #+sb-doc "mmap: execute protection")
- (:integer map-shared "MAP_SHARED" #+sb-doc "mmap: shared memory")
- (:integer map-private "MAP_PRIVATE" #+sb-doc "mmap: private mapping")
- (:integer map-fixed "MAP_FIXED" #+sb-doc "mmap: map at given location")
+ (:integer prot-none "PROT_NONE" #+sb-doc "mmap: no protection" t)
+ (:integer prot-read "PROT_READ" #+sb-doc "mmap: read protection" t)
+ (:integer prot-write "PROT_WRITE" #+sb-doc "mmap: write protection" t)
+ (:integer prot-exec "PROT_EXEC" #+sb-doc "mmap: execute protection" t)
+ (:integer map-shared "MAP_SHARED" #+sb-doc "mmap: shared memory" t)
+ (:integer map-private "MAP_PRIVATE" #+sb-doc "mmap: private mapping" t)
+ (:integer map-fixed "MAP_FIXED" #+sb-doc "mmap: map at given location" t)
 
  ;; msync()
- (:integer ms-async "MS_ASYNC" #+sb-doc "msync: return immediately")
- (:integer ms-sync "MS_SYNC" #+sb-doc "msync: perform synchronous writes")
+ (:integer ms-async "MS_ASYNC" #+sb-doc "msync: return immediately" t)
+ (:integer ms-sync "MS_SYNC" #+sb-doc "msync: perform synchronous writes" t)
  (:integer ms-invalidate "MS_INVALIDATE"
-           #+sb-doc "msync: invalidate all cached data")
+           #+sb-doc "msync: invalidate all cached data" t)
 
  ;; opendir()
  (:structure dirent
             ("struct dirent"
              (:c-string name "char *" "d_name"
-                        :distrust-length #+sunos t #-sunos nil)))
+                        :distrust-length #+sunos t #-sunos nil)) t)
 
  (:structure alien-stat
             ("struct stat"
              (time-t ctime "time_t" "st_ctime")))
 
  ;; open()
- (:integer o-rdonly "O_RDONLY")
- (:integer o-wronly "O_WRONLY")
- (:integer o-rdwr "O_RDWR")
- (:integer o-creat "O_CREAT")
- (:integer o-excl "O_EXCL")
- (:integer o-noctty "O_NOCTTY")
- (:integer o-trunc "O_TRUNC")
- (:integer o-append "O_APPEND")
- (:integer o-nonblock "O_NONBLOCK")
- (:integer o-ndelay "O_NDELAY")
- (:integer o-sync "O_SYNC")
- (:integer o-nofollow "O_NOFOLLOW")
- (:integer o-directory "O_DIRECTORY")
- (:integer o-direct "O_DIRECT")
- (:integer o-async "O_ASYNC")
- (:integer o-largefile "O_LARGEFILE")  ; hmm...
- (:integer o-dsync "O_DSYNC")
- (:integer o-rsync "O_RSYNC")
+ (:integer o-rdonly "O_RDONLY" nil t)
+ (:integer o-wronly "O_WRONLY" nil t)
+ (:integer o-rdwr "O_RDWR" nil t)
+ (:integer o-creat "O_CREAT" nil t)
+ (:integer o-excl "O_EXCL" nil t)
+ (:integer o-noctty "O_NOCTTY" nil t)
+ (:integer o-trunc "O_TRUNC" nil t)
+ (:integer o-append "O_APPEND" nil t)
+ (:integer o-nonblock "O_NONBLOCK" nil t)
+ (:integer o-ndelay "O_NDELAY" nil t)
+ (:integer o-sync "O_SYNC" nil t)
+ (:integer o-nofollow "O_NOFOLLOW" nil t)
+ (: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-dsync "O_DSYNC" nil t)
+ (:integer o-rsync "O_RSYNC" nil t)
 
  ;; lseek()
- (:integer seek-set "SEEK_SET")
- (:integer seek-cur "SEEK_CUR")
- (:integer seek-end "SEEK_END")
+ (:integer seek-set "SEEK_SET" nil t)
+ (:integer seek-cur "SEEK_CUR" nil t)
+ (:integer seek-end "SEEK_END" nil t)
 
  ;; fcntl()
- (:integer f-dupfd "F_DUPFD")
- (:integer f-getfd "F_GETFD")
- (:integer f-setfd "F_SETFD")
- (:integer f-getfl "F_GETFL")
- (:integer f-setfl "F_SETFL")
- (:integer f-getlk "F_GETLK")
- (:integer f-setlk "F_SETLK")
- (:integer f-setlkw "F_SETLKW")
- (:integer f-getown "F_GETOWN")
- (:integer f-setown "F_SETOWN")
+ (: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()
  (:type cc-t "cc_t")
- (:type speed-t "speed_t")
- (:type tcflag-t "tcflag_t")
- (:integer nccs "NCCS")
+ (:type speed-t "speed_t" nil t)
+ (:type tcflag-t "tcflag_t" nil t)
+ (:integer nccs "NCCS" nil t)
  
  (:structure alien-termios
             ("struct termios"
              (tcflag-t lflag "tcflag_t" "c_lflag")
              ((array cc-t) cc "cc_t" "c_cc")))
  
- (:integer veof "VEOF")
- (:integer veol "VEOL")
- (:integer verase "VERASE")
- (:integer vintr "VINTR")
- (:integer vkill "VKILL")
- (:integer vmin "VMIN")
- (:integer vquit "VQUIT")
- (:integer vstart "VSTART")
- (:integer vstop "VSTOP")
- (:integer vsusp "VSUSP")
- (:integer vtime "VTIME")
+ (: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")
- (:integer icrnl "ICRNL")
- (:integer ignbrk "IGNBRK")
- (:integer igncr "IGNCR")
- (:integer ignpar "IGNPAR")
- (:integer inlcr "INLCR")
- (:integer inpck "INPCK")
- (:integer istrip "ISTRIP")
+ (: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")
- (:integer ixoff "IXOFF")
- (:integer ixon "IXON")
- (:integer parmrk "PARMRK")
+ (:integer ixany "IXANY" nil t)
+ (:integer ixoff "IXOFF" nil t)
+ (:integer ixon "IXON" nil t)
+ (:integer parmrk "PARMRK" nil t)
 
- (:integer opost "OPOST")
+ (:integer opost "OPOST" nil t)
  #+xsi
- (:integer onlcr "ONLCR")
- (:integer ocrnl "OCRNL")
- (:integer onlret "ONLRET")
- (:integer ofill "OFILL")
- (:integer nldly "NLDLY")
- (:integer nl0 "NL0")
- (:integer nl1 "NL1")
- (:integer crdly "CRDLY")
- (:integer cr0 "CR0")
- (:integer cr1 "CR1")
- (:integer cr2 "CR2")
- (:integer cr3 "CR3")
- (:integer tabdly "TABDLY")
- (:integer tab0 "TAB0")
- (:integer tab1 "TAB1")
- (:integer tab2 "TAB2")
- (:integer tab3 "TAB3")
- (:integer bsdly "BSDLY")
- (:integer bs0 "BS0")
- (:integer bs1 "BS1")
- (:integer vtdly "VTDLY")
- (:integer vt0 "VT0")
- (:integer vt1 "VT1")
- (:integer ffdly "FFDLY")
- (:integer ff0 "FF0")
- (:integer ff1 "FF1")
+ (: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")
- (:integer b50 "B50")
- (:integer b75 "B75")
- (:integer b110 "B110")
- (:integer b134 "B134")
- (:integer b150 "B150")
- (:integer b200 "B200")
- (:integer b300 "B300")
- (:integer b600 "B600")
- (:integer b1200 "B1200")
- (:integer b1800 "B1800")
- (:integer b2400 "B2400")
- (:integer b4800 "B4800")
- (:integer b9600 "B9600")
- (:integer b19200 "B19200")
- (:integer b38400 "B38400")
+ (: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 csize "CSIZE")
- (:integer cs5 "CS5")
- (:integer cs6 "CS6")
- (:integer cs7 "CS7")
- (:integer cs8 "CS8")
- (:integer cstopb "CSTOPB")
- (:integer cread "CREAD")
- (:integer parenb "PARENB")
- (:integer parodd "PARODD")
- (:integer hupcl "HUPCL")
- (:integer clocal "CLOCAL")
+ (: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")
- (:integer echoe "ECHOE")
- (:integer echok "ECHOK")
- (:integer echonl "ECHONL")
- (:integer icanon "ICANON")
- (:integer iexten "IEXTEN")
- (:integer isig "ISIG")
- (:integer noflsh "NOFLSH")
- (:integer tostop "TOSTOP")
+ (: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")
- (:integer tcsadrain "TCSADRAIN")
- (:integer tcsaflush "TCSAFLUSH")
+ (:integer tcsanow "TCSANOW" nil t)
+ (:integer tcsadrain "TCSADRAIN" nil t)
+ (:integer tcsaflush "TCSAFLUSH" nil t)
 
- (:integer tciflush "TCIFLUSH")
- (:integer tcioflush "TCIOFLUSH")
- (:integer tcoflush "TCOFLUSH")
- (:integer tcioff "TCIOFF")
- (:integer tcion "TCION")
- (:integer tcooff "TCOOFF")
- (:integer tcoon "TCOON")
+ (: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)
  
  )
index e174321..335b095 100644 (file)
@@ -1,4 +1,15 @@
 (defpackage :sb-posix (:use)
-  (:export #:syscall-error #:syscall-errno))
+  (:export #:syscall-error #:syscall-errno
+
+          ;; grovel structure accessors
+          
+          #:dirent-name
+
+          ;; wrapper class accessors
+          
+          #:stat-mode #:stat-ino #:stat-dev #:stat-nlink #:stat-uid
+          #:stat-gid #:stat-size #:stat-atime #:stat-mtime #:stat-ctime
+          #:termios-iflag #:termios-oflag #:termios-cflag
+          #:termios-lflag #:termios-cc))
 
 (defpackage :sb-posix-internal (:use #:sb-alien #:cl))
index 4d17eca..4152a20 100644 (file)
@@ -163,16 +163,16 @@ the protocol-class."
 (define-call "getpagesize" int minusp)
 
 (defclass sb-posix::stat ()
-     ((sb-posix::mode :initarg :mode :accessor sb-posix::stat-mode)
-      (sb-posix::ino :initarg :ino :accessor sb-posix::stat-ino)
-      (sb-posix::dev :initarg :dev :accessor sb-posix::stat-dev)
-      (sb-posix::nlink :initarg :nlink :accessor sb-posix::stat-nlink)
-      (sb-posix::uid :initarg :uid :accessor sb-posix::stat-uid)
-      (sb-posix::gid :initarg :gid :accessor sb-posix::stat-gid)
-      (sb-posix::size :initarg :size :accessor sb-posix::stat-size)
-      (sb-posix::atime :initarg :atime :accessor sb-posix::stat-atime)
-      (sb-posix::mtime :initarg :mtime :accessor sb-posix::stat-mtime)
-      (sb-posix::ctime :initarg :ctime :accessor sb-posix::stat-ctime)))
+     ((sb-posix::mode :initarg :mode :accessor sb-posix:stat-mode)
+      (sb-posix::ino :initarg :ino :accessor sb-posix:stat-ino)
+      (sb-posix::dev :initarg :dev :accessor sb-posix:stat-dev)
+      (sb-posix::nlink :initarg :nlink :accessor sb-posix:stat-nlink)
+      (sb-posix::uid :initarg :uid :accessor sb-posix:stat-uid)
+      (sb-posix::gid :initarg :gid :accessor sb-posix:stat-gid)
+      (sb-posix::size :initarg :size :accessor sb-posix:stat-size)
+      (sb-posix::atime :initarg :atime :accessor sb-posix:stat-atime)
+      (sb-posix::mtime :initarg :mtime :accessor sb-posix:stat-mtime)
+      (sb-posix::ctime :initarg :ctime :accessor sb-posix:stat-ctime)))
 
 (defmacro define-stat-call (name arg designator-fun type)
   ;; FIXME: this isn't the documented way of doing this, surely?
@@ -228,11 +228,11 @@ the protocol-class."
   (values (aref filedes2 0) (aref filedes2 1)))
 
 (defclass sb-posix::termios ()
-     ((sb-posix::iflag :initarg :iflag :accessor sb-posix::termios-iflag)
-      (sb-posix::oflag :initarg :oflag :accessor sb-posix::termios-oflag)
-      (sb-posix::cflag :initarg :cflag :accessor sb-posix::termios-cflag)
-      (sb-posix::lflag :initarg :lflag :accessor sb-posix::termios-lflag)
-      (sb-posix::cc :initarg :cc :accessor sb-posix::termios-cc)))
+     ((sb-posix::iflag :initarg :iflag :accessor sb-posix:termios-iflag)
+      (sb-posix::oflag :initarg :oflag :accessor sb-posix:termios-oflag)
+      (sb-posix::cflag :initarg :cflag :accessor sb-posix:termios-cflag)
+      (sb-posix::lflag :initarg :lflag :accessor sb-posix:termios-lflag)
+      (sb-posix::cc :initarg :cc :accessor sb-posix:termios-cc)))
 
 (export 'sb-posix::tcsetattr :sb-posix)
 (declaim (inline sb-posix::tcsetattr))
index 0b23868..871517f 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.10.76"
+"0.8.10.77"