- FT2longlong(kT,kernelTime);
- FT2longlong(uT,userTime);
- *elapsed = uT + kT;
- *user = uT;
-
- if (is_win9x) {
- /* User time is assumed to start at zero, so adjust for the fact
- that we're using system time & not process time on Win9x. */
- if (elapsed_start == 0) {
- elapsed_start = *elapsed;
- }
- *user -= elapsed_start;
+void
+getProcessTimes(Ticks *user, Ticks *elapsed)
+{
+ *user = getProcessCPUTime();
+ *elapsed = getProcessElapsedTime();
+}
+
+Ticks
+getProcessCPUTime(void)
+{
+ FILETIME creationTime, exitTime, userTime, kernelTime = {0,0};
+
+ if (isWin9x()) return getProcessElapsedTime();
+
+ if (!GetProcessTimes(GetCurrentProcess(), &creationTime,
+ &exitTime, &kernelTime, &userTime)) {
+ return 0;