1433d6423SLionel Sambuc #include "sysutil.h" 2433d6423SLionel Sambuc 3d91f738bSDavid van Moolenbroek /* 4d91f738bSDavid van Moolenbroek * Retrieve the system's uptime (number of clock ticks since system boot), 5d91f738bSDavid van Moolenbroek * real time (corrected number of clock ticks since system boot), and 6d91f738bSDavid van Moolenbroek * boot time (in number of seconds since the UNIX epoch). 7d91f738bSDavid van Moolenbroek */ 8d91f738bSDavid van Moolenbroek int getuptime(clock_t * uptime,clock_t * realtime,time_t * boottime)9d91f738bSDavid van Moolenbroekgetuptime(clock_t * uptime, clock_t * realtime, time_t * boottime) 10433d6423SLionel Sambuc { 11d91f738bSDavid van Moolenbroek struct minix_kerninfo *minix_kerninfo; 12433d6423SLionel Sambuc 13d91f738bSDavid van Moolenbroek minix_kerninfo = get_minix_kerninfo(); 14d91f738bSDavid van Moolenbroek 15d91f738bSDavid van Moolenbroek /* We assume atomic 32-bit field retrieval. TODO: 64-bit support. */ 16*25d39513SDavid van Moolenbroek if (uptime != NULL) 17d91f738bSDavid van Moolenbroek *uptime = minix_kerninfo->kclockinfo->uptime; 18*25d39513SDavid van Moolenbroek if (realtime != NULL) 19d91f738bSDavid van Moolenbroek *realtime = minix_kerninfo->kclockinfo->realtime; 20*25d39513SDavid van Moolenbroek if (boottime != NULL) 21d91f738bSDavid van Moolenbroek *boottime = minix_kerninfo->kclockinfo->boottime; 22d91f738bSDavid van Moolenbroek 23d91f738bSDavid van Moolenbroek return OK; 24433d6423SLionel Sambuc } 25