20 lines
		
	
	
		
			396 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			20 lines
		
	
	
		
			396 B
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #include "time32.h"
 | ||
|  | #include <sys/time.h>
 | ||
|  | #include <errno.h>
 | ||
|  | #include <stdint.h>
 | ||
|  | 
 | ||
|  | int __gettimeofday_time32(struct timeval32 *tv32, void *tz) | ||
|  | { | ||
|  | 	struct timeval tv; | ||
|  | 	if (!tv32) return 0; | ||
|  | 	int r = gettimeofday(&tv, 0); | ||
|  | 	if (r) return r; | ||
|  | 	if (tv.tv_sec < INT32_MIN || tv.tv_sec > INT32_MAX) { | ||
|  | 		errno = EOVERFLOW; | ||
|  | 		return -1; | ||
|  | 	} | ||
|  | 	tv32->tv_sec = tv.tv_sec; | ||
|  | 	tv32->tv_usec = tv.tv_usec; | ||
|  | 	return 0; | ||
|  | } |