#include "cfg/cfg_proc.h"
#include "cfg/cfg_signal.h"
#include "cfg/cfg_monitor.h"
+#include "sem.h"
#include <struct/list.h> // Node, PriNode
#include <cpu/types.h> // cpu_stack_t
#include <cpu/frame.h> // CPU_SAVED_REGS_CNT
+/* The following silents warnings on nightly tests. We need to regenerate
+ * all the projects before this can be removed.
+ */
+#ifndef CONFIG_KERN_PRI_INHERIT
+#define CONFIG_KERN_PRI_INHERIT 0
+#endif
+
/*
* WARNING: struct Process is considered private, so its definition can change any time
* without notice. DO NOT RELY on any field defined here, use only the interface
{
#if CONFIG_KERN_PRI
PriNode link; /**< Link Process into scheduler lists */
+# if CONFIG_KERN_PRI_INHERIT
+ PriNode inh_link; /**< Link Process into priority inheritance lists */
+ List inh_list; /**< Priority inheritance list for this Process */
+ Semaphore *inh_blocked_by; /**< Semaphore blocking this Process */
+ int orig_pri; /**< Process priority without considering inheritance */
+# endif
#else
Node link; /**< Link Process into scheduler lists */
#endif
#if CONFIG_KERN_PRI
void proc_setPri(struct Process *proc, int pri);
+
+ INLINE int proc_pri(struct Process *proc)
+ {
+ return proc->link.pri;
+ }
#else
INLINE void proc_setPri(UNUSED_ARG(struct Process *,proc), UNUSED_ARG(int, pri))
{
}
+
+ INLINE int proc_pri(UNUSED_ARG(struct Process *, proc))
+ {
+ return 0;
+ }
#endif
#if CONFIG_KERN_PREEMPT