// sys/times.h -- process CPU-time accounting for the GNO/ME runtime. // // Layout byte-matches GNO's own (tools/gno kernel fills it): // four clock_t fields, clock_t == unsigned long (32-bit) on this target, // so sizeof(struct tms) == 16 on both sides. times() maps to the GNO // kernel Ktimes primitive (toolset $03, func $35), which fills utime/cutime // with the process' 60 Hz tick counts and leaves stime/cstime zero. #ifndef _SYS_TIMES_H #define _SYS_TIMES_H // Single source of truth for clock_t (avoids a duplicate typedef). #include struct tms { clock_t tms_utime; // user CPU time (60 Hz ticks) for this process clock_t tms_stime; // system CPU time (always 0 under GNO) clock_t tms_cutime; // user CPU time of reaped child processes clock_t tms_cstime; // system CPU time of reaped children (always 0) }; _Static_assert(sizeof(struct tms) == 16, "struct tms must match GNO kernel layout"); clock_t times(struct tms *buf); #endif