Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /* thread_info.h: common low-level thread information accessors
  2  *
  3  * Copyright (C) 2002  David Howells (dhowells@redhat.com)
  4  * - Incorporating suggestions made by Linus Torvalds
  5  */
  6 
  7 #ifndef _LINUX_THREAD_INFO_H
  8 #define _LINUX_THREAD_INFO_H
  9 
 10 /*
 11  * System call restart block. 
 12  */
 13 struct restart_block {
 14         long (*fn)(struct restart_block *);
 15         unsigned long arg0, arg1, arg2, arg3;
 16 };
 17 
 18 extern long do_no_restart_syscall(struct restart_block *parm);
 19 
 20 #include <linux/bitops.h>
 21 #include <asm/thread_info.h>
 22 
 23 #ifdef __KERNEL__
 24 
 25 /*
 26  * flag set/clear/test wrappers
 27  * - pass TIF_xxxx constants to these functions
 28  */
 29 
 30 static inline void set_thread_flag(int flag)
 31 {
 32         set_bit(flag,&current_thread_info()->flags);
 33 }
 34 
 35 static inline void clear_thread_flag(int flag)
 36 {
 37         clear_bit(flag,&current_thread_info()->flags);
 38 }
 39 
 40 static inline int test_and_set_thread_flag(int flag)
 41 {
 42         return test_and_set_bit(flag,&current_thread_info()->flags);
 43 }
 44 
 45 static inline int test_and_clear_thread_flag(int flag)
 46 {
 47         return test_and_clear_bit(flag,&current_thread_info()->flags);
 48 }
 49 
 50 static inline int test_thread_flag(int flag)
 51 {
 52         return test_bit(flag,&current_thread_info()->flags);
 53 }
 54 
 55 static inline void set_ti_thread_flag(struct thread_info *ti, int flag)
 56 {
 57         set_bit(flag,&ti->flags);
 58 }
 59 
 60 static inline void clear_ti_thread_flag(struct thread_info *ti, int flag)
 61 {
 62         clear_bit(flag,&ti->flags);
 63 }
 64 
 65 static inline int test_and_set_ti_thread_flag(struct thread_info *ti, int flag)
 66 {
 67         return test_and_set_bit(flag,&ti->flags);
 68 }
 69 
 70 static inline int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag)
 71 {
 72         return test_and_clear_bit(flag,&ti->flags);
 73 }
 74 
 75 static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
 76 {
 77         return test_bit(flag,&ti->flags);
 78 }
 79 
 80 static inline void set_need_resched(void)
 81 {
 82         set_thread_flag(TIF_NEED_RESCHED);
 83 }
 84 
 85 static inline void clear_need_resched(void)
 86 {
 87         clear_thread_flag(TIF_NEED_RESCHED);
 88 }
 89 
 90 #endif
 91 
 92 #endif /* _LINUX_THREAD_INFO_H */
 93 
  This page was automatically generated by the LXR engine.