Changeset 4828


Ignore:
Timestamp:
Jun 27, 2006, 10:36:18 AM (15 years ago)
Author:
gb
Message:

Some FreeBSD changes/conditionalization. Maybe not enough.

Location:
trunk/ccl/level-1
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/level-1/l1-sockets.lisp

    r4605 r4828  
    158158  (require "X8664-LINUX-SYSCALLS")
    159159  #+darwin-target
    160   (require "DARWIN-SYSCALLS"))
     160  (require "DARWIN-SYSCALLS")
     161  #+freebsdx8664-target
     162  (require "X8664-FREEBSD-SYSCALLS")
     163  )
    161164
    162165(define-condition socket-error (simple-stream-error)
     
    708711                      (or (eql res (- #$ENETDOWN))
    709712                          (eql res (- #+linux-target #$EPROTO
    710                                       #+darwin-target #$EPROTOTYPE))
     713                                      #+(or darwin-target freebsd-target) #$EPROTOTYPE))
    711714                          (eql res (- #$ENOPROTOOPT))
    712715                          (eql res (- #$EHOSTDOWN))
    713716                          (eql res (- #+linux-target #$ENONET
    714                                       #+darwin-target #$ENETDOWN))
     717                                      #+(or darwin-target freebsd-target) #$ENETDOWN))
    715718                          (eql res (- #$EHOSTUNREACH))
    716719                          (eql res (- #$EOPNOTSUPP))
     
    10301033  (with-cstrs ((name string))
    10311034    (rlet ((addr :in_addr))
    1032       (let* ((result (#_inet_aton name addr)))
     1035      (let* ((result #+freebsd-target (#___inet_aton name addr)
     1036                     #-freebsd-target (#_inet_aton name addr)))
    10331037        (unless (eql result 0)
    10341038          (pref addr :in_addr.s_addr))))))
    10351039
    10361040(defun c_socket (domain type protocol)
    1037   #+(or darwinppc-target linuxx8664-target)
     1041  #-linuxppc-target
    10381042  (syscall syscalls::socket domain type protocol)
    10391043  #+linuxppc-target
     
    10821086
    10831087(defun c_bind (sockfd sockaddr addrlen)
    1084   #+(or darwinppc-target linuxx8664-target)
    1085   (progn
    1086     #+darwinppc-target
     1088  #+(or darwinppc-target linuxx8664-target freebsd-target)
     1089  (progn
     1090    #+(or darwinppc-target freebsd-target)
    10871091    (setf (pref sockaddr :sockaddr_in.sin_len) addrlen)
    10881092    (syscall syscalls::bind sockfd sockaddr addrlen))
     
    11031107
    11041108(defun c_connect (sockfd addr len)
    1105   #+(or darwinppc-target linuxx8664-target)
     1109  #+(or darwinppc-target linuxx8664-target freebsd-target)
    11061110  (syscall syscalls::connect sockfd addr len)
    11071111  #+linuxppc-target
     
    11211125
    11221126(defun c_listen (sockfd backlog)
    1123   #+(or darwinppc-target linuxx8664-target)
     1127  #+(or darwinppc-target linuxx8664-target freebsd-target)
    11241128  (syscall syscalls::listen sockfd backlog)
    11251129  #+linuxppc-target
     
    11371141
    11381142(defun c_accept (sockfd addrp addrlenp)
    1139   #+(or darwinppc-target linuxx8664-target)
     1143  #+(or darwinppc-target linuxx8664-target freebsd-target)
    11401144  (syscall syscalls::accept sockfd addrp addrlenp)
    11411145  #+linuxppc-target
     
    11551159
    11561160(defun c_getsockname (sockfd addrp addrlenp)
    1157   #+(or darwinppc-target linuxx8664-target)
     1161  #+(or darwinppc-target linuxx8664-target freebsd-target)
    11581162  (syscall syscalls::getsockname sockfd addrp addrlenp)
    11591163  #+linuxppc-target
     
    11731177
    11741178(defun c_getpeername (sockfd addrp addrlenp)
    1175   #+(or darwinppc-target linuxx8664-target)
     1179  #+(or darwinppc-target linuxx8664-target freebsd-target)
    11761180  (syscall syscalls::getpeername sockfd addrp addrlenp)
    11771181  #+linuxppc-target
     
    11911195
    11921196(defun c_socketpair (domain type protocol socketsptr)
    1193   #+(or darwinppc-target linuxx8664-target)
     1197  #+(or darwinppc-target linuxx8664-target freebsd-target)
    11941198  (syscall syscalls::socketpair domain type protocol socketsptr)
    11951199  #+linuxppc-target
     
    12131217
    12141218(defun c_sendto (sockfd msgptr len flags addrp addrlen)
    1215   #+(or darwinppc-target linuxx8664-target)
     1219  #+(or darwinppc-target linuxx8664-target freebsd-target)
    12161220  (syscall syscalls::sendto sockfd msgptr len flags addrp addrlen)
    12171221  #+linuxppc-target
     
    12371241
    12381242(defun c_recvfrom (sockfd bufptr len flags addrp addrlenp)
    1239   #+(or darwinppc-target linuxx8664-target)
     1243  #+(or darwinppc-target linuxx8664-target freebsd-target)
    12401244  (syscall syscalls::recvfrom sockfd bufptr len flags addrp addrlenp)
    12411245  #+linuxppc-target
     
    12611265
    12621266(defun c_shutdown (sockfd how)
    1263   #+(or darwinppc-target linuxx8664-target)
     1267  #+(or darwinppc-target linuxx8664-target freebsd-target)
    12641268  (syscall syscalls::shutdown sockfd how)
    12651269  #+linuxppc-target
     
    12771281
    12781282(defun c_setsockopt (sockfd level optname optvalp optlen)
    1279   #+(or darwinppc-target linuxx8664-target)
     1283  #+(or darwinppc-target linuxx8664-target freebsd-target)
    12801284  (syscall syscalls::setsockopt sockfd level optname optvalp optlen)
    12811285  #+linuxppc-target
     
    12991303
    13001304(defun c_getsockopt (sockfd level optname optvalp optlenp)
    1301   #+(or darwinppc-target linuxx8664-target)
     1305  #+(or darwinppc-target linuxx8664-target freebsd-target)
    13021306  (syscall syscalls::getsockopt sockfd level optname optvalp optlenp)
    13031307  #+linuxppc-target
     
    13211325
    13221326(defun c_sendmsg (sockfd msghdrp flags)
    1323   #+(or darwinppc-target linuxx8664-target)
     1327  #+(or darwinppc-target linuxx8664-target freebsd-target)
    13241328  (syscall syscalls::sendmsg sockfd msghdrp flags)
    13251329  #+linuxppc-target
     
    13391343
    13401344(defun c_recvmsg (sockfd msghdrp flags)
    1341   #+(or darwinppc-target linuxx8664-target)
     1345  #+(or darwinppc-target linuxx8664-target freebsd-target)
    13421346  (syscall syscalls::recvmsg sockfd msghdrp flags)
    13431347  #+linuxppc-target
  • trunk/ccl/level-1/l1-streams.lisp

    r4628 r4828  
    2424  (require "X8664-LINUX-SYSCALLS")
    2525  #+darwin-target
    26   (require "DARWIN-SYSCALLS"))
     26  (require "DARWIN-SYSCALLS")
     27  #+freebsdx8664-target
     28  (require "X8664-FREEBSD-SYSCALLS"))
    2729
    2830;;;
  • trunk/ccl/level-1/linux-files.lisp

    r4689 r4828  
    2323  (require "X8664-LINUX-SYSCALLS")
    2424  #+darwin-target
    25   (require "DARWIN-SYSCALLS"))
     25  (require "DARWIN-SYSCALLS")
     26  #+(and freebsd-target x8664-target)
     27  (require "X8664-FREEBSD-SYSCALLS")
     28  )
    2629
    2730
     
    186189  )
    187190
     191#-freebsd-target
    188192(defun setenv (key value &optional (overwrite t))
    189193  "Set the value of the environment variable named by name, in the OS
     
    218222       #+linux-target
    219223       (pref stat :stat.st_mtim.tv_sec)
    220        #+darwinppc-target
     224       #-linux-target
    221225       (pref stat :stat.st_mtimespec.tv_sec)
    222226       (pref stat :stat.st_ino)
     
    231235     #+linux-target
    232236     (#_ __xstat #$_STAT_VER_LINUX cname stat)
    233      #+darwinppc-target
     237     #-linux-target
    234238     (syscall syscalls::stat cname stat)
    235239     stat)))
     
    239243   #+linux-target
    240244   (#_ __fxstat #$_STAT_VER_LINUX fd stat)
    241    #+darwinppc-target
     245   #+(or darwinppc-target freebsd-target)
    242246   (syscall syscalls::fstat fd stat)
    243247   stat))
     
    248252     #+linux-target
    249253     (#_ __lxstat #$_STAT_VER_LINUX cname stat)
    250      #+darwinppc-target
     254     #-linux-target
    251255     (syscall syscalls::lstat cname stat)
    252256     stat)))
     
    288292  (if (eql 0 result)
    289293    (%get-cstring (%inc-ptr buf (* #+linux-target #$_UTSNAME_LENGTH
    290                                    #+darwinppc-target #$_SYS_NAMELEN idx)))
     294                                   #+darwinppc-target #$_SYS_NAMELEN
     295                                   #+freebsd-target #$SYS_NMLN idx)))
    291296    "unknown"))
    292297
     
    301306  (%stack-block ((buf (* #$_SYS_NAMELEN 5)))
    302307    (%uts-string (#_uname buf) idx buf)))
     308
     309#+freebsd-target
     310(defun %uname (idx)
     311  (%stack-block ((buf (* #$SYS_NMLN 5)))
     312    (%uts-string (#___xuname #$SYS_NMLN buf) idx buf)))
    303313
    304314(defun fd-dup (fd)
     
    434444by uid. This value comes from the OS user database, not from the $HOME
    435445environment variable. Returns NIL if there is no user with the ID uid."
    436   (with-macptrs ((pw (#_getpwuid userid)))
    437     (unless (%null-ptr-p pw)
    438       (without-interrupts
    439        (%get-cstring (pref pw :passwd.pw_dir))))))
     446  (rlet ((pwd :passwd)
     447         (result :address))
     448    (do* ((buflen 512 (* 2 buflen)))
     449         ()
     450      (%stack-block ((buf buflen))
     451        (let* ((err (#_getpwuid_r userid pwd buf buflen result)))
     452          (if (eql 0 err)
     453            (return (%get-cstring (pref pwd :passwd.pw_dir)))
     454            (unless (eql err #$ERANGE)
     455              (return nil))))))))
    440456
    441457(defun %delete-file (name)
     
    10971113                              (whitespacep (schar line matchlen)))
    10981114                         (incf ncpu)))))))
    1099              1))))
     1115             1)
     1116            #+freebsd-target
     1117            (%stack-block ((ret (record-length :uint))
     1118                           (mib (* (record-length :uint))))
     1119              (setf (%get-unsigned-long mib 0)
     1120                    #$CTL_HW
     1121                    (%get-unsigned-long mib (record-length :uint))
     1122                    #$HW_NCPU)
     1123              (rlet ((oldsize :uint (record-length :uint)))
     1124                (if (eql 0 (#_sysctl mib 2 ret oldsize (%null-ptr) 0))
     1125                  (pref ret :uint)
     1126                  1)))
     1127            )))
Note: See TracChangeset for help on using the changeset viewer.