X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flinux-os.lisp;h=1e1e7868752f72db84975841c224aea9154103ca;hb=25fe91bf63fd473d9316675b0e0ca9be0079e9eb;hp=50ae48e583226985b2bea034b90970d5f90e459a;hpb=e8c27392f426b5ebe180fa07b220a9b650a49061;p=sbcl.git diff --git a/src/code/linux-os.lisp b/src/code/linux-os.lisp index 50ae48e..1e1e786 100644 --- a/src/code/linux-os.lisp +++ b/src/code/linux-os.lisp @@ -1,4 +1,4 @@ -;;;; OS interface functions for CMU CL under Linux +;;;; OS interface functions for SBCL under Linux ;;;; This software is part of the SBCL system. See the README file for ;;;; more information. @@ -20,37 +20,27 @@ "Return a string describing the supporting software." (values "Linux")) -(defvar *software-version* nil) - +;;; FIXME: More duplicated logic here vrt. other oses. Abstract into +;;; uname-software-version? (defun software-version () #!+sb-doc "Return a string describing version of the supporting software, or NIL if not available." (or *software-version* (setf *software-version* - (string-trim '(#\newline) - (with-output-to-string (stream) - (sb!ext:run-program "/bin/uname" `("-r") - :output stream)))))) - -;;; OS-COLD-INIT-OR-REINIT initializes our operating-system interface. -;;; It sets the values of the global port variables to what they -;;; should be and calls the functions that set up the argument blocks -;;; for the server interfaces. -(defun os-cold-init-or-reinit () ; KLUDGE: don't know what to do here - #!+sparc ;; Can't use #x20000000 thru #xDFFFFFFF, but mach tries to let us. - (sb!sys:allocate-system-memory-at (sb!sys:int-sap #x20000000) #xc0000000)) + (string-trim '(#\newline) + (with-output-to-string (stream) + (sb!ext:run-program "/bin/uname" `("-r") + :output stream)))))) -;;; Return system time, user time and number of page faults. +;;; Return user time, system time, and number of page faults. (defun get-system-info () (multiple-value-bind (err? utime stime maxrss ixrss idrss isrss minflt majflt) (sb!unix:unix-getrusage sb!unix:rusage_self) (declare (ignore maxrss ixrss idrss isrss minflt)) (unless err? ; FIXME: nonmnemonic (reversed) name for ERR? - (error "Unix system call getrusage failed: ~A." - (sb!unix:get-unix-error-msg utime))) - + (error "Unix system call getrusage failed: ~A." (strerror utime))) (values utime stime majflt))) ;;; Return the system page size.