mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
[PATCH] m68k: convert thread flags to use bit fields
Remove task_work structure, use the standard thread flags functions and use shifts in entry.S to test the thread flags. Add a few local labels to entry.S to allow gas to generate short jumps. Finally it changes a number of inline functions in thread_info.h to macros to delay the current_thread_info() usage, which requires on m68k a structure (task_struct) not yet defined at this point. Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Cc: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
abd03753bd
commit
3b66a1edb0
8 changed files with 71 additions and 177 deletions
|
@ -27,31 +27,6 @@ extern long do_no_restart_syscall(struct restart_block *parm);
|
|||
* - pass TIF_xxxx constants to these functions
|
||||
*/
|
||||
|
||||
static inline void set_thread_flag(int flag)
|
||||
{
|
||||
set_bit(flag,¤t_thread_info()->flags);
|
||||
}
|
||||
|
||||
static inline void clear_thread_flag(int flag)
|
||||
{
|
||||
clear_bit(flag,¤t_thread_info()->flags);
|
||||
}
|
||||
|
||||
static inline int test_and_set_thread_flag(int flag)
|
||||
{
|
||||
return test_and_set_bit(flag,¤t_thread_info()->flags);
|
||||
}
|
||||
|
||||
static inline int test_and_clear_thread_flag(int flag)
|
||||
{
|
||||
return test_and_clear_bit(flag,¤t_thread_info()->flags);
|
||||
}
|
||||
|
||||
static inline int test_thread_flag(int flag)
|
||||
{
|
||||
return test_bit(flag,¤t_thread_info()->flags);
|
||||
}
|
||||
|
||||
static inline void set_ti_thread_flag(struct thread_info *ti, int flag)
|
||||
{
|
||||
set_bit(flag,&ti->flags);
|
||||
|
@ -77,15 +52,19 @@ static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
|
|||
return test_bit(flag,&ti->flags);
|
||||
}
|
||||
|
||||
static inline void set_need_resched(void)
|
||||
{
|
||||
set_thread_flag(TIF_NEED_RESCHED);
|
||||
}
|
||||
#define set_thread_flag(flag) \
|
||||
set_ti_thread_flag(current_thread_info(), flag)
|
||||
#define clear_thread_flag(flag) \
|
||||
clear_ti_thread_flag(current_thread_info(), flag)
|
||||
#define test_and_set_thread_flag(flag) \
|
||||
test_and_set_ti_thread_flag(current_thread_info(), flag)
|
||||
#define test_and_clear_thread_flag(flag) \
|
||||
test_and_clear_ti_thread_flag(current_thread_info(), flag)
|
||||
#define test_thread_flag(flag) \
|
||||
test_ti_thread_flag(current_thread_info(), flag)
|
||||
|
||||
static inline void clear_need_resched(void)
|
||||
{
|
||||
clear_thread_flag(TIF_NEED_RESCHED);
|
||||
}
|
||||
#define set_need_resched() set_thread_flag(TIF_NEED_RESCHED)
|
||||
#define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED)
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue