diff --git a/headers/posix/sched.h b/headers/posix/sched.h index b4fb4c5efe..b5598a1568 100644 --- a/headers/posix/sched.h +++ b/headers/posix/sched.h @@ -5,18 +5,21 @@ #ifndef _SCHED_H_ #define _SCHED_H_ + #ifdef __cplusplus extern "C" { #endif -#define SCHED_OTHER 1 -#define SCHED_RR 2 -#define SCHED_FIFO 4 + +#define SCHED_OTHER 1 +#define SCHED_RR 2 +#define SCHED_FIFO 4 struct sched_param { int sched_priority; }; + extern int sched_yield(void); extern int sched_get_priority_min(int); extern int sched_get_priority_max(int); diff --git a/src/system/libroot/posix/pthread/pthread_attr.c b/src/system/libroot/posix/pthread/pthread_attr.c index 559040eca2..3054690632 100644 --- a/src/system/libroot/posix/pthread/pthread_attr.c +++ b/src/system/libroot/posix/pthread/pthread_attr.c @@ -5,6 +5,7 @@ * Distributed under the terms of the MIT License. */ + #include #include "pthread_private.h" @@ -13,6 +14,7 @@ #include + int pthread_attr_init(pthread_attr_t *_attr) { @@ -134,25 +136,29 @@ pthread_attr_setscope(pthread_attr_t *attr, int contentionScope) return 0; } -int -pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param) + +int +pthread_attr_setschedparam(pthread_attr_t *attr, + const struct sched_param *param) { - if (attr == NULL || param == NULL) - return EINVAL; + if (attr == NULL || param == NULL) + return EINVAL; (*attr)->sched_priority = param->sched_priority; return 0; } + int -pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param) +pthread_attr_getschedparam(const pthread_attr_t *attr, + struct sched_param *param) { - if (attr == NULL || param == NULL) - return EINVAL; + if (attr == NULL || param == NULL) + return EINVAL; - param->sched_priority = (*attr)->sched_priority; + param->sched_priority = (*attr)->sched_priority; - return 0; + return 0; } diff --git a/src/system/libroot/posix/scheduler.cpp b/src/system/libroot/posix/scheduler.cpp index 5f33a3d18d..cb9a59bf92 100644 --- a/src/system/libroot/posix/scheduler.cpp +++ b/src/system/libroot/posix/scheduler.cpp @@ -4,6 +4,7 @@ * Distributed under the terms of the MIT license. */ + #include #include @@ -28,6 +29,7 @@ sched_get_priority_min(int policy) case SCHED_RR: case SCHED_OTHER: return B_LOW_PRIORITY; + default: errno = EINVAL; return -1; @@ -42,7 +44,8 @@ sched_get_priority_max(int policy) case SCHED_FIFO: case SCHED_RR: case SCHED_OTHER: - return B_REAL_TIME_PRIORITY; + return B_URGENT_DISPLAY_PRIORITY; + default: errno = EINVAL; return -1;