10.\7f\7fCVS: ----------------------------------------------------------------------
[sbcl.git] / src / code / win32-os.lisp
index dddc8a0..fa82edb 100644 (file)
   #!+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 ()