What is the standard way to get the current time in seconds (since the epoch) in a kernel module?
I have seen techniques involving getting xtime which are very long-winded and involve while-loops and locks. There must be a better way.
[This is not a duplicate. I have looked through previous questions on SO. The answers to many of these either don't specify the function used, or incorrectly refer to time.h which is not allowed in the kernel]
You can use getnstimeofday
for that.
/* getnstimeofday - Returns the time of day in a timespec */
void getnstimeofday(struct timespec *ts)
where struct timespec
is:
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
And yes, you'll need #include <linux/time.h>
.