static int get_clock(__u32 *clock_high, __u32 *clock_low, __u16 *ret_clock_seq)
get_clock(__u32 *clock_high, __u32 *clock_low, __u16 *ret_clock_seq)
static int get_clock(__u32 *clock_high, __u32 *clock_low, __u16 *ret_clock_seq){	static int			adjustment = 0;	static struct timeval		last = {0, 0};	static __u16			clock_seq;	struct timeval 			tv;	unsigned longlong		clock_reg;	try_again:	gettimeofday(&tv, 0);	if ((last.tv_sec == 0) && (last.tv_usec == 0)) {		get_random_bytes(&clock_seq, sizeof(clock_seq));		clock_seq &= 0x1FFF;		last = tv;		last.tv_sec--;	}	if ((tv.tv_sec < last.tv_sec) ||	    ((tv.tv_sec == last.tv_sec) &&	     (tv.tv_usec < last.tv_usec))) {		clock_seq = (clock_seq+1) & 0x1FFF;		adjustment = 0;		last = tv;	} else if ((tv.tv_sec == last.tv_sec) &&	    (tv.tv_usec == last.tv_usec)) {		if (adjustment >= MAX_ADJUSTMENT)			goto try_again;		adjustment++;	} else {		adjustment = 0;		last = tv;	}			clock_reg = tv.tv_usec*10 + adjustment;	clock_reg += ((unsigned longlong) tv.tv_sec)*10000000;	clock_reg += (((unsigned longlong) 0x01B21DD2) << 32) + 0x13814000;	*clock_high = clock_reg >> 32;	*clock_low = clock_reg;	*ret_clock_seq = clock_seq;	return 0;}