posix-next API 0.1.0
Out-of-tree Zephyr POSIX module
Loading...
Searching...
No Matches
sched.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2018-2023 Intel Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
15#ifndef ZEPHYR_INCLUDE_POSIX_SCHED_H_
16#define ZEPHYR_INCLUDE_POSIX_SCHED_H_
17
18#include <sys/types.h>
19#include <time.h>
20
21#include <zephyr/kernel.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
33#define SCHED_OTHER 0
34
36#define SCHED_FIFO 1
37
39#define SCHED_RR 2
40
41#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER) || \
42 defined(__DOXYGEN__)
47#define SCHED_SPORADIC 4
48#endif
49
50#if (defined(CONFIG_MINIMAL_LIBC) || defined(CONFIG_PICOLIBC) || defined(CONFIG_ARMCLANG_STD_LIBC) \
51 || defined(CONFIG_ARCMWDT_LIBC)) && !defined(_SCHED_PARAM_DEFINED) && \
52 !defined(__sched_param_defined)
54struct sched_param {
55 int sched_priority;
56#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER) || \
57 defined(__DOXYGEN__)
58 struct timespec sched_ss_repl_period;
59 struct timespec sched_ss_init_budget;
60 int sched_ss_low_priority;
61 int sched_ss_max_repl;
62#endif
63};
64#define _SCHED_PARAM_DEFINED
65#define __sched_param_defined
66#endif
67
77int sched_yield(void);
78
86int sched_get_priority_min(int policy);
87
95int sched_get_priority_max(int policy);
96
105int sched_getparam(pid_t pid, struct sched_param *param);
106
116
125int sched_setparam(pid_t pid, const struct sched_param *param);
126
136int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param);
137
146int sched_rr_get_interval(pid_t pid, struct timespec *interval);
147
148#ifdef __cplusplus
149}
150#endif
151
152#endif /* ZEPHYR_INCLUDE_POSIX_SCHED_H_ */
int pid_t
Process ID type.
Definition fcntl.h:192
int sched_yield(void)
Yield the processor to another thread of equal or higher priority.
int sched_setparam(pid_t pid, const struct sched_param *param)
Set scheduling parameters for a process.
int sched_rr_get_interval(pid_t pid, struct timespec *interval)
Get the round-robin time quantum for a process.
int sched_getparam(pid_t pid, struct sched_param *param)
Get scheduling parameters for a process.
int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param)
Set the scheduling policy and parameters of a process.
int sched_getscheduler(pid_t pid)
Get the scheduling policy of a process.
int sched_get_priority_min(int policy)
Get the minimum priority value for a scheduling policy.
int sched_get_priority_max(int policy)
Get the maximum priority value for a scheduling policy.
Time value with nanosecond resolution.
Definition aio.h:65
POSIX time-of-day types and functions (<sys/time.h>)
POSIX fundamental types (<sys/types.h>)