|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*
- * piHiPri:
- * Simple way to get your program running at high priority
- * with realtime schedulling.
- *
- * Copyright (c) 2012 Gordon Henderson
- ***********************************************************************
- * This file is part of wiringPi:
- * https://github.com/WiringPi/WiringPi/
- *
- * wiringPi is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * wiringPi is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with wiringPi.
- * If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
- #include <sched.h>
- #include <string.h>
-
- #include "wiringPi.h"
-
-
- /*
- * piHiPri:
- * Attempt to set a high priority schedulling for the running program
- *********************************************************************************
- */
-
- int piHiPri (const int pri)
- {
- struct sched_param sched ;
-
- memset (&sched, 0, sizeof(sched)) ;
-
- if (pri > sched_get_priority_max (SCHED_RR))
- sched.sched_priority = sched_get_priority_max (SCHED_RR) ;
- else
- sched.sched_priority = pri ;
-
- return sched_setscheduler (0, SCHED_RR, &sched) ;
- }
|