Skip to content

Commit 6c0893a

Browse files
committed
posix: time.h: move definitions to time.h of the minimal libc
In order to reduce conflicts with time.h in external C libraries, move Zephyr's POSIX time.h definitions to time.h in the minimal C library. Signed-off-by: Chris Friedt <[email protected]>
1 parent bfd2ac7 commit 6c0893a

File tree

3 files changed

+237
-135
lines changed

3 files changed

+237
-135
lines changed

include/zephyr/posix/posix_types.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,13 @@ typedef unsigned long blkcnt_t;
7676
#endif
7777

7878
#if !defined(CONFIG_ARCMWDT_LIBC)
79-
typedef int pid_t;
79+
80+
#if (!defined(_PID_T_DECLARED) && !defined(__pid_t_defined)) || defined(__DOXYGEN__)
81+
typedef long pid_t;
82+
#define _PID_T_DECLARED
83+
#define __pid_t_defined
84+
#endif
85+
8086
#endif
8187

8288
#ifndef __useconds_t_defined

include/zephyr/posix/time.h

Lines changed: 1 addition & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -3,112 +3,6 @@
33
*
44
* SPDX-License-Identifier: Apache-2.0
55
*/
6-
#ifndef ZEPHYR_INCLUDE_POSIX_TIME_H_
7-
#define ZEPHYR_INCLUDE_POSIX_TIME_H_
86

9-
/* Read standard header. This may find <posix/time.h> since they
10-
* refer to the same file when include/posix is in the search path.
11-
*/
12-
#include <time.h>
13-
14-
#ifdef CONFIG_NEWLIB_LIBC
15-
/* Kludge to support outdated newlib version as used in SDK 0.10 for Xtensa */
16-
#include <newlib.h>
17-
18-
#ifdef __NEWLIB__
19-
/* Newever Newlib 3.x+ */
20-
#include <sys/timespec.h>
21-
#else /* __NEWLIB__ */
22-
/* Workaround for older Newlib 2.x, as used by Xtensa. It lacks sys/_timeval.h,
23-
* so mimic it here.
24-
*/
25-
#include <sys/types.h>
26-
#ifndef __timespec_defined
27-
28-
#ifdef __cplusplus
29-
extern "C" {
30-
#endif
31-
32-
struct timespec {
33-
time_t tv_sec;
34-
long tv_nsec;
35-
};
36-
37-
struct itimerspec {
38-
struct timespec it_interval; /* Timer interval */
39-
struct timespec it_value; /* Timer expiration */
40-
};
41-
42-
#ifdef __cplusplus
43-
}
44-
#endif
45-
46-
#endif /* __timespec_defined */
47-
#endif /* __NEWLIB__ */
48-
49-
#else /* CONFIG_NEWLIB_LIBC */
50-
/* Not Newlib */
51-
# if defined(CONFIG_ARCH_POSIX) && defined(CONFIG_EXTERNAL_LIBC)
52-
# include <bits/types/struct_timespec.h>
53-
# include <bits/types/struct_itimerspec.h>
54-
# else
55-
# include <sys/timespec.h>
56-
# endif
57-
#endif /* CONFIG_NEWLIB_LIBC */
58-
59-
#include <zephyr/kernel.h>
60-
#include <errno.h>
61-
#include <zephyr/posix/posix_types.h>
62-
#include <zephyr/posix/signal.h>
63-
#include <zephyr/sys/clock.h>
64-
65-
#ifdef __cplusplus
66-
extern "C" {
67-
#endif
68-
69-
#ifndef CLOCK_REALTIME
70-
#define CLOCK_REALTIME SYS_CLOCK_REALTIME
71-
#endif
72-
73-
#ifndef CLOCK_PROCESS_CPUTIME_ID
74-
#define CLOCK_PROCESS_CPUTIME_ID 2
75-
#endif
76-
77-
#ifndef CLOCK_THREAD_CPUTIME_ID
78-
#define CLOCK_THREAD_CPUTIME_ID 3
79-
#endif
80-
81-
#ifndef CLOCK_MONOTONIC
82-
#define CLOCK_MONOTONIC SYS_CLOCK_MONOTONIC
83-
#endif
84-
85-
#ifndef TIMER_ABSTIME
86-
#define TIMER_ABSTIME SYS_TIMER_ABSTIME
87-
#endif
88-
89-
int clock_gettime(clockid_t clock_id, struct timespec *ts);
90-
int clock_getres(clockid_t clock_id, struct timespec *ts);
91-
int clock_settime(clockid_t clock_id, const struct timespec *ts);
92-
int clock_getcpuclockid(pid_t pid, clockid_t *clock_id);
93-
/* Timer APIs */
94-
int timer_create(clockid_t clockId, struct sigevent *evp, timer_t *timerid);
95-
int timer_delete(timer_t timerid);
96-
struct itimerspec;
97-
int timer_gettime(timer_t timerid, struct itimerspec *its);
98-
int timer_settime(timer_t timerid, int flags, const struct itimerspec *value,
99-
struct itimerspec *ovalue);
100-
int timer_getoverrun(timer_t timerid);
101-
int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
102-
int clock_nanosleep(clockid_t clock_id, int flags,
103-
const struct timespec *rqtp, struct timespec *rmtp);
104-
105-
#ifdef __cplusplus
106-
}
107-
#endif
108-
109-
#else /* ZEPHYR_INCLUDE_POSIX_TIME_H_ */
110-
/* Read the toolchain header when <posix/time.h> finds itself on the
111-
* first attempt.
112-
*/
7+
/* TODO: Deprecate including this header */
1138
#include_next <time.h>
114-
#endif /* ZEPHYR_INCLUDE_POSIX_TIME_H_ */

0 commit comments

Comments
 (0)