Viewing file: thread_info.h (1.93 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* thread_info.h: common low-level thread information accessors * * Copyright (C) 2002 David Howells (dhowells@redhat.com) * - Incorporating suggestions made by Linus Torvalds */
#ifndef _LINUX_THREAD_INFO_H #define _LINUX_THREAD_INFO_H
#include <linux/types.h>
/* * System call restart block. */ struct restart_block { long (*fn)(struct restart_block *); union { struct { unsigned long arg0, arg1, arg2, arg3; }; /* For futex_wait */ struct { u32 *uaddr; u32 val; u32 flags; u64 time; } futex; }; };
extern long do_no_restart_syscall(struct restart_block *parm);
#include <linux/bitops.h> #include <asm/thread_info.h>
#ifdef __KERNEL__
/* * flag set/clear/test wrappers * - pass TIF_xxxx constants to these functions */
static inline void set_ti_thread_flag(struct thread_info *ti, int flag) { set_bit(flag,&ti->flags); }
static inline void clear_ti_thread_flag(struct thread_info *ti, int flag) { clear_bit(flag,&ti->flags); }
static inline int test_and_set_ti_thread_flag(struct thread_info *ti, int flag) { return test_and_set_bit(flag,&ti->flags); }
static inline int test_and_clear_ti_thread_flag(struct thread_info *ti, int flag) { return test_and_clear_bit(flag,&ti->flags); }
static inline int test_ti_thread_flag(struct thread_info *ti, int flag) { return test_bit(flag,&ti->flags); }
#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)
#define set_need_resched() set_thread_flag(TIF_NEED_RESCHED) #define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED)
#endif
#endif /* _LINUX_THREAD_INFO_H */
|