PostgreSQL Source Code
git master
Loading...
Searching...
No Matches
win32getrusage.c
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* win32getrusage.c
4
* get information about resource utilisation
5
*
6
* Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7
* Portions Copyright (c) 1994, Regents of the University of California
8
*
9
*
10
* IDENTIFICATION
11
* src/port/win32getrusage.c
12
*
13
*-------------------------------------------------------------------------
14
*/
15
16
#include "
c.h
"
17
18
#include <
sys/resource.h
>
19
20
int
21
getrusage
(
int
who
,
struct
rusage
*
rusage
)
22
{
23
FILETIME
starttime;
24
FILETIME
exittime
;
25
FILETIME
kerneltime
;
26
FILETIME
usertime
;
27
ULARGE_INTEGER
li
;
28
29
if
(
who
!=
RUSAGE_SELF
)
30
{
31
/* Only RUSAGE_SELF is supported in this implementation for now */
32
errno
=
EINVAL
;
33
return
-1;
34
}
35
36
if
(
rusage
== (
struct
rusage
*)
NULL
)
37
{
38
errno
=
EFAULT
;
39
return
-1;
40
}
41
memset
(
rusage
, 0,
sizeof
(
struct
rusage
));
42
if
(
GetProcessTimes
(
GetCurrentProcess
(),
43
&starttime, &
exittime
, &
kerneltime
, &
usertime
) == 0)
44
{
45
_dosmaperr
(
GetLastError
());
46
return
-1;
47
}
48
49
/* Convert FILETIMEs (0.1 us) to struct timeval */
50
memcpy
(&
li
, &
kerneltime
,
sizeof
(
FILETIME
));
51
li
.QuadPart /= 10L;
/* Convert to microseconds */
52
rusage
->
ru_stime
.tv_sec =
li
.QuadPart / 1000000L;
53
rusage
->
ru_stime
.tv_usec =
li
.QuadPart % 1000000L;
54
55
memcpy
(&
li
, &
usertime
,
sizeof
(
FILETIME
));
56
li
.QuadPart /= 10L;
/* Convert to microseconds */
57
rusage
->
ru_utime
.tv_sec =
li
.QuadPart / 1000000L;
58
rusage
->
ru_utime
.tv_usec =
li
.QuadPart % 1000000L;
59
60
return
0;
61
}
c.h
fb
static int fb(int x)
Definition
preproc-init.c:92
resource.h
RUSAGE_SELF
#define RUSAGE_SELF
Definition
resource.h:9
rusage
Definition
resource.h:13
rusage::ru_utime
struct timeval ru_utime
Definition
resource.h:14
rusage::ru_stime
struct timeval ru_stime
Definition
resource.h:15
_dosmaperr
void _dosmaperr(unsigned long)
Definition
win32error.c:177
getrusage
int getrusage(int who, struct rusage *rusage)
Definition
win32getrusage.c:21
src
port
win32getrusage.c
Generated on Sun Feb 1 2026 12:13:17 for PostgreSQL Source Code by
1.9.8