Skip to content
Snippets Groups Projects
sntp.h 1.36 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * (C) Masami Komiya <mkomiya@sonare.it> 2005
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License as
     * published by the Free Software Foundation; either version 2, or (at
     * your option) any later version.
     */
    
    #ifndef __SNTP_H__
    #define __SNTP_H__
    
    #define NTP_SERVICE_PORT	123
    #define SNTP_PACKET_LEN		48
    
    
    /* Leap Indicator */
    #define NTP_LI_NOLEAP		0x0
    #define NTP_LI_61SECS		0x1
    #define NTP_LI_59SECS		0x2
    #define NTP_LI_ALARM		0x3
    
    /* Version */
    
    #define NTP_VERSION		4
    
    /* Mode */
    #define NTP_MODE_RESERVED	0
    #define NTP_MODE_SYMACTIVE	1	/* Symmetric Active */
    #define NTP_MODE_SYMPASSIVE	2	/* Symmetric Passive */
    #define NTP_MODE_CLIENT		3
    #define NTP_MODE_SERVER		4
    #define NTP_MODE_BROADCAST	5
    #define NTP_MODE_NTPCTRL	6	/* Reserved for NTP control message */
    #define NTP_MODE_PRIVATE	7	/* Reserved for private use */
    
    struct sntp_pkt_t {
    #if __LITTLE_ENDIAN
    	uchar mode:3;
    	uchar vn:3;
    	uchar li:2;
    #else
    	uchar li:2;
    	uchar vn:3;
    	uchar mode:3;
    #endif
    	uchar stratum;
    	uchar poll;
    	uchar precision;
    	uint root_delay;
    	uint root_dispersion;
    	uint reference_id;
    	unsigned long long reference_timestamp;
    	unsigned long long originate_timestamp;
    	unsigned long long receive_timestamp;
    	unsigned long long transmit_timestamp;
    };
    
    extern void	SntpStart (void);	/* Begin SNTP */
    
    #endif /* __SNTP_H__ */