1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * (C) Masami Komiya <mkomiya@sonare.it> 2005 4 */ 5 6#ifndef __SNTP_H__ 7#define __SNTP_H__ 8 9#define NTP_SERVICE_PORT 123 10#define SNTP_PACKET_LEN 48 11 12 13/* Leap Indicator */ 14#define NTP_LI_NOLEAP 0x0 15#define NTP_LI_61SECS 0x1 16#define NTP_LI_59SECS 0x2 17#define NTP_LI_ALARM 0x3 18 19/* Version */ 20 21#define NTP_VERSION 4 22 23/* Mode */ 24#define NTP_MODE_RESERVED 0 25#define NTP_MODE_SYMACTIVE 1 /* Symmetric Active */ 26#define NTP_MODE_SYMPASSIVE 2 /* Symmetric Passive */ 27#define NTP_MODE_CLIENT 3 28#define NTP_MODE_SERVER 4 29#define NTP_MODE_BROADCAST 5 30#define NTP_MODE_NTPCTRL 6 /* Reserved for NTP control message */ 31#define NTP_MODE_PRIVATE 7 /* Reserved for private use */ 32 33struct sntp_pkt_t { 34#if __LITTLE_ENDIAN 35 uchar mode:3; 36 uchar vn:3; 37 uchar li:2; 38#else 39 uchar li:2; 40 uchar vn:3; 41 uchar mode:3; 42#endif 43 uchar stratum; 44 uchar poll; 45 uchar precision; 46 uint root_delay; 47 uint root_dispersion; 48 uint reference_id; 49 unsigned long long reference_timestamp; 50 unsigned long long originate_timestamp; 51 unsigned long long receive_timestamp; 52 unsigned long long transmit_timestamp; 53} __attribute__((packed)); 54 55int sntp_prereq(void *data); 56int sntp_start(void *data); /* Begin SNTP */ 57 58#endif /* __SNTP_H__ */ 59