summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorcheloha <cheloha@cvs.openbsd.org>2020-06-22 21:16:08 +0000
committercheloha <cheloha@cvs.openbsd.org>2020-06-22 21:16:08 +0000
commite6cb112a7295344bce1bf1f3e7331d85ad0f15c7 (patch)
tree5118b6fc9af736085ba4a7b992b57b7d9684e9b7 /usr.bin
parent0b079107c7cba84791dceb493c8615f29f3edcd6 (diff)
timecounting: add gettime(9), getuptime(9)
time_second and time_uptime are used widely in the tree. This is a problem on 32-bit platforms because time_t is 64-bit, so there is a potential split-read whenever they are used at or below IPL_CLOCK. Here are two replacement interfaces: gettime(9) and getuptime(9). The "get" prefix signifies that they do not read the hardware timecounter, i.e. they are fast and low-res. The lack of a unit (e.g. micro, nano) signifies that they yield a plain time_t. As an optimization on LP64 platforms we can just return time_second or time_uptime, as a single read is atomic. On 32-bit platforms we need to do the lockless read loop and get the values from the timecounter. In a subsequent diff these will be substituted for time_second and time_uptime almost everywhere in the kernel. With input from visa@ and dlg@. ok kettenis@
Diffstat (limited to 'usr.bin')
0 files changed, 0 insertions, 0 deletions