Lines Matching refs:parse

305 #define ERR(_X_)	if (list_err(parse, (_X_)))
1536 …ine PARSE_STATETIME(parse, i) ((parse->generic->currentstatus == i) ? parse->statetime[i] + curren… argument
1549 struct parseunit *parse, in clear_err() argument
1559 parse->errors[i].err_stage = err_tbl[i]; in clear_err()
1560 parse->errors[i].err_cnt = 0; in clear_err()
1561 parse->errors[i].err_last = 0; in clear_err()
1562 parse->errors[i].err_started = 0; in clear_err()
1563 parse->errors[i].err_suppressed = 0; in clear_err()
1568 parse->errors[lstate].err_stage = err_tbl[lstate]; in clear_err()
1569 parse->errors[lstate].err_cnt = 0; in clear_err()
1570 parse->errors[lstate].err_last = 0; in clear_err()
1571 parse->errors[lstate].err_started = 0; in clear_err()
1572 parse->errors[lstate].err_suppressed = 0; in clear_err()
1578 struct parseunit *parse, in list_err() argument
1583 struct errorinfo *err = &parse->errors[lstate]; in list_err()
1604 CLK_UNIT(parse->peer), l_mktime(err->err_stage->err_delay)); in list_err()
1614 CLK_UNIT(parse->peer), err->err_suppressed, (err->err_suppressed == 1) ? " was" : "s where", in list_err()
1809 struct parseunit *parse in ppsclock_init() argument
1819 if (ioctl(parse->ppsfd, I_PUSH, (caddr_t)m1) == -1 && in ppsclock_init()
1820 ioctl(parse->ppsfd, I_PUSH, (caddr_t)m2) == -1) in ppsclock_init()
1825 CLK_UNIT(parse->peer)); in ppsclock_init()
1829 if (!local_init(parse)) in ppsclock_init()
1831 (void)ioctl(parse->ppsfd, I_POP, (caddr_t)0); in ppsclock_init()
1835 parse->flags |= PARSE_PPSCLOCK; in ppsclock_init()
1844 struct parseunit *parse in stream_init() argument
1852 if (ioctl(parse->generic->io.fd, I_PUSH, (caddr_t)m1) == -1) in stream_init()
1856 …G_ERR, "PARSE receiver #%d: stream_init: ioctl(fd, I_PUSH, \"parse\"): %m", CLK_UNIT(parse->peer)); in stream_init()
1862 while(ioctl(parse->generic->io.fd, I_POP, (caddr_t)0) == 0) in stream_init()
1869 if (ioctl(parse->generic->io.fd, I_PUSH, (caddr_t)m1) == -1) in stream_init()
1871 …G_ERR, "PARSE receiver #%d: stream_init: ioctl(fd, I_PUSH, \"parse\"): %m", CLK_UNIT(parse->peer)); in stream_init()
1886 struct parseunit *parse in stream_end() argument
1889 while(ioctl(parse->generic->io.fd, I_POP, (caddr_t)0) == 0) in stream_end()
1898 struct parseunit *parse, in stream_setcs() argument
1909 if (ioctl(parse->generic->io.fd, I_STR, (caddr_t)&strioc) == -1) in stream_setcs()
1911 …, "PARSE receiver #%d: stream_setcs: ioctl(fd, I_STR, PARSEIOC_SETCS): %m", CLK_UNIT(parse->peer)); in stream_setcs()
1922 struct parseunit *parse in stream_enable() argument
1932 if (ioctl(parse->generic->io.fd, I_STR, (caddr_t)&strioc) == -1) in stream_enable()
1934 …"PARSE receiver #%d: stream_enable: ioctl(fd, I_STR, PARSEIOC_ENABLE): %m", CLK_UNIT(parse->peer)); in stream_enable()
1937 parse->generic->io.clock_recv = stream_receive; /* ok - parse input in kernel */ in stream_enable()
1946 struct parseunit *parse in stream_disable() argument
1956 if (ioctl(parse->generic->io.fd, I_STR, (caddr_t)&strioc) == -1) in stream_disable()
1958 …ARSE receiver #%d: stream_disable: ioctl(fd, I_STR, PARSEIOC_DISABLE): %m", CLK_UNIT(parse->peer)); in stream_disable()
1961 parse->generic->io.clock_recv = local_receive; /* ok - parse input in daemon */ in stream_disable()
1970 struct parseunit *parse, in stream_getfmt() argument
1980 if (ioctl(parse->generic->io.fd, I_STR, (caddr_t)&strioc) == -1) in stream_getfmt()
1982 …msyslog(LOG_ERR, "PARSE receiver #%d: ioctl(fd, I_STR, PARSEIOC_GETFMT): %m", CLK_UNIT(parse->peer… in stream_getfmt()
1993 struct parseunit *parse, in stream_setfmt() argument
2004 if (ioctl(parse->generic->io.fd, I_STR, (caddr_t)&strioc) == -1) in stream_setfmt()
2006 …"PARSE receiver #%d: stream_setfmt: ioctl(fd, I_STR, PARSEIOC_SETFMT): %m", CLK_UNIT(parse->peer)); in stream_setfmt()
2018 struct parseunit *parse, in stream_timecode() argument
2029 if (ioctl(parse->generic->io.fd, I_STR, (caddr_t)&strioc) == -1) in stream_timecode()
2032 …SE receiver #%d: stream_timecode: ioctl(fd, I_STR, PARSEIOC_TIMECODE): %m", CLK_UNIT(parse->peer)); in stream_timecode()
2035 clear_err(parse, ERR_INTERNAL); in stream_timecode()
2047 struct parseunit * parse; in stream_receive() local
2050 parse = (struct parseunit *)rbufp->recv_peer->procptr->unitptr; in stream_receive()
2051 if (!parse->peer) in stream_receive()
2058 CLK_UNIT(parse->peer), rbufp->recv_length, (int)sizeof(parsetime_t)); in stream_receive()
2059 parse_event(parse, CEVNT_BADREPLY); in stream_receive()
2062 clear_err(parse, ERR_BADIO); in stream_receive()
2072 CLK_UNIT(parse->peer), in stream_receive()
2101 parse_process(parse, &parsetime); in stream_receive()
2110 struct parseunit *parse in local_init() argument
2113 return parse_ioinit(&parse->parseio); in local_init()
2121 struct parseunit *parse in local_end() argument
2124 parse_ioend(&parse->parseio); in local_end()
2133 struct parseunit *parse in local_nop() argument
2144 struct parseunit *parse, in local_setcs() argument
2148 return parse_setcs(tcl, &parse->parseio); in local_setcs()
2156 struct parseunit *parse, in local_getfmt() argument
2160 return parse_getfmt(tcl, &parse->parseio); in local_getfmt()
2168 struct parseunit *parse, in local_setfmt() argument
2172 return parse_setfmt(tcl, &parse->parseio); in local_setfmt()
2180 struct parseunit *parse, in local_timecode() argument
2184 return parse_timecode(tcl, &parse->parseio); in local_timecode()
2196 struct parseunit * parse; in local_input() local
2202 parse = (struct parseunit *)rbufp->recv_peer->procptr->unitptr; in local_input()
2203 if (!parse->peer) in local_input()
2215 if (parse_ioread(&parse->parseio, (unsigned int)(*s++), &ts)) in local_input()
2222 if (!PARSE_PPS(parse->parseio.parse_dtime.parse_state)) in local_input()
2225 if (parse->flags & PARSE_PPSCLOCK) in local_input()
2233 if (time_pps_fetch(parse->atom.handle, PPS_TSFMT_TSPEC, &pps_info, in local_input()
2236 if (pps_info.assert_sequence + pps_info.clear_sequence != parse->ppsserial) in local_input()
2245 if (parse->flags & PARSE_CLEAR) in local_input()
2250 parse->parseio.parse_dtime.parse_ptime.fp.l_ui = (uint32_t) (pts.tv_sec + JAN_1970); in local_input()
2255 parse->parseio.parse_dtime.parse_ptime.fp.l_ui--; in local_input()
2259 parse->parseio.parse_dtime.parse_ptime.fp.l_ui++; in local_input()
2261 parse->parseio.parse_dtime.parse_ptime.fp.l_uf = (uint32_t)(dtemp * FRAC); in local_input()
2263 parse->parseio.parse_dtime.parse_state |= PARSEB_PPS|PARSEB_S_PPS; in local_input()
2271 lfptoa(&parse->parseio.parse_dtime.parse_ptime.fp, 6)); in local_input()
2287 parse->ppsserial = pps_info.assert_sequence + pps_info.clear_sequence; in local_input()
2306 if (ioctl(parse->ppsfd, TIOCDCDTIMESTAMP, &dcd_time) != -1) in local_input()
2320 parse->ppsfd, in local_input()
2326 parse->parseio.parse_dtime.parse_ptime.fp = tstmp; in local_input()
2327 parse->parseio.parse_dtime.parse_state |= PARSEB_PPS|PARSEB_S_PPS; in local_input()
2332 if (parse->flags & PARSE_PPSCLOCK) in local_input()
2338 if (ioctl(parse->ppsfd, CIOGETEV, (caddr_t)&ev) == 0) in local_input()
2341 if (ioctl(parse->ppsfd, TIOCGPPSEV, (caddr_t)&ev) == 0) in local_input()
2344 if (ev.serial != parse->ppsserial) in local_input()
2357 parse->parseio.parse_dtime.parse_ptime.fp = tts; in local_input()
2358 parse->parseio.parse_dtime.parse_state |= PARSEB_PPS|PARSEB_S_PPS; in local_input()
2361 parse->ppsserial = ev.serial; in local_input()
2373 (caddr_t)&parse->parseio.parse_dtime, in local_input()
2384 parse->generic->io.recvcount++; in local_input()
2391 parse_iodone(&parse->parseio); in local_input()
2396 (caddr_t)&parse->parseio.parse_dtime, in local_input()
2398 parse_iodone(&parse->parseio); in local_input()
2415 struct parseunit * parse; in local_receive() local
2418 parse = (struct parseunit *)rbufp->recv_peer->procptr->unitptr; in local_receive()
2419 if (!parse->peer) in local_receive()
2426 CLK_UNIT(parse->peer), rbufp->recv_length, (int)sizeof(parsetime_t)); in local_receive()
2427 parse_event(parse, CEVNT_BADREPLY); in local_receive()
2430 clear_err(parse, ERR_BADIO); in local_receive()
2440 CLK_UNIT(parse->peer), in local_receive()
2452 parse_process(parse, &parsetime); in local_receive()
2460 struct parseunit *parse in init_iobinding() argument
2467 if ((*b->bd_init)(parse)) in init_iobinding()
2724 struct parseunit *parse in parse_statistics() argument
2732 CLK_UNIT(parse->peer), in parse_statistics()
2733 l_mktime(current_time - parse->generic->timestarted)); in parse_statistics()
2736 CLK_UNIT(parse->peer), in parse_statistics()
2737 clockstatus(parse->generic->currentstatus)); in parse_statistics()
2742 u_long percent, d = current_time - parse->generic->timestarted; in parse_statistics()
2744 percent = s_time = PARSE_STATETIME(parse, i); in parse_statistics()
2759 CLK_UNIT(parse->peer), in parse_statistics()
2772 struct parseunit *parse in cparse_statistics() argument
2775 if (parse->laststatistic + PARSESTATISTICS < current_time) in cparse_statistics()
2776 parse_statistics(parse); in cparse_statistics()
2777 parse->laststatistic = current_time; in cparse_statistics()
2793 struct parseunit *parse = NULL; in parse_shutdown() local
2796 parse = peer->procptr->unitptr; in parse_shutdown()
2798 if (!parse) in parse_shutdown()
2804 if (!parse->peer) in parse_shutdown()
2811 if (parse->flags & PARSE_PPSCLOCK) in parse_shutdown()
2813 (void)time_pps_destroy(parse->atom.handle); in parse_shutdown()
2816 if (parse->generic->io.fd != parse->ppsfd && parse->ppsfd != -1) in parse_shutdown()
2817 (void)closeserial(parse->ppsfd); /* close separate PPS source */ in parse_shutdown()
2823 parse_statistics(parse); in parse_shutdown()
2825 if (parse->parse_type->cl_end) in parse_shutdown()
2827 parse->parse_type->cl_end(parse); in parse_shutdown()
2833 if (parse->binding) in parse_shutdown()
2834 PARSE_END(parse); in parse_shutdown()
2839 io_closeclock(&parse->generic->io); in parse_shutdown()
2841 free_varlist(parse->kv); in parse_shutdown()
2845 CLK_UNIT(parse->peer), parse->parse_type->cl_description); in parse_shutdown()
2847 parse->peer = (struct peer *)0; /* unused now */ in parse_shutdown()
2849 free(parse); in parse_shutdown()
2858 struct parseunit *parse, in parse_hardpps() argument
2862 if (parse->hardppsstate == mode) in parse_hardpps()
2865 if (CLK_PPS(parse->peer) && (parse->flags & PARSE_PPSKERNEL)) { in parse_hardpps()
2870 if (parse->flags & PARSE_CLEAR) in parse_hardpps()
2876 if (time_pps_kcbind(parse->atom.handle, PPS_KC_HARDPPS, i, in parse_hardpps()
2879 CLK_UNIT(parse->peer)); in parse_hardpps()
2883 CLK_UNIT(parse->peer), (mode == PARSE_HARDPPS_ENABLE) ? "en" : "dis"); in parse_hardpps()
2892 parse->hardppsstate = mode; in parse_hardpps()
2900 struct parseunit *parse in parse_ppsapi() argument
2906 parse->flags &= (u_char) (~PARSE_PPSCLOCK); in parse_ppsapi()
2911 if (time_pps_getcap(parse->atom.handle, &cap) < 0) { in parse_ppsapi()
2913 CLK_UNIT(parse->peer)); in parse_ppsapi()
2925 if (!refclock_params(parse->flags & (CLK_FLAG1|CLK_FLAG2|CLK_FLAG4), &parse->atom)) in parse_ppsapi()
2932 if (parse->flags & PARSE_CLEAR) { in parse_ppsapi()
2941 CLK_UNIT(parse->peer), cp); in parse_ppsapi()
2945 CLK_UNIT(parse->peer), cp, cap); in parse_ppsapi()
2950 parse->atom.pps_params.clear_offset.tv_sec = (time_t)(-parse->ppsphaseadjust); in parse_ppsapi()
2951parse->atom.pps_params.clear_offset.tv_nsec = (long)(-1e9*(parse->ppsphaseadjust - (double)(long)p… in parse_ppsapi()
2956 parse->atom.pps_params.assert_offset.tv_sec = (time_t)(-parse->ppsphaseadjust); in parse_ppsapi()
2957parse->atom.pps_params.assert_offset.tv_nsec = (long)(-1e9*(parse->ppsphaseadjust - (double)(long) in parse_ppsapi()
2961 parse->atom.pps_params.mode |= mode_ppsoffset; in parse_ppsapi()
2963 if (time_pps_setparams(parse->atom.handle, &parse->atom.pps_params) < 0) { in parse_ppsapi()
2965 CLK_UNIT(parse->peer)); in parse_ppsapi()
2969 parse->flags |= PARSE_PPSCLOCK; in parse_ppsapi()
2993 struct parseunit * parse; in parse_start() local
3053 parse = emalloc_zero(sizeof(*parse)); in parse_start()
3055 parse->generic = peer->procptr; /* link up */ in parse_start()
3056 parse->generic->unitptr = (caddr_t)parse; /* link down */ in parse_start()
3061 parse->generic->timestarted = current_time; in parse_start()
3062 parse->lastchange = current_time; in parse_start()
3064 parse->flags = 0; in parse_start()
3065 parse->pollneeddata = 0; in parse_start()
3066 parse->laststatistic = current_time; in parse_start()
3067 parse->lastformat = (unsigned short)~0; /* assume no format known */ in parse_start()
3068 parse->timedata.parse_status = (unsigned short)~0; /* be sure to mark initial status change */ in parse_start()
3069 parse->lastmissed = 0; /* assume got everything */ in parse_start()
3070 parse->ppsserial = 0; in parse_start()
3071 parse->ppsfd = -1; in parse_start()
3072 parse->localdata = (void *)0; in parse_start()
3073 parse->localstate = 0; in parse_start()
3074 parse->kv = (struct ctl_var *)0; in parse_start()
3076 clear_err(parse, ERR_ALL); in parse_start()
3078 parse->parse_type = &parse_clockinfo[type]; in parse_start()
3080 parse->maxunsync = parse->parse_type->cl_maxunsync; in parse_start()
3082 parse->generic->fudgetime1 = parse->parse_type->cl_basedelay; in parse_start()
3084 parse->generic->fudgetime2 = 0.0; in parse_start()
3085 parse->ppsphaseadjust = parse->generic->fudgetime2; in parse_start()
3086 parse->generic->fudgeminjitter = 0.0; in parse_start()
3088 parse->generic->clockdesc = parse->parse_type->cl_description; in parse_start()
3090 peer->rootdelay = parse->parse_type->cl_rootdelay; in parse_start()
3091 peer->sstclktype = parse->parse_type->cl_type; in parse_start()
3097 memmove((char *)&parse->generic->refid, parse->parse_type->cl_id, 4); in parse_start()
3099 parse->generic->refid = htonl(PARSEHSREFID); in parse_start()
3101 parse->generic->io.fd = fd232; in parse_start()
3103 parse->peer = peer; /* marks it also as busy */ in parse_start()
3111 parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */ in parse_start()
3122 disablec = fpathconf(parse->generic->io.fd, _PC_VDISABLE); in parse_start()
3125 …OG_ERR, "PARSE receiver #%d: parse_start: fpathconf(fd, _PC_VDISABLE): %m", CLK_UNIT(parse->peer)); in parse_start()
3156 parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */ in parse_start()
3168 parse->ppsfd = tty_open(parseppsdev, O_RDWR | O_NOCTTY | O_NONBLOCK, 0777); in parse_start()
3170 if (parse->ppsfd == -1) in parse_start()
3172 parse->ppsfd = fd232; in parse_start()
3181 if (ioctl(parse->ppsfd, TIOCGSERIAL, &ss) < 0 || in parse_start()
3191 ioctl(parse->ppsfd, TIOCSSERIAL, &ss)) < 0) { in parse_start()
3192 msyslog(LOG_NOTICE, "refclock_parse: TIOCSSERIAL fd %d, %m", parse->ppsfd); in parse_start()
3196 parse->flags |= PARSE_PPSCLOCK; in parse_start()
3210 if (CLK_PPS(parse->peer)) in parse_start()
3214 if (ioctl(parse->ppsfd, TIOCSPPS, (caddr_t)&i) == 0) in parse_start()
3216 parse->flags |= PARSE_PPSCLOCK; in parse_start()
3225 parse->hardppsstate = PARSE_HARDPPS_DISABLE; in parse_start()
3226 if (CLK_PPS(parse->peer)) in parse_start()
3228 if (!refclock_ppsapi(parse->ppsfd, &parse->atom)) in parse_start()
3230 …og(LOG_NOTICE, "PARSE receiver #%d: parse_start: could not set up PPS: %m", CLK_UNIT(parse->peer)); in parse_start()
3234 parse_ppsapi(parse); in parse_start()
3242 parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */ in parse_start()
3250 parse->generic->io.srcclock = peer; in parse_start()
3251 parse->generic->io.datalen = 0; in parse_start()
3253 parse->binding = init_iobinding(parse); in parse_start()
3255 if (parse->binding == (bind_t *)0) in parse_start()
3257 …R, "PARSE receiver #%d: parse_start: io sub system initialisation failed.", CLK_UNIT(parse->peer)); in parse_start()
3258 parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */ in parse_start()
3262 parse->generic->io.clock_recv = parse->binding->bd_receive; /* pick correct receive routine */ in parse_start()
3263 parse->generic->io.io_input = parse->binding->bd_io_input; /* pick correct input routine */ in parse_start()
3292 if (!PARSE_SETCS(parse, &tmp_ctl)) in parse_start()
3295 parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */ in parse_start()
3299 …strlcpy(tmp_ctl.parseformat.parse_buffer, parse->parse_type->cl_format, sizeof(tmp_ctl.parseformat… in parse_start()
3302 if (!PARSE_SETFMT(parse, &tmp_ctl)) in parse_start()
3305 parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */ in parse_start()
3313 (void) tcflush(parse->generic->io.fd, TCIOFLUSH); in parse_start()
3319 (void) ioctl(parse->generic->io.fd, TCFLSH, (caddr_t)&flshcmd); in parse_start()
3327 if (parse->parse_type->cl_init) in parse_start()
3329 if (parse->parse_type->cl_init(parse)) in parse_start()
3331 parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */ in parse_start()
3339 if (!io_addclock(&parse->generic->io)) in parse_start()
3342 …start: addclock %s fails (ABORT - clock type requires async io)", CLK_UNIT(parse->peer), parsedev); in parse_start()
3343 parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */ in parse_start()
3354 CLK_UNIT(parse->peer), in parse_start()
3355 parse->parse_type->cl_description, parsedev, in parse_start()
3356 (parse->ppsfd != parse->generic->io.fd) ? parseppsdev : parsedev); in parse_start()
3359 CLK_UNIT(parse->peer), in parse_start()
3360 parse->peer->stratum, in parse_start()
3361 l_mktime(parse->maxunsync), parse->peer->precision); in parse_start()
3364 CLK_UNIT(parse->peer), in parse_start()
3365 parse->parse_type->cl_rootdelay, in parse_start()
3366 parse->generic->fudgetime1, in parse_start()
3367 parse->ppsphaseadjust, in parse_start()
3368 parse->binding->bd_description); in parse_start()
3370 msyslog(LOG_INFO, "PARSE receiver #%d: Format recognition: %s", CLK_UNIT(parse->peer), in parse_start()
3371 parse->parse_type->cl_format); in parse_start()
3372 … msyslog(LOG_INFO, "PARSE receiver #%d: %sPPS support%s", CLK_UNIT(parse->peer), in parse_start()
3373 CLK_PPS(parse->peer) ? "" : "NO ", in parse_start()
3374 CLK_PPS(parse->peer) ? in parse_start()
3392 struct parseunit *parse, in parse_ctl() argument
3401 parse->flags = (parse->flags & (u_char)(~mask)) | (in->flags & mask); in parse_ctl()
3403 if (CLK_PPS(parse->peer)) in parse_ctl()
3405 parse_ppsapi(parse); in parse_ctl()
3412 parse->generic->fudgetime1 = in->fudgetime1; in parse_ctl()
3414 CLK_UNIT(parse->peer), in parse_ctl()
3415 parse->generic->fudgetime1); in parse_ctl()
3420 parse->generic->fudgetime2 = in->fudgetime2; in parse_ctl()
3421 if (parse->flags & PARSE_TRUSTTIME) in parse_ctl()
3423 parse->maxunsync = (u_long)ABS(in->fudgetime2); in parse_ctl()
3425 CLK_UNIT(parse->peer), in parse_ctl()
3426 l_mktime(parse->maxunsync)); in parse_ctl()
3430 parse->ppsphaseadjust = in->fudgetime2; in parse_ctl()
3432 CLK_UNIT(parse->peer), in parse_ctl()
3433 parse->ppsphaseadjust); in parse_ctl()
3435 if (CLK_PPS(parse->peer)) in parse_ctl()
3437 parse_ppsapi(parse); in parse_ctl()
3443 parse->generic->fudgeminjitter = in->fudgeminjitter; in parse_ctl()
3456 struct parseunit *parse = peer->procptr->unitptr; in parse_poll() local
3458 if (peer != parse->peer) in parse_poll()
3469 parse->generic->polls++; in parse_poll()
3471 if (parse->pollneeddata && in parse_poll()
3472 …((int)(current_time - parse->pollneeddata) > (1<<(max(min(parse->peer->hpoll, parse->peer->ppoll),… in parse_poll()
3478 parse->lastmissed = current_time; in parse_poll()
3479 parse_event(parse, CEVNT_TIMEOUT); in parse_poll()
3482 …r #%d: no data from device within poll interval (check receiver / wiring)", CLK_UNIT(parse->peer)); in parse_poll()
3488 parse->pollneeddata = current_time; in parse_poll()
3490 if (parse->parse_type->cl_poll) in parse_poll()
3492 parse->parse_type->cl_poll(parse); in parse_poll()
3495 cparse_statistics(parse); in parse_poll()
3513 struct parseunit *parse = peer->procptr->unitptr; in parse_control() local
3525 if (!parse || !parse->peer) in parse_control()
3532 unit = CLK_UNIT(parse->peer); in parse_control()
3537 parse_ctl(parse, in); in parse_control()
3555parse->generic->fudgetime2 = (parse->flags & PARSE_TRUSTTIME) ? (double)parse->maxunsync : parse->… in parse_control()
3561 if (PARSE_SYNC(parse->timedata.parse_state)) in parse_control()
3563 if (PARSE_PPS(parse->timedata.parse_state) && PARSE_TIMECODE(parse->timedata.parse_state)) in parse_control()
3571 off = parse->timedata.parse_stime.fp; in parse_control()
3572 L_SUB(&off, &parse->timedata.parse_ptime.fp); /* true offset */ in parse_control()
3578 if (PARSE_PPS(parse->timedata.parse_state)) in parse_control()
3581 snprintf(tt, 80, "refclock_ppstime=\"%s\"", gmprettydate(&parse->timedata.parse_ptime.fp)); in parse_control()
3587 if (parse->timedata.parse_time.fp.l_ui == 0) in parse_control()
3594 gmprettydate(&parse->timedata.parse_time.fp)); in parse_control()
3597 if (!PARSE_GETTIMECODE(parse, &tmpctl)) in parse_control()
3610 tmpctl.parsegettc.parse_state |= parse->timedata.parse_state & in parse_control()
3627 if (!PARSE_GETFMT(parse, &tmpctl)) in parse_control()
3661 u_long d = current_time - parse->generic->timestarted; in parse_control()
3664 percent = s_time = PARSE_STATETIME(parse, i); in parse_control()
3684 (parse->generic->currentstatus == i) ? "*" : "", in parse_control()
3700 snprintf(tt, 32, "refclock_id=\"%s\"", parse->parse_type->cl_id); in parse_control()
3703 snprintf(tt, 80, "refclock_iomode=\"%s\"", parse->binding->bd_description); in parse_control()
3711 k = parse->kv; in parse_control()
3734 struct parseunit *parse, in parse_event() argument
3738 if (parse->generic->currentstatus != (u_char) event) in parse_event()
3740 parse->statetime[parse->generic->currentstatus] += current_time - parse->lastchange; in parse_event()
3741 parse->lastchange = current_time; in parse_event()
3743 if (parse->parse_type->cl_event) in parse_event()
3744 parse->parse_type->cl_event(parse, event); in parse_event()
3750 CLK_UNIT(parse->peer)); in parse_event()
3753 refclock_report(parse->peer, event); in parse_event()
3762 struct parseunit *parse, in parse_process() argument
3778 (parse->timedata.parse_status != parsetime->parse_status)) in parse_process()
3784 CLK_UNIT(parse->peer), parsestatus(parsetime->parse_status, buffer, sizeof(buffer))); in parse_process()
3795 if (!PARSE_GETTIMECODE(parse, &tmpctl)) in parse_process()
3798 …msyslog(LOG_ERR, "PARSE receiver #%d: parse_process: parse_timecode() FAILED", CLK_UNIT(parse->pee… in parse_process()
3807 CLK_UNIT(parse->peer), in parse_process()
3812 parse->timedata.parse_status = parsetime->parse_status; in parse_process()
3828 parse->parse_type->cl_message) in parse_process()
3829 parse->parse_type->cl_message(parse, parsetime); in parse_process()
3835 parse->timedata.parse_state |= PARSEB_PPS|PARSEB_S_PPS; in parse_process()
3836 parse->timedata.parse_ptime = parsetime->parse_ptime; in parse_process()
3843 parse_event(parse, CEVNT_BADREPLY); in parse_process()
3848 parse_event(parse, CEVNT_BADDATE); in parse_process()
3853 parse_event(parse, CEVNT_BADTIME); in parse_process()
3857 parse_event(parse, CEVNT_BADREPLY); /* for the lack of something better */ in parse_process()
3867 if (parse->lastformat != parsetime->parse_format) in parse_process()
3873 if (!PARSE_GETFMT(parse, &tmpctl)) in parse_process()
3876 msyslog(LOG_ERR, "PARSE receiver #%d: parse_getfmt() FAILED", CLK_UNIT(parse->peer)); in parse_process()
3882 CLK_UNIT(parse->peer), tmpctl.parseformat.parse_buffer); in parse_process()
3884 parse->lastformat = parsetime->parse_format; in parse_process()
3890 if ((parse->timedata.parse_state ^ parsetime->parse_state) & in parse_process()
3900 (void) parsestate(parse->timedata.parse_state, tmp2, sizeof(tmp2)); in parse_process()
3904 CLK_UNIT(parse->peer), tmp2, tmp1); in parse_process()
3910 if (PARSE_PPS(parse->timedata.parse_state) && !PARSE_PPS(parsetime->parse_state)) in parse_process()
3913 parsetime->parse_ptime = parse->timedata.parse_ptime; in parse_process()
3919 parse->timedata = *parsetime; in parse_process()
3955 parse_event(parse, CEVNT_FAULT); in parse_process()
3959 CLK_UNIT(parse->peer)); in parse_process()
3987 parse->lastsync = current_time; in parse_process()
3988 clear_err(parse, ERR_BADSTATUS); in parse_process()
3995 parse_event(parse, CEVNT_PROP); in parse_process()
3999 CLK_UNIT(parse->peer)); in parse_process()
4003 fudge = parse->generic->fudgetime1; /* standard RS232 Fudgefactor */ in parse_process()
4015 CLK_UNIT(parse->peer), in parse_process()
4022 if (PARSE_PPS(parsetime->parse_state) && CLK_PPS(parse->peer)) in parse_process()
4025 double ppsphaseadjust = parse->ppsphaseadjust; in parse_process()
4031 if (parse->atom.pps_params.mode & (PPS_OFFSETCLEAR|PPS_OFFSETASSERT)) in parse_process()
4045 CLK_UNIT(parse->peer), in parse_process()
4059 if (parse->parse_type->cl_flags & PARSE_F_PPSONSECOND) in parse_process()
4114 parse->parse_type->cl_message) in parse_process()
4115 parse->parse_type->cl_message(parse, parsetime); in parse_process()
4123 CLK_UNIT(parse->peer), in parse_process()
4136 CLK_UNIT(parse->peer), in parse_process()
4142 parse->parse_type->cl_message) in parse_process()
4143 parse->parse_type->cl_message(parse, parsetime); in parse_process()
4150 parse_event(parse, CEVNT_NOMINAL); in parse_process()
4153 clear_err(parse, ERR_BADIO); in parse_process()
4154 clear_err(parse, ERR_BADDATA); in parse_process()
4155 clear_err(parse, ERR_NODATA); in parse_process()
4156 clear_err(parse, ERR_INTERNAL); in parse_process()
4167 if (((current_time - parse->lastsync) > parse->maxunsync) || in parse_process()
4168 (parse->lastsync < parse->lastmissed) || in parse_process()
4169 ((parse->lastsync == 0) && !PARSE_SYNC(parsetime->parse_state)) || in parse_process()
4170 (((parse->parse_type->cl_flags & PARSE_F_POWERUPTRUST) == 0) && in parse_process()
4173 parse->generic->leap = LEAP_NOTINSYNC; in parse_process()
4174 parse->lastsync = 0; /* wait for full sync again */ in parse_process()
4185 parse->generic->leap = (parse->flags & PARSE_LEAP_DELETE) ? LEAP_DELSECOND : LEAP_ADDSECOND; in parse_process()
4190 parse->generic->leap = LEAP_DELSECOND; in parse_process()
4194 parse->generic->leap = LEAP_NOWARNING; in parse_process()
4198 if (parse->generic->leap != LEAP_NOTINSYNC) in parse_process()
4207 CLK_UNIT(parse->peer), in parse_process()
4213 parse->generic->lastref = reftime; in parse_process()
4215 refclock_process_offset(parse->generic, reftime, rectime, fudge); in parse_process()
4221 if (PARSE_PPS(parsetime->parse_state) && CLK_PPS(parse->peer)) in parse_process()
4223 parse->peer->flags |= (FLAG_PPS | FLAG_TSTAMP_PPS); in parse_process()
4224 parse_hardpps(parse, PARSE_HARDPPS_ENABLE); in parse_process()
4228 parse_hardpps(parse, PARSE_HARDPPS_DISABLE); in parse_process()
4229 parse->peer->flags &= ~(FLAG_PPS | FLAG_TSTAMP_PPS); in parse_process()
4236 if (!parse->pollneeddata && parse->peer->disp <= MAXDISTANCE) in parse_process()
4239 parse->pollneeddata = 0; in parse_process()
4241 parse->timedata.parse_state &= ~(unsigned)(PARSEB_PPS|PARSEB_S_PPS); in parse_process()
4243 refclock_receive(parse->peer); in parse_process()
4317 struct parseunit *parse, in gps16x_message() argument
4321 if (parse->timedata.parse_msglen && parsetime->parse_msg[0] == SOH) in gps16x_message()
4333 CLK_UNIT(parse->peer), in gps16x_message()
4360 set_var(&parse->kv, buffer, strlen(buffer)+1, RO|DEF); in gps16x_message()
4414 set_var(&parse->kv, buffer, strlen(buffer)+1, RO|DEF); in gps16x_message()
4429 set_var(&parse->kv, buffer, sizeof(buffer), RO|DEF); in gps16x_message()
4445 set_var(&parse->kv, buffer, sizeof(buffer), RO|DEF); in gps16x_message()
4480 CLK_UNIT(parse->peer), p); in gps16x_message()
4509 set_var(&parse->kv, buffer, sizeof(buffer), RO|DEF); in gps16x_message()
4535 set_var(&parse->kv, buffer, sizeof(buffer), RO|COND_DEF); in gps16x_message()
4543 set_var(&parse->kv, buffer, sizeof(buffer), RO|COND_DEF); in gps16x_message()
4551 set_var(&parse->kv, buffer, sizeof(buffer), RO|COND_DEF); in gps16x_message()
4598 set_var(&parse->kv, buffer, sizeof(buffer), RO|COND_DEF); in gps16x_message()
4631 set_var(&parse->kv, buffer, sizeof(buffer), RO|DEF); in gps16x_message()
4655 set_var(&parse->kv, buffer, sizeof(buffer), RO|DEF); in gps16x_message()
4668 CLK_UNIT(parse->peer), in gps16x_message()
4686 struct parseunit *parse = peer->procptr->unitptr; in gps16x_poll() local
4706 if (((poll_info_t *)parse->parse_type->cl_data)->rate) in gps16x_poll()
4708parse->peer->procptr->nextaction = current_time + ((poll_info_t *)parse->parse_type->cl_data)->rat… in gps16x_poll()
4711 if (sequence[parse->localstate].cmd == (unsigned short)~0) in gps16x_poll()
4712 parse->localstate = 0; in gps16x_poll()
4714 header = sequence + parse->localstate++; in gps16x_poll()
4731 CLK_UNIT(parse->peer), in gps16x_poll()
4732 parse->localstate - 1, in gps16x_poll()
4738 rtc = (int) write(parse->generic->io.fd, cmd_buffer, (unsigned long)(outp - cmd_buffer)); in gps16x_poll()
4743 …OG_ERR, "PARSE receiver #%d: gps16x_poll: failed to send cmd to clock: %m", CLK_UNIT(parse->peer)); in gps16x_poll()
4749 …s16x_poll: failed to send cmd incomplete (%d of %d bytes sent)", CLK_UNIT(parse->peer), rtc, (int)… in gps16x_poll()
4752 clear_err(parse, ERR_BADIO); in gps16x_poll()
4761 struct parseunit *parse in gps16x_poll_init() argument
4764 if (((poll_info_t *)parse->parse_type->cl_data)->rate) in gps16x_poll_init()
4766 parse->peer->procptr->action = gps16x_poll; in gps16x_poll_init()
4767 gps16x_poll(parse->peer); in gps16x_poll_init()
4776 struct parseunit *parse, in gps16x_message() argument
4782 struct parseunit *parse in gps16x_poll_init() argument
4798 struct parseunit *parse in poll_dpoll() argument
4802 const char *ps = ((poll_info_t *)parse->parse_type->cl_data)->string; in poll_dpoll()
4803 long ct = ((poll_info_t *)parse->parse_type->cl_data)->count; in poll_dpoll()
4805 rtc = write(parse->generic->io.fd, ps, ct); in poll_dpoll()
4809 …LOG_ERR, "PARSE receiver #%d: poll_dpoll: failed to send cmd to clock: %m", CLK_UNIT(parse->peer)); in poll_dpoll()
4815 …oll_dpoll: failed to send cmd incomplete (%ld of %ld bytes sent)", CLK_UNIT(parse->peer), rtc, ct); in poll_dpoll()
4817 clear_err(parse, ERR_BADIO); in poll_dpoll()
4828 struct parseunit *parse = peer->procptr->unitptr; in poll_poll() local
4830 if (parse->parse_type->cl_poll) in poll_poll()
4831 parse->parse_type->cl_poll(parse); in poll_poll()
4833 if (((poll_info_t *)parse->parse_type->cl_data)->rate) in poll_poll()
4835parse->peer->procptr->nextaction = current_time + ((poll_info_t *)parse->parse_type->cl_data)->rat… in poll_poll()
4844 struct parseunit *parse in poll_init() argument
4847 if (((poll_info_t *)parse->parse_type->cl_data)->rate) in poll_init()
4849 parse->peer->procptr->action = poll_poll; in poll_init()
4850 poll_poll(parse->peer); in poll_init()
4865 struct parseunit *parse in trimbletaip_init() argument
4877 if (TTY_GETATTR(parse->generic->io.fd, &tio) == -1) in trimbletaip_init()
4879 …msyslog(LOG_ERR, "PARSE receiver #%d: trimbletaip_init: tcgetattr(fd, &tio): %m", CLK_UNIT(parse->… in trimbletaip_init()
4886 if (TTY_SETATTR(parse->generic->io.fd, &tio) == -1) in trimbletaip_init()
4888 …msyslog(LOG_ERR, "PARSE receiver #%d: trimbletaip_init: tcsetattr(fd, &tio): %m", CLK_UNIT(parse->… in trimbletaip_init()
4892 return poll_init(parse); in trimbletaip_init()
4907 struct parseunit *parse, in trimbletaip_event() argument
4921 int rtc = (int) write(parse->generic->io.fd, *iv, strlen(*iv)); in trimbletaip_event()
4924 …, "PARSE receiver #%d: trimbletaip_event: failed to send cmd to clock: %m", CLK_UNIT(parse->peer)); in trimbletaip_event()
4932 CLK_UNIT(parse->peer), rtc, (int)strlen(*iv)); in trimbletaip_event()
4942 CLK_UNIT(parse->peer)); in trimbletaip_event()
5058 void sendetx (struct txbuf *buf, struct parseunit *parse);
5075 void sendetx (struct txbuf *buf, struct parseunit *parse);
5093 struct parseunit *parse in sendetx() argument
5099 if (write(parse->generic->io.fd, buf->txt, (unsigned long)buf->idx) != buf->idx) in sendetx()
5102 …msyslog(LOG_ERR, "PARSE receiver #%d: sendetx: failed to send cmd to clock: %m", CLK_UNIT(parse->p… in sendetx()
5113 CLK_UNIT(parse->peer), in sendetx()
5117 clear_err(parse, ERR_BADIO); in sendetx()
5158 struct parseunit *parse, in trimbletsip_setup() argument
5164 trimble_t *t = parse->localdata; in trimbletsip_setup()
5177 sendetx(&buf, parse); in trimbletsip_setup()
5185 sendetx(&buf, parse); in trimbletsip_setup()
5189 sendetx(&buf, parse); in trimbletsip_setup()
5192 sendetx(&buf, parse); in trimbletsip_setup()
5196 sendetx(&buf, parse); in trimbletsip_setup()
5203 sendetx(&buf, parse); in trimbletsip_setup()
5206 sendetx(&buf, parse); in trimbletsip_setup()
5210 …RSE receiver #%d: trimbletsip_setup: RECEIVER RE-INITIALIZED (%s)", CLK_UNIT(parse->peer), reason); in trimbletsip_setup()
5223 struct parseunit *parse = peer->procptr->unitptr; in trimble_check() local
5224 trimble_t *t = parse->localdata; in trimble_check()
5232 (void)trimbletsip_setup(parse, "message timeout"); in trimble_check()
5235 poll_poll(parse->peer); /* emit query string and re-arm timer */ in trimble_check()
5253 sendetx(&buf, parse); in trimble_check()
5261 sendetx(&buf, parse); in trimble_check()
5270 struct parseunit *parse in trimbletsip_end() argument
5272 { trimble_t *t = parse->localdata; in trimbletsip_end()
5277 parse->localdata = NULL; in trimbletsip_end()
5279 parse->peer->procptr->nextaction = 0; in trimbletsip_end()
5280 parse->peer->procptr->action = NULL; in trimbletsip_end()
5288 struct parseunit *parse in trimbletsip_init() argument
5301 if (!parse->localdata) in trimbletsip_init()
5305 t = (trimble_t *)(parse->localdata = emalloc(sizeof(trimble_t))); in trimbletsip_init()
5314 parse->peer->procptr->action = trimble_check; in trimbletsip_init()
5315 parse->peer->procptr->nextaction = current_time; in trimbletsip_init()
5320 if (TTY_GETATTR(parse->generic->io.fd, &tio) == -1) in trimbletsip_init()
5322 …receiver #%d: trimbletsip_init: tcgetattr(%d, &tio): %m", CLK_UNIT(parse->peer), parse->generic->i… in trimbletsip_init()
5327 if ((parse_clockinfo[CLK_TYPE(parse->peer)].cl_lflag & ICANON)) in trimbletsip_init()
5337 if (TTY_SETATTR(parse->generic->io.fd, &tio) == -1) in trimbletsip_init()
5339 …receiver #%d: trimbletsip_init: tcsetattr(%d, &tio): %m", CLK_UNIT(parse->peer), parse->generic->i… in trimbletsip_init()
5344 return trimbletsip_setup(parse, "initial startup"); in trimbletsip_init()
5353 struct parseunit *parse, in trimbletsip_event() argument
5361 (void)trimbletsip_setup(parse, "event BAD_REPLY/TIMEOUT"); in trimbletsip_event()
5446 struct parseunit *parse, in trimbletsip_message() argument
5475 trimble_t *tr = parse->localdata; in trimbletsip_message()
5687 (void)trimbletsip_setup(parse, "bad io options"); in trimbletsip_message()
5834 set_var(&parse->kv, pbuffer, sizeof(pbuffer), var_flag); in trimbletsip_message()
5850 struct parseunit *parse in rawdcf_init_1() argument
5861 if (ioctl(parse->generic->io.fd, TIOCMGET, (caddr_t)&sl232) == -1) in rawdcf_init_1()
5863 …eiver #%d: rawdcf_init_1: WARNING: ioctl(fd, TIOCMGET, [C|T]IOCM_DTR): %m", CLK_UNIT(parse->peer)); in rawdcf_init_1()
5873 if (ioctl(parse->generic->io.fd, TIOCMSET, (caddr_t)&sl232) == -1) in rawdcf_init_1()
5875 …eiver #%d: rawdcf_init_1: WARNING: ioctl(fd, TIOCMSET, [C|T]IOCM_DTR): %m", CLK_UNIT(parse->peer)); in rawdcf_init_1()
5882 struct parseunit *parse in rawdcfdtr_init_1() argument
5885 …it_1: WARNING: OS interface incapable of setting DTR to power DCF modules", CLK_UNIT(parse->peer)); in rawdcfdtr_init_1()
5897 struct parseunit *parse in rawdcf_init_2() argument
5908 if (ioctl(parse->generic->io.fd, TIOCMGET, (caddr_t)&sl232) == -1) in rawdcf_init_2()
5910 …eiver #%d: rawdcf_init_2: WARNING: ioctl(fd, TIOCMGET, [C|T]IOCM_RTS): %m", CLK_UNIT(parse->peer)); in rawdcf_init_2()
5920 if (ioctl(parse->generic->io.fd, TIOCMSET, (caddr_t)&sl232) == -1) in rawdcf_init_2()
5922 …eiver #%d: rawdcf_init_2: WARNING: ioctl(fd, TIOCMSET, [C|T]IOCM_RTS): %m", CLK_UNIT(parse->peer)); in rawdcf_init_2()
5929 struct parseunit *parse in rawdcf_init_2() argument
5932 …it_2: WARNING: OS interface incapable of setting RTS to power DCF modules", CLK_UNIT(parse->peer)); in rawdcf_init_2()