Lines Matching refs:leitch
147 struct leitchunit *leitch; in leitch_shutdown() local
152 leitch = &leitchunits[unit]; in leitch_shutdown()
153 if (-1 != leitch->leitchio.fd) in leitch_shutdown()
154 io_closeclock(&leitch->leitchio); in leitch_shutdown()
170 struct leitchunit *leitch; in leitch_poll() local
183 leitch = &leitchunits[unit]; in leitch_poll()
185 if (leitch->state != STATE_IDLE) { in leitch_poll()
188 leitch->state = STATE_IDLE; in leitch_poll()
190 leitch_send(leitch,"D\r"); in leitch_poll()
191 leitch->state = STATE_DATE; in leitch_poll()
243 struct leitchunit *leitch; in leitch_start() local
271 leitch = &leitchunits[unit]; in leitch_start()
272 memset(leitch, 0, sizeof(*leitch)); in leitch_start()
352 leitch->peer = peer; in leitch_start()
353 leitch->unit = unit; in leitch_start()
354 leitch->state = STATE_IDLE; in leitch_start()
355 leitch->fudge1 = 15; /* 15ms */ in leitch_start()
357 leitch->leitchio.clock_recv = leitch_receive; in leitch_start()
358 leitch->leitchio.srcclock = peer; in leitch_start()
359 leitch->leitchio.datalen = 0; in leitch_start()
360 leitch->leitchio.fd = fd232; in leitch_start()
361 if (!io_addclock(&leitch->leitchio)) { in leitch_start()
362 leitch->leitchio.fd = -1; in leitch_start()
393 struct leitchunit *leitch = rbufp->recv_peer->procptr->unitptr; in leitch_receive() local
405 switch (leitch->state) { in leitch_receive()
409 if (!leitch_get_date(rbufp,leitch)) { in leitch_receive()
410 leitch->state = STATE_IDLE; in leitch_receive()
413 leitch_send(leitch,"T\r"); in leitch_receive()
416 fprintf(stderr, "%u\n",leitch->yearday); in leitch_receive()
418 leitch->state = STATE_TIME1; in leitch_receive()
421 if (!leitch_get_time(rbufp,leitch,1)) { in leitch_receive()
423 if (!clocktime(leitch->yearday,leitch->hour,leitch->minute, in leitch_receive()
424 leitch->second, 1, rbufp->recv_time.l_ui, in leitch_receive()
425 &leitch->yearstart, &leitch->reftime1.l_ui)) { in leitch_receive()
426 leitch->state = STATE_IDLE; in leitch_receive()
429 leitch->reftime1.l_uf = 0; in leitch_receive()
432 fprintf(stderr, "%lu\n", (u_long)leitch->reftime1.l_ui); in leitch_receive()
434 MSUTOTSF(leitch->fudge1, leitch->reftime1.l_uf); in leitch_receive()
435 leitch->codetime1 = rbufp->recv_time; in leitch_receive()
436 leitch->state = STATE_TIME2; in leitch_receive()
439 if (!leitch_get_time(rbufp,leitch,2)) { in leitch_receive()
441 if (!clocktime(leitch->yearday,leitch->hour,leitch->minute, in leitch_receive()
442 leitch->second, 1, rbufp->recv_time.l_ui, in leitch_receive()
443 &leitch->yearstart, &leitch->reftime2.l_ui)) { in leitch_receive()
444 leitch->state = STATE_IDLE; in leitch_receive()
449 fprintf(stderr, "%lu\n", (u_long)leitch->reftime2.l_ui); in leitch_receive()
451 MSUTOTSF(leitch->fudge1, leitch->reftime2.l_uf); in leitch_receive()
452 leitch->codetime2 = rbufp->recv_time; in leitch_receive()
453 leitch->state = STATE_TIME3; in leitch_receive()
456 if (!leitch_get_time(rbufp,leitch,3)) { in leitch_receive()
458 if (!clocktime(leitch->yearday,leitch->hour,leitch->minute, in leitch_receive()
459 leitch->second, GMT, rbufp->recv_time.l_ui, in leitch_receive()
460 &leitch->yearstart, &leitch->reftime3.l_ui)) { in leitch_receive()
461 leitch->state = STATE_IDLE; in leitch_receive()
466 fprintf(stderr, "%lu\n", (u_long)leitch->reftime3.l_ui); in leitch_receive()
468 MSUTOTSF(leitch->fudge1, leitch->reftime3.l_uf); in leitch_receive()
469 leitch->codetime3 = rbufp->recv_time; in leitch_receive()
470 leitch_process(leitch); in leitch_receive()
471 leitch->state = STATE_IDLE; in leitch_receive()
476 leitch->state, leitch->unit); in leitch_receive()
492 struct leitchunit *leitch in leitch_process() argument
499 off = leitch->reftime1; in leitch_process()
500 L_SUB(&off,&leitch->codetime1); in leitch_process()
501 tmp_fp = leitch->reftime2; in leitch_process()
502 L_SUB(&tmp_fp,&leitch->codetime2); in leitch_process()
505 tmp_fp = leitch->reftime3; in leitch_process()
506 L_SUB(&tmp_fp,&leitch->codetime3); in leitch_process()
511 refclock_receive(leitch->peer); in leitch_process()
540 struct leitchunit *leitch in leitch_get_date() argument
552 leitch->year = ATOB(0)*10 + ATOB(1); in leitch_get_date()
553 leitch->month = ATOB(2)*10 + ATOB(3); in leitch_get_date()
554 leitch->day = ATOB(4)*10 + ATOB(5); in leitch_get_date()
557 if (leitch->month > 12) in leitch_get_date()
559 if (leitch->day > days_in_month[leitch->month-1]) in leitch_get_date()
564 leitch->yearday = leitch->day; in leitch_get_date()
566 while ( i < (leitch->month-1) ) in leitch_get_date()
567 leitch->yearday += days_in_month[i++]; in leitch_get_date()
569 if ((days_per_year((leitch->year>90?1900:2000)+leitch->year)==365) && in leitch_get_date()
570 leitch->month > 2) in leitch_get_date()
571 leitch->yearday--; in leitch_get_date()
582 struct leitchunit *leitch, in leitch_get_time() argument
588 leitch->hour = ATOB(0)*10 +ATOB(1); in leitch_get_time()
589 leitch->minute = ATOB(2)*10 +ATOB(3); in leitch_get_time()
590 leitch->second = ATOB(4)*10 +ATOB(5); in leitch_get_time()
592 if ((leitch->hour > 23) || (leitch->minute > 60) || in leitch_get_time()
593 (leitch->second > 60)) in leitch_get_time()