summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libpthread/pthread_setschedparam.c
blob: df007c4087bd29fa202993f58c9432e2063c3ba7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <unistd.h>
#include <errno.h>

#include <pthread.h>
#include "thread_internal.h"

int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param)
{
  __THREAD_INIT();

  if (__find_thread_id(target_thread)<0) {
    return ESRCH;
  }

  if (((policy == SCHED_OTHER) && (param->sched_priority==0)) ||
      (((policy == SCHED_RR) || (policy == SCHED_FIFO)) &&
       ((param->sched_priority > 0) && (param->sched_priority <100))))
    return sched_setscheduler(target_thread, policy, param);

  return EINVAL;
}