1 /* $NetBSD: buftvtots.c,v 1.5 2020/05/25 20:47:24 christos Exp $ */ 2 3 /* 4 * buftvtots - pull a Unix-format (struct timeval) time stamp out of 5 * an octet stream and convert it to a l_fp time stamp. 6 * This is useful when using the clock line discipline. 7 */ 8 9 #ifdef HAVE_CONFIG_H 10 #include "config.h" 11 #endif 12 #include "ntp_fp.h" 13 #include "ntp_string.h" 14 #include "timevalops.h" 15 16 #ifndef SYS_WINNT 17 int buftvtots(const char * bufp,l_fp * ts)18buftvtots( 19 const char *bufp, 20 l_fp *ts 21 ) 22 { 23 struct timeval tv; 24 25 /* 26 * copy to adhere to alignment restrictions 27 */ 28 memcpy(&tv, bufp, sizeof(tv)); 29 30 /* 31 * and use it 32 */ 33 if (tv.tv_usec > MICROSECONDS - 1) 34 return FALSE; 35 36 *ts = tval_stamp_to_lfp(tv); 37 38 return TRUE; 39 } 40 #endif /* !SYS_WINNT */ 41