summaryrefslogtreecommitdiffstats
path: root/system/csh/timespec.diff
diff options
context:
space:
mode:
Diffstat (limited to 'system/csh/timespec.diff')
-rw-r--r--system/csh/timespec.diff82
1 files changed, 82 insertions, 0 deletions
diff --git a/system/csh/timespec.diff b/system/csh/timespec.diff
new file mode 100644
index 0000000000..3877be355d
--- /dev/null
+++ b/system/csh/timespec.diff
@@ -0,0 +1,82 @@
+diff -Naur csh-20230828/extern.h csh-20230828.patched/extern.h
+--- csh-20230828/extern.h 2023-09-19 17:44:07.356219253 -0400
++++ csh-20230828.patched/extern.h 2023-09-19 18:07:32.732605839 -0400
+@@ -276,6 +276,7 @@
+ void settimes(void);
+ void pcsecs(long);
+ void psecs(long);
++int timespec_gettimeofday(struct timespec *restrict, struct timezone *restrict);
+
+ /*
+ * alloc.c
+diff -Naur csh-20230828/proc.c csh-20230828.patched/proc.c
+--- csh-20230828/proc.c 2023-09-19 17:44:07.349219157 -0400
++++ csh-20230828.patched/proc.c 2023-09-19 18:06:05.785406431 -0400
+@@ -121,7 +121,7 @@
+ }
+ else {
+ if (pp->p_flags & (PTIME | PPTIME) || adrof(STRtime))
+- (void) gettimeofday(&pp->p_etime, NULL);
++ (void) timespec_gettimeofday(&pp->p_etime, NULL);
+
+
+ pp->p_rusage = ru;
+@@ -507,7 +507,7 @@
+ }
+ pp->p_next = proclist.p_next;
+ proclist.p_next = pp;
+- (void) gettimeofday(&pp->p_btime, NULL);
++ (void) timespec_gettimeofday(&pp->p_btime, NULL);
+
+ }
+
+diff -Naur csh-20230828/time.c csh-20230828.patched/time.c
+--- csh-20230828/time.c 2023-09-19 17:44:07.350219170 -0400
++++ csh-20230828.patched/time.c 2023-09-19 18:08:07.012078715 -0400
+@@ -30,6 +30,7 @@
+ * SUCH DAMAGE.
+ */
+
++#include <sys/time.h>
+ #include <sys/types.h>
+ #include <stdarg.h>
+
+@@ -39,6 +40,20 @@
+ /*
+ * C Shell - routines handling process timing and niceing
+ */
++
++int
++timespec_gettimeofday(struct timespec *restrict ts, struct timezone *restrict)
++{
++ int rv;
++ struct timeval tv;
++
++ rv = gettimeofday(&tv, NULL);
++ ts->tv_sec = tv.tv_sec;
++ ts->tv_nsec = tv.tv_usec * 1000;
++
++ return rv;
++}
++
+ static void pdeltat(struct timeval *, struct timeval *);
+
+ void
+@@ -46,7 +61,7 @@
+ {
+ struct rusage ruch;
+
+- (void) gettimeofday(&time0, NULL);
++ (void) timespec_gettimeofday(&time0, NULL);
+ (void) getrusage(RUSAGE_SELF, &ru0);
+ (void) getrusage(RUSAGE_CHILDREN, &ruch);
+ ruadd(&ru0, &ruch);
+@@ -65,7 +80,7 @@
+ (void) getrusage(RUSAGE_SELF, &ru1);
+ (void) getrusage(RUSAGE_CHILDREN, &ruch);
+ ruadd(&ru1, &ruch);
+- (void) gettimeofday(&timedol, NULL);
++ (void) timespec_gettimeofday(&timedol, NULL);
+ prusage(&ru0, &ru1, &timedol, &time0);
+ }
+