Line data Source code
1 1 : /*
2 : * Copyright (c) 2021 Nordic Semiconductor
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : /**
8 : * @file
9 : * @brief socket types definitionis
10 : */
11 :
12 : #ifndef ZEPHYR_INCLUDE_NET_SOCKET_TYPES_H_
13 : #define ZEPHYR_INCLUDE_NET_SOCKET_TYPES_H_
14 :
15 : /**
16 : * @brief BSD Sockets compatible API
17 : * @defgroup bsd_sockets BSD Sockets compatible API
18 : * @ingroup networking
19 : * @{
20 : */
21 :
22 : #include <zephyr/types.h>
23 :
24 : /** @cond INTERNAL_HIDDEN */
25 :
26 : #ifdef CONFIG_NEWLIB_LIBC
27 :
28 : #include <newlib.h>
29 :
30 : #ifdef __NEWLIB__
31 : #include <sys/_timeval.h>
32 : #else /* __NEWLIB__ */
33 : #include <sys/types.h>
34 : /* workaround for older Newlib 2.x, as it lacks sys/_timeval.h */
35 : struct timeval {
36 : time_t tv_sec;
37 : suseconds_t tv_usec;
38 : };
39 : #endif /* __NEWLIB__ */
40 :
41 : #else /* CONFIG_NEWLIB_LIBC */
42 :
43 : #if defined(CONFIG_ARCH_POSIX) && defined(CONFIG_EXTERNAL_LIBC)
44 : #include <bits/types/struct_timeval.h>
45 : #else
46 : #include <sys/_timeval.h>
47 : #endif
48 :
49 : #endif /* CONFIG_NEWLIB_LIBC */
50 :
51 : #ifdef __cplusplus
52 : extern "C" {
53 : #endif
54 :
55 : #define zsock_timeval timeval
56 :
57 : #ifdef __cplusplus
58 : }
59 : #endif
60 :
61 : /** @endcond */
62 :
63 : /**
64 : * @}
65 : */
66 :
67 : #endif /* ZEPHYR_INCLUDE_NET_SOCKET_TYPES_H_ */
|