aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os/time.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/os/time.h')
-rw-r--r--src/nvim/os/time.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/nvim/os/time.h b/src/nvim/os/time.h
new file mode 100644
index 0000000000..ef795d03be
--- /dev/null
+++ b/src/nvim/os/time.h
@@ -0,0 +1,35 @@
+#ifndef NEOVIM_OS_TIME_H
+#define NEOVIM_OS_TIME_H
+
+#include <stdint.h>
+#include <stdbool.h>
+
+/// Initializes the time module
+void time_init(void);
+
+/// Sleeps for a certain amount of milliseconds
+///
+/// @param milliseconds Number of milliseconds to sleep
+/// @param ignoreinput If true, allow a SIGINT to interrupt us
+void os_delay(uint64_t milliseconds, bool ignoreinput);
+
+/// Sleeps for a certain amount of microseconds
+///
+/// @param microseconds Number of microseconds to sleep
+/// @param ignoreinput If true, allow a SIGINT to interrupt us
+void os_microdelay(uint64_t microseconds, bool ignoreinput);
+
+/// Portable version of POSIX localtime_r()
+///
+/// @return NULL in case of error
+struct tm *os_localtime_r(const time_t *clock, struct tm *result);
+
+/// Obtains the current UNIX timestamp and adjusts it to local time
+///
+/// @param result Pointer to a 'struct tm' where the result should be placed
+/// @return A pointer to a 'struct tm' in the current time zone (the 'result'
+/// argument) or NULL in case of error
+struct tm *os_get_localtime(struct tm *result);
+
+#endif // NEOVIM_OS_TIME_H
+