summaryrefslogtreecommitdiff
path: root/src/ntp.c
diff options
context:
space:
mode:
authorGrant Erickson <marathon96@gmail.com>2012-07-16 09:47:58 -0700
committerDaniel Wagner <daniel.wagner@bmw-carit.de>2012-07-17 10:12:59 +0200
commita8edee9468a2848f83f859e7ae3945b282867d50 (patch)
tree63cea03a02c0a89c007dfca94f4d93385d6915ff /src/ntp.c
parent9be8311f0f27033c84a1be4fcabd16999002cfad (diff)
downloadconnman-a8edee9468a2848f83f859e7ae3945b282867d50.tar.gz
connman-a8edee9468a2848f83f859e7ae3945b282867d50.tar.bz2
connman-a8edee9468a2848f83f859e7ae3945b282867d50.zip
ntp: Add mnemonics for the flags (leap, version, mode) packet field
Diffstat (limited to 'src/ntp.c')
-rw-r--r--src/ntp.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/ntp.c b/src/ntp.c
index 8c31fdb6..75556180 100644
--- a/src/ntp.c
+++ b/src/ntp.c
@@ -69,6 +69,36 @@ struct ntp_msg {
#define LOGTOD(a) ((a) < 0 ? 1. / (1L << -(a)) : 1L << (int)(a))
+#define NTP_FLAG_LI_SHIFT 6
+#define NTP_FLAG_LI_MASK 0x3
+#define NTP_FLAG_LI_NOWARNING 0x0
+#define NTP_FLAG_LI_ADDSECOND 0x1
+#define NTP_FLAG_LI_DELSECOND 0x2
+#define NTP_FLAG_LI_NOTINSYNC 0x3
+
+#define NTP_FLAG_VN_SHIFT 3
+#define NTP_FLAG_VN_MASK 0x7
+
+#define NTP_FLAG_MD_SHIFT 0
+#define NTP_FLAG_MD_MASK 0x7
+#define NTP_FLAG_MD_UNSPEC 0
+#define NTP_FLAG_MD_ACTIVE 1
+#define NTP_FLAG_MD_PASSIVE 2
+#define NTP_FLAG_MD_CLIENT 3
+#define NTP_FLAG_MD_SERVER 4
+#define NTP_FLAG_MD_BROADCAST 5
+#define NTP_FLAG_MD_CONTROL 6
+#define NTP_FLAG_MD_PRIVATE 7
+
+#define NTP_FLAGS_ENCODE(li, vn, md) ((uint8_t)( \
+ (((li) & NTP_FLAG_LI_MASK) << NTP_FLAG_LI_SHIFT) | \
+ (((vn) & NTP_FLAG_VN_MASK) << NTP_FLAG_VN_SHIFT) | \
+ (((md) & NTP_FLAG_MD_MASK) << NTP_FLAG_MD_SHIFT)))
+
+#define NTP_FLAGS_LI_DECODE(flags) ((uint8_t)(((flags) >> NTP_FLAG_LI_SHIFT) & NTP_FLAG_LI_MASK))
+#define NTP_FLAGS_VN_DECODE(flags) ((uint8_t)(((flags) >> NTP_FLAG_VN_SHIFT) & NTP_FLAG_VN_MASK))
+#define NTP_FLAGS_MD_DECODE(flags) ((uint8_t)(((flags) >> NTP_FLAG_MD_SHIFT) & NTP_FLAG_MD_MASK))
+
static guint channel_watch = 0;
static struct timeval transmit_timeval;
static int transmit_fd = 0;