1# Copyright (c) 2018 Intel Corporation
2# Copyright (c) 2024 Tenstorrent AI ULC
3#
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig POSIX_TIMERS
7	bool "POSIX timers, clocks, and sleep functions"
8	help
9	  Select 'y' here and Zephyr will provide implementations of clock_getres(), clock_gettime(),
10	  clock_settime(), nanosleep(), timer_create(), timer_delete(), timer_getoverrun(),
11	  timer_settime(), and timer_gettime().
12
13	  For more information, please see
14	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html
15
16if POSIX_TIMERS
17
18config POSIX_THREAD_CPUTIME
19	bool "POSIX per-thread CPU-time clocks"
20	help
21	  This enables CLOCK_THREAD_CPUTIME_ID.
22
23	  For more information, please see
24	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html
25	  https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_118
26	  https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_08_05_04
27
28config POSIX_MONOTONIC_CLOCK
29	bool "POSIX Monotonic clock support"
30	help
31	  This enables CLOCK_MONOTONIC.
32
33	  For more information, please see
34	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html
35	  https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_08_05_03
36
37config POSIX_CPUTIME
38	bool "POSIX per-process CPU-time clocks"
39	help
40	  This enables CLOCK_PROCESS_CPUTIME_ID.
41
42	  For more information, please see
43	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html
44	  https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_118
45	  https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_08_05_04
46
47config POSIX_CLOCK_SELECTION
48	bool "POSIX Clock selection"
49	help
50	  This enables POSIX clock selection.
51
52	  For more information, please see
53	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html
54	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html#tag_24_03_04
55
56config POSIX_DELAYTIMER_MAX
57	int "Maximum count returned my timer_getoverrun() in POSIX application"
58	default 32
59	help
60	  This controls the maximum number of times a timer can overrun before
61	  timer_getoverrun() in POSIX compliant application.
62
63	  For more information, please see
64	  https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
65
66config POSIX_TIMER_MAX
67	int "Maximum number of POSIX timers per process"
68	default 32
69	help
70	  Maximum simultaneously active timer_t in a POSIX application.
71
72	  For more information, please see
73	  https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
74
75config POSIX_TIMEOUTS
76	bool "Support timeouts for some blocking POSIX services"
77	help
78	  Enable mandatory timeouts for some blocking operations.
79
80	  For more information, please see
81	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_port.html
82	  https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap02.html
83
84config TIMER_CREATE_WAIT
85	int "Time to wait for timer availability (in msec) in POSIX application"
86	default 100
87	range 0 1000
88	help
89	  This controls how long to wait for resources to come available to create
90	  a new timer in POSIX compliant application
91
92module = TIMER
93module-str = POSIX Timers
94source "subsys/logging/Kconfig.template.log_config"
95
96endif # POSIX_TIMERS
97