/* * include/asm-xtensa/thread_info.h * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2001 - 2005 Tensilica Inc.
*/
#ifndef __ASSEMBLER__ # include <asm/processor.h> #endif
/* * low level task data that entry.S needs immediate access to * - this struct should fit entirely inside of one cache line * - this struct shares the supervisor stack pages * - if the contents of this structure are changed, the assembly constants * must also be changed
*/
#if XCHAL_HAVE_EXCLUSIVE /* result of the most recent exclusive store */ unsignedlong atomctl8; #endif #ifdef CONFIG_USER_ABI_CALL0_PROBE /* Address where PS.WOE was enabled by the ABI probing code */ unsignedlong ps_woe_fix_addr; #endif
/* * If i-th bit is set then coprocessor state is loaded into the * coprocessor i on CPU cp_owner_cpu.
*/ unsignedlong cpenable;
u32 cp_owner_cpu; /* Allocate storage for extra user states and coprocessor states. */ #if XTENSA_HAVE_COPROCESSORS
xtregs_coprocessor_t xtregs_cp; #endif
xtregs_user_t xtregs_user;
};
#endif
/* * macros/functions for gaining access to the thread information structure
*/
/* how to get the thread information struct from C */ static __always_inline struct thread_info *current_thread_info(void)
{ struct thread_info *ti;
__asm__("extui %0, a1, 0, "__stringify(CURRENT_SHIFT)"\n\t" "xor %0, a1, %0" : "=&r" (ti) : ); return ti;
}
#else/* !__ASSEMBLER__ */
/* how to get the thread information struct from ASM */ #define GET_THREAD_INFO(reg,sp) \
extui reg, sp, 0, CURRENT_SHIFT; \ xor reg, sp, reg #endif
/* * thread information flags * - these are process state flags that various assembly files may need to access
*/ #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ #define TIF_SIGPENDING 1 /* signal pending */ #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ #define TIF_SINGLESTEP 3 /* restore singlestep on return to user mode */ #define TIF_SYSCALL_TRACEPOINT 4 /* syscall tracepoint instrumentation */ #define TIF_NOTIFY_SIGNAL 5 /* signal notifications exist */ #define TIF_RESTORE_SIGMASK 6 /* restore signal mask in do_signal() */ #define TIF_NOTIFY_RESUME 7 /* callback before returning to user */ #define TIF_DB_DISABLED 8 /* debug trap disabled for syscall */ #define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */ #define TIF_SECCOMP 10 /* secure computing */ #define TIF_MEMDIE 11 /* is terminating due to OOM killer */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.