rt-thread/components/libc/posix/pthreads/sched.c

58 lines
985 B
C
Raw Normal View History

2013-06-26 23:18:30 +08:00
/*
2021-03-08 18:19:04 +08:00
* Copyright (c) 2006-2021, RT-Thread Development Team
2013-06-26 23:18:30 +08:00
*
2018-10-14 19:28:18 +08:00
* SPDX-License-Identifier: Apache-2.0
2013-06-26 23:18:30 +08:00
*
* Change Logs:
* Date Author Notes
*/
2013-01-08 22:40:58 +08:00
#include <sched.h>
int sched_yield(void)
{
2013-06-26 23:18:30 +08:00
rt_thread_yield();
return 0;
2013-01-08 22:40:58 +08:00
}
RTM_EXPORT(sched_yield);
int sched_get_priority_min(int policy)
{
2013-06-26 23:18:30 +08:00
if (policy != SCHED_FIFO && policy != SCHED_RR)
return EINVAL;
2013-01-08 22:40:58 +08:00
2013-06-26 23:18:30 +08:00
return 0;
2013-01-08 22:40:58 +08:00
}
RTM_EXPORT(sched_get_priority_min);
int sched_get_priority_max(int policy)
{
2013-06-26 23:18:30 +08:00
if (policy != SCHED_FIFO && policy != SCHED_RR)
return EINVAL;
2013-01-08 22:40:58 +08:00
2013-06-26 23:18:30 +08:00
return RT_THREAD_PRIORITY_MAX - 1;
2013-01-08 22:40:58 +08:00
}
RTM_EXPORT(sched_get_priority_max);
int sched_setscheduler(pid_t pid, int policy)
{
2014-03-11 16:05:14 +08:00
return EOPNOTSUPP;
2013-01-08 22:40:58 +08:00
}
RTM_EXPORT(sched_setscheduler);
int sched_rr_get_interval(pid_t pid, struct timespec *tp)
{
if(pid != 0)
{
return EINVAL;
}
rt_set_errno(-EINVAL);
/* course model, don't support */
// TODO
return -1;
}
RTM_EXPORT(sched_rr_get_interval);