diff options
| author | Bernard Xiong <[email protected]> | 2022-11-06 08:59:12 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-11-06 08:59:12 +0800 |
| commit | 79e298147bb16808fe917e99a1a94c45a4f9183b (patch) | |
| tree | bd36bef5b91a24f6fbfac857e42fccd4bcda84a9 /include/rtdef.h | |
| parent | ac2fb2beab99768a3049afe7607c8eba7835edec (diff) | |
| parent | c06c4075f2e9462b67915029a9d6a074b301d13a (diff) | |
Merge pull request #6523 from BernardXiong/nested_mutex
[Kernel] Add nested mutex feature
Diffstat (limited to 'include/rtdef.h')
| -rw-r--r-- | include/rtdef.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/include/rtdef.h b/include/rtdef.h index 4a13c554a5..183d80a154 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -673,12 +673,19 @@ struct rt_thread /* priority */ rt_uint8_t current_priority; /**< current priority */ + rt_uint8_t init_priority; /**< initialized priority */ #if RT_THREAD_PRIORITY_MAX > 32 rt_uint8_t number; rt_uint8_t high_mask; #endif /* RT_THREAD_PRIORITY_MAX > 32 */ rt_uint32_t number_mask; +#ifdef RT_USING_MUTEX + /* object for IPC */ + rt_list_t taken_object_list; + rt_object_t pending_object; +#endif + #ifdef RT_USING_EVENT /* thread event */ rt_uint32_t event_set; @@ -772,12 +779,13 @@ struct rt_mutex { struct rt_ipc_object parent; /**< inherit from ipc_object */ - rt_uint16_t value; /**< value of mutex */ - - rt_uint8_t original_priority; /**< priority of last thread hold the mutex */ + rt_uint8_t ceiling_priority; /**< the priority ceiling of mutexe */ + rt_uint8_t priority; /**< the maximal priority for pending thread */ rt_uint8_t hold; /**< numbers of thread hold the mutex */ + rt_uint8_t reserved; /**< reserved field */ struct rt_thread *owner; /**< current owner of mutex */ + rt_list_t taken_list; /**< the object list taken by thread */ }; typedef struct rt_mutex *rt_mutex_t; #endif /* RT_USING_MUTEX */ |
