Changeset 10053


Ignore:
Timestamp:
Jul 16, 2008, 2:23:17 PM (11 years ago)
Author:
gb
Message:

Conditionalize for Solaris.

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

Legend:

Unmodified
Added
Removed
  • trunk/source/level-1/l1-streams.lisp

    r9886 r10053  
    2828  (require "DARWINX8664-SYSCALLS")
    2929  #+freebsdx8664-target
    30   (require "X8664-FREEBSD-SYSCALLS"))
     30  (require "X8664-FREEBSD-SYSCALLS")
     31  #+solarisx8664-target
     32  (require "X8664-SOLARIS-SYSCALLS"))
    3133
    3234;;;
  • trunk/source/level-1/linux-files.lisp

    r9212 r10053  
    2828  #+(and freebsd-target x8664-target)
    2929  (require "X8664-FREEBSD-SYSCALLS")
     30  #+(and solaris-target x8664-target)
     31  (require "X8664-SOLARIS-SYSCALLS")
    3032  )
    3133
     
    266268       (pref stat :stat.st_mode)
    267269       (pref stat :stat.st_size)
    268        #+linux-target
     270       #+(or linux-target solaris-target)
    269271       (pref stat :stat.st_mtim.tv_sec)
    270        #-linux-target
     272       #-(or linux-target solaris-target)
    271273       (pref stat :stat.st_mtimespec.tv_sec)
    272274       (pref stat :stat.st_ino)
    273275       (pref stat :stat.st_uid)
    274276       (pref stat :stat.st_blksize)
    275        #+linux-target
     277       #+(or linux-target solaris-target)
    276278       (round (pref stat :stat.st_mtim.tv_nsec) 1000)
    277        #-linux-target
     279       #-(or linux-target solaris-target)
    278280       (round (pref stat :stat.st_mtimespec.tv_nsec) 1000)
    279281       (pref stat :stat.st_gid))
     
    346348    (%get-cstring (%inc-ptr buf (* #+linux-target #$_UTSNAME_LENGTH
    347349                                   #+darwin-target #$_SYS_NAMELEN
    348                                    #+freebsd-target #$SYS_NMLN idx)))
     350                                   #+(or freebsd-target solaris-target) #$SYS_NMLN
     351                                   idx)))
    349352    "unknown"))
    350353
     
    393396    (%uts-string (#___xuname #$SYS_NMLN buf) idx buf)))
    394397
     398#+solaris-target
     399(defun %uname (idx)
     400  (%stack-block ((buf (* #$SYS_NMLN 5)))
     401    (%uts-string (#_uname buf) idx buf)))
     402
    395403(defun fd-dup (fd)
    396404  (syscall syscalls::dup fd))
    397405
    398406(defun fd-fsync (fd)
    399   (syscall syscalls::fsync fd))
     407  #-solaris-target
     408  (syscall syscalls::fsync fd)
     409  #+solaris-target
     410  (syscall syscalls::fdsync fd #$FSYNC))
    400411
    401412(defun fd-get-flags (fd)
     
    493504
    494505(defun %%rusage (usage &optional (who #$RUSAGE_SELF))
    495   (syscall syscalls::getrusage who usage))
     506  #-solaris-target
     507  (syscall syscalls::getrusage who usage)
     508  #+solaris-target
     509  (syscall syscalls::rusagesys #$_RUSAGESYS_GETRUSAGE who usage)
     510  )
    496511
    497512
     
    601616
    602617;;; Kind of has something to do with files, and doesn't work in level-0.
    603 #+(or linux-target freebsd-target)
     618#+(or linux-target freebsd-target solaris-target)
    604619(defun close-shared-library (lib &key (completely t))
    605620  "If completely is T, set the reference count of library to 0. Otherwise,
     
    935950                               :signaled)
    936951                             signal
    937                              (logtest #$WCOREFLAG statusflags)))))
     952                             (logtest #-solaris-target #$WCOREFLAG
     953                                      #+solaris-target #$WCOREFLG
     954                                      statusflags)))))
    938955                 (setf (external-process-%status p) status
    939956                       (external-process-%exit-code p) code
     
    12501267                (pref info :host_basic_info.max_cpus)
    12511268                1))
    1252             #+linux-target
     1269            #+(or linux-target solaris-target)
    12531270            (or
    12541271             (let* ((n (#_sysconf #$_SC_NPROCESSORS_ONLN)))
    12551272               (declare (fixnum n))
    12561273               (if (> n 0) n))
     1274             #+linux-target
    12571275             (ignore-errors
    12581276               (with-open-file (p "/proc/cpuinfo")
  • trunk/source/level-1/x86-trap-support.lisp

    r8130 r10053  
    128128      14                                ;r14
    129129      15                                ;r15
     130      )))
     131
     132#+solarisx8664-target
     133(progn
     134  (defconstant gp-regs-offset (+ (get-field-offset :ucontext.uc_mcontext)
     135                                 (get-field-offset :mcontext_t.gregs)))
     136  (defmacro xp-gp-regs (xp) xp)
     137  (defconstant flags-register-offset #$REG_RFL)
     138  (defconstant rip-register-offset #$REG_RIP)
     139  (defun xp-mxcsr (xp)
     140    (pref xp :ucontext.uc_mcontext.fpregs.fp_reg_set.fpchip_state.mxcsr))
     141  (defparameter *encoded-gpr-to-indexed-gpr*
     142    #(14                                ;rax
     143      13                                ;rcx
     144      12                                ;rdx
     145      11                                ;rbx
     146      20                                ;rsp
     147      10                                ;rbp
     148      9                                 ;rsi
     149      8                                 ;rdi
     150      7                                 ;r8
     151      6                                 ;r9
     152      5                                 ;r10
     153      4                                 ;r11
     154      3                                 ;r12
     155      2                                 ;r13
     156      1                                 ;r14
     157      0                                 ;r15
    130158      )))
    131159
Note: See TracChangeset for help on using the changeset viewer.