/* * Public domain * sys/time.h compatibility shim */ module libressl_d.compat.sys.time; public import core.sys.posix.sys.time; public import core.sys.windows.winsock2; extern (C): nothrow @nogc: version (Windows) { int gettimeofday(core.sys.windows.winsock2.timeval* tp, void* tzp); } version (Posix) { pragma(inline, true) pure nothrow @trusted @nogc @live void timersub(scope const core.sys.posix.sys.time.timeval* tvp, scope const core.sys.posix.sys.time.timeval* uvp, scope core.sys.posix.sys.time.timeval* vvp) in { assert(tvp != null); assert(uvp != null); assert(vvp != null); } do { vvp.tv_sec = tvp.tv_sec - uvp.tv_sec; vvp.tv_usec = tvp.tv_usec - uvp.tv_usec; if (vvp.tv_usec < 0) { vvp.tv_sec--; vvp.tv_usec += 1000000; } } }