+#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \
+ { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0)
+#define __fixup_case_2 \
+ case SYS_nanosleep: \
+ __fixup(a1); break; \
+ case SYS_clock_settime: \
+ __fixup(a2); break;
+#define __fixup_case_3 \
+ case SYS_clock_nanosleep: case SYS_rt_sigtimedwait: case SYS_ppoll: \
+ __fixup(a3); break; \
+ case SYS_utimensat: \
+ if(a3) a3 = (unsigned long) ((struct __timespec_kernel[2]) { \
+ [0] = {.tv_sec = __tsc(a3)[0].tv_sec, .tv_nsec = __tsc(a3)[0].tv_nsec}, \
+ [1] = {.tv_sec = __tsc(a3)[1].tv_sec, .tv_nsec = __tsc(a3)[1].tv_nsec}, \
+ }); break;
+#define __fixup_case_4 \
+ case SYS_futex: \
+ if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) __fixup(a4); break;
+#define __fixup_case_5 \
+ case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: \
+ __fixup(a5); break;