maa: add maa_set_priority call
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
11
api/maa.h
11
api/maa.h
@@ -195,6 +195,17 @@ maa_result_t maa_init() __attribute__((constructor));
|
|||||||
maa_result_t maa_init();
|
maa_result_t maa_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function attempts to set the maa process to a given priority and the
|
||||||
|
* scheduler to SCHED_RR. Highest * priority is typically 99 and minimum is 0.
|
||||||
|
* This function * will set to MAX if * priority is > MAX. Function will return
|
||||||
|
* -1 on failure.
|
||||||
|
|
||||||
|
* @param priority Value from typically 0 to 99
|
||||||
|
* @return The priority value set
|
||||||
|
*/
|
||||||
|
int maa_set_priority(const unsigned int priority);
|
||||||
|
|
||||||
/** Get the version string of maa autogenerated from git tag
|
/** Get the version string of maa autogenerated from git tag
|
||||||
*
|
*
|
||||||
* The version returned may not be what is expected however it is a reliable
|
* The version returned may not be what is expected however it is a reliable
|
||||||
|
|||||||
18
src/maa.c
18
src/maa.c
@@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <sched.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include "maa.h"
|
#include "maa.h"
|
||||||
#include "maa_internal.h"
|
#include "maa_internal.h"
|
||||||
@@ -65,6 +67,22 @@ maa_init()
|
|||||||
return MAA_SUCCESS;
|
return MAA_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
maa_set_priority(const unsigned int priority)
|
||||||
|
{
|
||||||
|
struct sched_param sched_s;
|
||||||
|
|
||||||
|
memset(&sched_s, 0, sizeof(struct sched_param));
|
||||||
|
if (priority > sched_get_priority_max(SCHED_RR)) {
|
||||||
|
sched_s.sched_priority = sched_get_priority_max(SCHED_RR);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sched_s.sched_priority = priority;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sched_setscheduler(0, SCHED_RR, &sched_s);
|
||||||
|
}
|
||||||
|
|
||||||
static maa_result_t
|
static maa_result_t
|
||||||
maa_setup_mux_mapped(maa_pin_t meta)
|
maa_setup_mux_mapped(maa_pin_t meta)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,6 +24,9 @@
|
|||||||
%rename(getVersion) maa_get_version();
|
%rename(getVersion) maa_get_version();
|
||||||
const char * maa_get_version();
|
const char * maa_get_version();
|
||||||
|
|
||||||
|
%rename(setPriority) maa_set_priority;
|
||||||
|
int maa_set_priority(const unsigned int);
|
||||||
|
|
||||||
%rename(printError) maa_result_print(maa_result_t error);
|
%rename(printError) maa_result_print(maa_result_t error);
|
||||||
void maa_result_print(maa_result_t error);
|
void maa_result_print(maa_result_t error);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user