diff options
Diffstat (limited to 'kern/thread_i.h')
-rw-r--r-- | kern/thread_i.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/kern/thread_i.h b/kern/thread_i.h index 41167261..752eb944 100644 --- a/kern/thread_i.h +++ b/kern/thread_i.h @@ -50,7 +50,6 @@ struct thread_fs_runq; */ struct thread_rt_data { struct list node; - unsigned short priority; unsigned short time_slice; }; @@ -62,12 +61,20 @@ struct thread_fs_data { struct list runq_node; struct thread_fs_runq *fs_runq; unsigned long round; - unsigned short priority; unsigned short weight; unsigned short work; }; /* + * Common scheduling data. + */ +struct thread_sched_data { + unsigned char sched_policy; + unsigned char sched_class; + unsigned short priority; +}; + +/* * Maximum number of thread-specific data keys. */ #define THREAD_KEYS_MAX 4 @@ -93,14 +100,13 @@ struct thread { unsigned short pinned; unsigned short llsync_read; - /* Common scheduling properties */ - unsigned char sched_policy; - unsigned char sched_class; - /* Processors on which this thread is allowed to run */ struct cpumap cpumap; - /* Scheduling class specific data */ + /* Scheduling data */ + struct thread_sched_data sched_data; + + /* Class specific scheduling data */ union { struct thread_rt_data rt_data; struct thread_fs_data fs_data; |