Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
sntp.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2017 Linaro Limited
3 * Copyright (c) 2019 Intel Corporation
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
13#ifndef ZEPHYR_INCLUDE_NET_SNTP_H_
14#define ZEPHYR_INCLUDE_NET_SNTP_H_
15
16#include <zephyr/net/socket.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
32struct sntp_time {
35#if defined(CONFIG_SNTP_UNCERTAINTY)
36 uint64_t uptime_us;
37 uint32_t uncertainty_us;
38#endif
39};
40
42struct sntp_ctx {
43
45 struct {
46 struct zsock_pollfd fds[1];
47 int nfds;
48 int fd;
49 } sock;
57};
58
68int sntp_init(struct sntp_ctx *ctx, struct sockaddr *addr,
69 socklen_t addr_len);
70
81int sntp_query(struct sntp_ctx *ctx, uint32_t timeout, struct sntp_time *ts);
82
93int sntp_recv_response(struct sntp_ctx *ctx, uint32_t timeout, struct sntp_time *ts);
94
100void sntp_close(struct sntp_ctx *ctx);
101
115int sntp_simple(const char *server, uint32_t timeout,
116 struct sntp_time *ts);
117
133int sntp_simple_addr(struct sockaddr *addr, socklen_t addr_len, uint32_t timeout,
134 struct sntp_time *ts);
135
136#ifdef __cplusplus
137}
138#endif
139
144#endif
size_t socklen_t
Length of a socket address.
Definition net_ip.h:171
void sntp_close(struct sntp_ctx *ctx)
Release SNTP context.
int sntp_simple(const char *server, uint32_t timeout, struct sntp_time *ts)
Convenience function to query SNTP in one-shot fashion.
int sntp_query(struct sntp_ctx *ctx, uint32_t timeout, struct sntp_time *ts)
Perform SNTP query.
int sntp_simple_addr(struct sockaddr *addr, socklen_t addr_len, uint32_t timeout, struct sntp_time *ts)
Convenience function to query SNTP in one-shot fashion using a pre-initialized address struct.
int sntp_recv_response(struct sntp_ctx *ctx, uint32_t timeout, struct sntp_time *ts)
Attempt to receive an SNTP response after issuing a query.
int sntp_init(struct sntp_ctx *ctx, struct sockaddr *addr, socklen_t addr_len)
Initialize SNTP context.
BSD Sockets compatible API definitions.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
SNTP context.
Definition sntp.h:42
struct sntp_time expected_orig_ts
Timestamp when the request was sent from client to server.
Definition sntp.h:56
Time as returned by SNTP API, fractional seconds since 1 Jan 1970.
Definition sntp.h:32
uint64_t seconds
Second value.
Definition sntp.h:33
uint32_t fraction
Fractional seconds value.
Definition sntp.h:34
Generic sockaddr struct.
Definition net_ip.h:388
Definition of the monitored socket/file descriptor.
Definition socket_poll.h:31