Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 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 */