X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fwin32-os.lisp;h=b5489051497f6240fb8fbec2cdb3a09c5da17956;hb=3e3cd66f482339be3b2eab942e00147c3e343434;hp=dddc8a0243bea2381480746f81da82b5c93791a1;hpb=b0a7abdf2bd6f2d66fcce97196024cdb0e1a1886;p=sbcl.git diff --git a/src/code/win32-os.lisp b/src/code/win32-os.lisp index dddc8a0..b548905 100644 --- a/src/code/win32-os.lisp +++ b/src/code/win32-os.lisp @@ -24,23 +24,21 @@ #!+sb-doc "Return a string describing version of the supporting software, or NIL if not available." - nil ;; FIXME: Implement. - #+nil(or *software-version* + (or *software-version* (setf *software-version* - (string-trim '(#\newline) - (with-output-to-string (stream) - (sb!ext:run-program "/bin/uname" `("-r") - :output stream)))))) + (multiple-value-bind + (major-version minor-version build-number platform-id csd-version) + (sb!win32:get-version-ex) + (declare (ignore platform-id)) + (format nil (if (zerop (length csd-version)) + "~A.~A.~A" + "~A.~A.~A (~A)") + major-version minor-version build-number csd-version))))) -;;; Return system time, user time and number of page faults. +;;; Return user time, system time, and number of page faults. (defun get-system-info () -#+nil (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." (strerror utime))) - (values utime stime majflt))) + (sb!win32:with-process-times (creation-time exit-time kernel-time user-time) + (values (floor user-time 10) (floor kernel-time 10) 0))) ;;; Return the system page size. (defun get-page-size () @@ -48,3 +46,7 @@ ;; FIXME: Or we could just get rid of this, since the uses of it look ;; disposable. 4096) + +;;; support for CL:MACHINE-VERSION defined OAOO elsewhere +(defun get-machine-version () + nil)