summaryrefslogtreecommitdiff
path: root/firmware/thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/thread.c')
-rw-r--r--firmware/thread.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/firmware/thread.c b/firmware/thread.c
index 38933f623e..81ef42a6b0 100644
--- a/firmware/thread.c
+++ b/firmware/thread.c
@@ -2413,6 +2413,11 @@ unsigned int create_thread(void (*function)(void),
2413 prio_add_entry(&thread->pdist, priority); 2413 prio_add_entry(&thread->pdist, priority);
2414#endif 2414#endif
2415 2415
2416#ifdef HAVE_IO_PRIORITY
2417 /* Default to high (foreground) priority */
2418 thread->io_priority = IO_PRIORITY_IMMEDIATE;
2419#endif
2420
2416#if NUM_CORES > 1 2421#if NUM_CORES > 1
2417 thread->core = core; 2422 thread->core = core;
2418 2423
@@ -2918,6 +2923,20 @@ int thread_get_priority(unsigned int thread_id)
2918} 2923}
2919#endif /* HAVE_PRIORITY_SCHEDULING */ 2924#endif /* HAVE_PRIORITY_SCHEDULING */
2920 2925
2926#ifdef HAVE_IO_PRIORITY
2927int thread_get_io_priority(unsigned int thread_id)
2928{
2929 struct thread_entry *thread = thread_id_entry(thread_id);
2930 return thread->io_priority;
2931}
2932
2933void thread_set_io_priority(unsigned int thread_id,int io_priority)
2934{
2935 struct thread_entry *thread = thread_id_entry(thread_id);
2936 thread->io_priority = io_priority;
2937}
2938#endif
2939
2921/*--------------------------------------------------------------------------- 2940/*---------------------------------------------------------------------------
2922 * Starts a frozen thread - similar semantics to wakeup_thread except that 2941 * Starts a frozen thread - similar semantics to wakeup_thread except that
2923 * the thread is on no scheduler or wakeup queue at all. It exists simply by 2942 * the thread is on no scheduler or wakeup queue at all. It exists simply by