From 6fc46ad12aa3e514129fd164f3cf662ba255d8e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98rjan=20Malde?= Date: Wed, 6 Sep 2023 13:10:58 +0200 Subject: groups.d/211.native_packages_cmdline.group: coreutils: partial uptime(1) functionality MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ørjan Malde --- patches/coreutils/uptime.patch | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 patches/coreutils/uptime.patch (limited to 'patches') diff --git a/patches/coreutils/uptime.patch b/patches/coreutils/uptime.patch new file mode 100644 index 00000000..2f2edcc0 --- /dev/null +++ b/patches/coreutils/uptime.patch @@ -0,0 +1,42 @@ +diff -ru coreutils-9.1.orig/src/uptime.c coreutils-9.1/src/uptime.c +--- coreutils-9.1.orig/src/uptime.c 2022-04-08 13:22:18.000000000 +0200 ++++ coreutils-9.1/src/uptime.c 2023-09-06 12:26:22.909930119 +0200 +@@ -30,6 +30,11 @@ + # include + #endif + ++#ifdef __midipix__ ++#undef sa_handler ++#include ++#endif ++ + #include "c-strtod.h" + #include "die.h" + #include "error.h" +@@ -59,6 +64,26 @@ + struct tm *tmn; + double avg[3]; + int loads; ++#ifdef __midipix__ ++ ntapi_vtbl *__ntapi; ++ nt_system_time_of_day_information stodi; ++ ++ if((ntapi_init(&__ntapi)) == 0) ++ { ++ char buf[BUFSIZ]; ++ long long nt_time; ++ __ntapi->zw_query_system_information(NT_SYSTEM_TIME_OF_DAY_INFORMATION, &stodi, sizeof(stodi), NULL); ++ nt_time = (stodi.current_time.quad - stodi.boot_time.quad) / 100000ULL; ++ sprintf(buf, "%u.%02u", nt_time / 100, nt_time % 100); ++ { ++ char *end_ptr; ++ double upsecs = c_strtod (buf, &end_ptr); ++ if (buf != end_ptr) ++ uptime = (0 <= upsecs && upsecs < TYPE_MAXIMUM (time_t) ++ ? upsecs : -1); ++ } ++ } ++#endif + #ifdef HAVE_PROC_UPTIME + FILE *fp; + -- cgit v1.2.3