X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fwin32.lisp;h=facc8c93ba82a9001e0b32c455b35a96b75c582c;hb=9837343101c3da7b3a8f94609ec116ec5025436a;hp=3e55344f1c75a9cfa2e45f41401d7927b1a7ba14;hpb=2b90fd1dbad23322258222a2ef4cef7f6a00831d;p=sbcl.git diff --git a/src/code/win32.lisp b/src/code/win32.lisp index 3e55344..facc8c9 100644 --- a/src/code/win32.lisp +++ b/src/code/win32.lisp @@ -191,7 +191,7 @@ ;;870 IBM EBCDIC - Multilingual/ROECE (Latin-2) (874 :CP874) ;; ANSI/OEM - Thai (same as 28605, ISO 8859-15) ;;875 IBM EBCDIC - Modern Greek - ;;932 ANSI/OEM - Japanese, Shift-JIS + (932 :CP932) ;; ANSI/OEM - Japanese, Shift-JIS ;;936 ANSI/OEM - Simplified Chinese (PRC, Singapore) ;;949 ANSI/OEM - Korean (Unified Hangul Code) ;;950 ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC) @@ -511,12 +511,20 @@ (addr ,kernel-time) (addr ,user-time)))) -(declaim (inline system-internal-real-time system-internal-run-time)) -(defun system-internal-real-time () - (with-alien ((system-time filetime)) - (syscall (("GetSystemTimeAsFileTime" 4) void (* filetime)) - (values (floor system-time 100ns-per-internal-time-unit)) - (addr system-time)))) +(declaim (inline system-internal-real-time)) + +(let ((epoch 0)) + (declare (unsigned-byte epoch)) + ;; FIXME: For optimization ideas see the unix implementation. + (defun reinit-internal-real-time () + (setf epoch 0 + epoch (get-internal-real-time))) + (defun get-internal-real-time () + (- (with-alien ((system-time filetime)) + (syscall (("GetSystemTimeAsFileTime" 4) void (* filetime)) + (values (floor system-time 100ns-per-internal-time-unit)) + (addr system-time))) + epoch))) (defun system-internal-run-time () (with-process-times (creation-time exit-time kernel-time user-time)