linux/include/linux/thread_info.h
<<
>>
Prefs
   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 */
  13struct restart_block {
  14        long (*fn)(struct restart_block *);
  15        unsigned long arg0, arg1, arg2, arg3;
  16};
  17
  18extern 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
  30static inline void set_thread_flag(int flag)
  31{
  32        set_bit(flag,&current_thread_info()->flags);
  33}
  34
  35static inline void clear_thread_flag(int flag)
  36{
  37        clear_bit(flag,&current_thread_info()->flags);
  38}
  39
  40static inline int test_and_set_thread_flag(int flag)
  41{
  42        return test_and_set_bit(flag,&current_thread_info()->flags);
  43}
  44
  45static inline int test_and_clear_thread_flag(int flag)
  46{
  47        return test_and_clear_bit(flag,&current_thread_info()->flags);
  48}
  49
  50static inline int test_thread_flag(int flag)
  51{
  52        return test_bit(flag,&current_thread_info()->flags);
  53}
  54
  55static inline void set_ti_thread_flag(struct thread_info *ti, int flag)
  56{
  57        set_bit(flag,&ti->flags);
  58}
  59
  60static inline void clear_ti_thread_flag(struct thread_info *ti, int flag)
  61{
  62        clear_bit(flag,&ti->flags);
  63}
  64
  65static 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
  70static 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
  75static inline int test_ti_thread_flag(struct thread_info *ti, int flag)
  76{
  77        return test_bit(flag,&ti->flags);
  78}
  79
  80static inline void set_need_resched(void)
  81{
  82        set_thread_flag(TIF_NEED_RESCHED);
  83}
  84
  85static 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
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.