summaryrefslogtreecommitdiff
path: root/minix/lib/libsys/getuptime.c
blob: 298c787fcd0856fabfcc08cd0365b85ce728bb5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "sysutil.h"

/*
 * Retrieve the system's uptime (number of clock ticks since system boot),
 * real time (corrected number of clock ticks since system boot), and
 * boot time (in number of seconds since the UNIX epoch).
 */
int
getuptime(clock_t * uptime, clock_t * realtime, time_t * boottime)
{
	struct minix_kerninfo *minix_kerninfo;

	minix_kerninfo = get_minix_kerninfo();

	/* We assume atomic 32-bit field retrieval.  TODO: 64-bit support. */
	if (uptime != NULL)
		*uptime = minix_kerninfo->kclockinfo->uptime;
	if (realtime != NULL)
		*realtime = minix_kerninfo->kclockinfo->realtime;
	if (boottime != NULL)
		*boottime = minix_kerninfo->kclockinfo->boottime;

	return OK;
}