summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorMitya Selivanov <automainint@guattari.tech>2023-01-01 17:32:57 +0100
committerMitya Selivanov <automainint@guattari.tech>2023-01-01 17:32:57 +0100
commitee93be501e479668b27c416522ca9282c11f0ef2 (patch)
treed25df575db44e55339dd897855262c15363a0d72 /source
parent68b1712ec254494de2f3dbd6442ec791348b306a (diff)
downloadkit-ee93be501e479668b27c416522ca9282c11f0ef2.zip
Refactor: remove custom time.h, use _GNU_SOURCE instead
Diffstat (limited to 'source')
-rw-r--r--source/kit/CMakeLists.txt3
-rw-r--r--source/kit/mutex.h4
-rw-r--r--source/kit/secure_random.c2
-rw-r--r--source/kit/secure_random.h2
-rw-r--r--source/kit/thread.h4
-rw-r--r--source/kit/time.c65
-rw-r--r--source/kit/time.h33
7 files changed, 10 insertions, 103 deletions
diff --git a/source/kit/CMakeLists.txt b/source/kit/CMakeLists.txt
index b672a80..101e2a8 100644
--- a/source/kit/CMakeLists.txt
+++ b/source/kit/CMakeLists.txt
@@ -1,7 +1,7 @@
target_sources(
kit
PRIVATE
- input_buffer.c bigint.c status.c time.c secure_random.c
+ input_buffer.c bigint.c status.c secure_random.c
thread.posix.c atomic.win32.c condition_variable.c thread.win32.c
move_back.c input_stream.c lower_bound.c file.c string_ref.c
async_function.c allocator.c array_ref.c dynamic_array.c mutex.c
@@ -9,7 +9,6 @@ target_sources(
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/mutex.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/status.h>
- $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/time.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/atomic.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/allocator.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/string_ref.h>
diff --git a/source/kit/mutex.h b/source/kit/mutex.h
index 6d2d230..7816301 100644
--- a/source/kit/mutex.h
+++ b/source/kit/mutex.h
@@ -3,7 +3,9 @@
#ifndef KIT_DISABLE_SYSTEM_THREADS
# include "thread_defs.h"
-# include "time.h"
+
+# define _GNU_SOURCE
+# include <time.h>
# if !defined(_WIN32) || defined(__CYGWIN__)
# include <pthread.h>
diff --git a/source/kit/secure_random.c b/source/kit/secure_random.c
index 3112167..5629daf 100644
--- a/source/kit/secure_random.c
+++ b/source/kit/secure_random.c
@@ -3,7 +3,7 @@
#include "condition_variable.h"
#include "mersenne_twister_64.h"
#include "mutex.h"
-#include "time.h"
+
#include <assert.h>
#include <stdio.h>
diff --git a/source/kit/secure_random.h b/source/kit/secure_random.h
index 758478d..e7a80c2 100644
--- a/source/kit/secure_random.h
+++ b/source/kit/secure_random.h
@@ -2,6 +2,8 @@
#define KIT_SECURE_RANDOM_H
#include "status.h"
+
+#define _GNU_SOURCE
#include <stddef.h>
#include <stdint.h>
diff --git a/source/kit/thread.h b/source/kit/thread.h
index eff2684..e8fb7e8 100644
--- a/source/kit/thread.h
+++ b/source/kit/thread.h
@@ -3,8 +3,10 @@
#ifndef KIT_DISABLE_SYSTEM_THREADS
# include "thread_defs.h"
-# include "time.h"
+
+# define _GNU_SOURCE
# include <stddef.h>
+# include <time.h>
# if defined(__cplusplus)
# define _Noreturn [[noreturn]]
diff --git a/source/kit/time.c b/source/kit/time.c
deleted file mode 100644
index ccd3835..0000000
--- a/source/kit/time.c
+++ /dev/null
@@ -1,65 +0,0 @@
-#include "time.h"
-
-#ifdef KIT_NEED_TIMESPEC_GET
-
-# if defined(_WIN32) && !defined(__CYGWIN__)
-
-# ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN 1
-# endif
-# include <windows.h>
-
-int timespec_get(struct timespec *ts, int base) {
-/* difference between 1970 and 1601 */
-# define _TIMESPEC_IMPL_UNIX_EPOCH_IN_TICKS 116444736000000000ull
-/* 1 tick is 100 nanoseconds */
-# define _TIMESPEC_IMPL_TICKS_PER_SECONDS 10000000ull
- if (ts == NULL)
- return 0;
- if (base == TIME_UTC) {
- FILETIME ft;
- ULARGE_INTEGER date;
- LONGLONG ticks;
-
- GetSystemTimeAsFileTime(&ft);
- date.HighPart = ft.dwHighDateTime;
- date.LowPart = ft.dwLowDateTime;
- ticks = (LONGLONG) (date.QuadPart -
- _TIMESPEC_IMPL_UNIX_EPOCH_IN_TICKS);
- ts->tv_sec = ticks / _TIMESPEC_IMPL_TICKS_PER_SECONDS;
- ts->tv_nsec = (ticks % _TIMESPEC_IMPL_TICKS_PER_SECONDS) * 100;
- return base;
- }
- return 0;
-# undef _TIMESPEC_IMPL_UNIX_EPOCH_IN_TICKS
-# undef _TIMESPEC_IMPL_TICKS_PER_SECONDS
-}
-
-# elif defined(KIT_HAVE_CLOCK_GETTIME)
-int timespec_get(struct timespec *ts, int base) {
- if (ts == NULL)
- return 0;
- if (base == TIME_UTC) {
- clock_gettime(CLOCK_REALTIME, ts);
- return base;
- }
- return 0;
-}
-# else
-# include <sys/time.h>
-
-int timespec_get(struct timespec *ts, int base) {
- if (ts == NULL)
- return 0;
- if (base == TIME_UTC) {
- struct timeval tv;
- gettimeofday(&tv, NULL);
- ts->tv_sec = tv.tv_sec;
- ts->tv_nsec = tv.tv_usec * 1000;
- return base;
- }
- return 0;
-}
-# endif
-
-#endif
diff --git a/source/kit/time.h b/source/kit/time.h
deleted file mode 100644
index cf54d47..0000000
--- a/source/kit/time.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef KIT_TIME_H
-#define KIT_TIME_H
-
-#include <time.h>
-
-#ifndef TIME_UTC
-# define TIME_UTC 1
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef KIT_NEED_STRUCT_TIMESPEC
-# ifdef KIT_HAVE_BITS_TYPES_STRUCT_TIMESPEC_H
-# include <bits/types/struct_timespec.h>
-# else
-struct timespec {
- time_t tv_sec; /* Seconds - >= 0 */
- long tv_nsec; /* Nanoseconds - [0, 999999999] */
-};
-# endif
-#endif
-
-#ifdef KIT_NEED_TIMESPEC_GET
-int timespec_get(struct timespec *ts, int base);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif