~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/include/asm/thread_info.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*
  3  * Based on arch/arm/include/asm/thread_info.h
  4  *
  5  * Copyright (C) 2002 Russell King.
  6  * Copyright (C) 2012 ARM Ltd.
  7  */
  8 #ifndef __ASM_THREAD_INFO_H
  9 #define __ASM_THREAD_INFO_H
 10 
 11 #include <linux/compiler.h>
 12 
 13 #ifndef __ASSEMBLY__
 14 
 15 struct task_struct;
 16 
 17 #include <asm/memory.h>
 18 #include <asm/stack_pointer.h>
 19 #include <asm/types.h>
 20 
 21 /*
 22  * low level task data that entry.S needs immediate access to.
 23  */
 24 struct thread_info {
 25         unsigned long           flags;          /* low level flags */
 26 #ifdef CONFIG_ARM64_SW_TTBR0_PAN
 27         u64                     ttbr0;          /* saved TTBR0_EL1 */
 28 #endif
 29         union {
 30                 u64             preempt_count;  /* 0 => preemptible, <0 => bug */
 31                 struct {
 32 #ifdef CONFIG_CPU_BIG_ENDIAN
 33                         u32     need_resched;
 34                         u32     count;
 35 #else
 36                         u32     count;
 37                         u32     need_resched;
 38 #endif
 39                 } preempt;
 40         };
 41 #ifdef CONFIG_SHADOW_CALL_STACK
 42         void                    *scs_base;
 43         void                    *scs_sp;
 44 #endif
 45         u32                     cpu;
 46 };
 47 
 48 #define thread_saved_pc(tsk)    \
 49         ((unsigned long)(tsk->thread.cpu_context.pc))
 50 #define thread_saved_sp(tsk)    \
 51         ((unsigned long)(tsk->thread.cpu_context.sp))
 52 #define thread_saved_fp(tsk)    \
 53         ((unsigned long)(tsk->thread.cpu_context.fp))
 54 
 55 void arch_setup_new_exec(void);
 56 #define arch_setup_new_exec     arch_setup_new_exec
 57 
 58 #endif
 59 
 60 #define TIF_SIGPENDING          0       /* signal pending */
 61 #define TIF_NEED_RESCHED        1       /* rescheduling necessary */
 62 #define TIF_NOTIFY_RESUME       2       /* callback before returning to user */
 63 #define TIF_FOREIGN_FPSTATE     3       /* CPU's FP state is not current's */
 64 #define TIF_UPROBE              4       /* uprobe breakpoint or singlestep */
 65 #define TIF_MTE_ASYNC_FAULT     5       /* MTE Asynchronous Tag Check Fault */
 66 #define TIF_NOTIFY_SIGNAL       6       /* signal notifications exist */
 67 #define TIF_SYSCALL_TRACE       8       /* syscall trace active */
 68 #define TIF_SYSCALL_AUDIT       9       /* syscall auditing */
 69 #define TIF_SYSCALL_TRACEPOINT  10      /* syscall tracepoint for ftrace */
 70 #define TIF_SECCOMP             11      /* syscall secure computing */
 71 #define TIF_SYSCALL_EMU         12      /* syscall emulation active */
 72 #define TIF_MEMDIE              18      /* is terminating due to OOM killer */
 73 #define TIF_FREEZE              19
 74 #define TIF_RESTORE_SIGMASK     20
 75 #define TIF_SINGLESTEP          21
 76 #define TIF_32BIT               22      /* 32bit process */
 77 #define TIF_SVE                 23      /* Scalable Vector Extension in use */
 78 #define TIF_SVE_VL_INHERIT      24      /* Inherit SVE vl_onexec across exec */
 79 #define TIF_SSBD                25      /* Wants SSB mitigation */
 80 #define TIF_TAGGED_ADDR         26      /* Allow tagged user addresses */
 81 #define TIF_SME                 27      /* SME in use */
 82 #define TIF_SME_VL_INHERIT      28      /* Inherit SME vl_onexec across exec */
 83 #define TIF_KERNEL_FPSTATE      29      /* Task is in a kernel mode FPSIMD section */
 84 
 85 #define _TIF_SIGPENDING         (1 << TIF_SIGPENDING)
 86 #define _TIF_NEED_RESCHED       (1 << TIF_NEED_RESCHED)
 87 #define _TIF_NOTIFY_RESUME      (1 << TIF_NOTIFY_RESUME)
 88 #define _TIF_FOREIGN_FPSTATE    (1 << TIF_FOREIGN_FPSTATE)
 89 #define _TIF_SYSCALL_TRACE      (1 << TIF_SYSCALL_TRACE)
 90 #define _TIF_SYSCALL_AUDIT      (1 << TIF_SYSCALL_AUDIT)
 91 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
 92 #define _TIF_SECCOMP            (1 << TIF_SECCOMP)
 93 #define _TIF_SYSCALL_EMU        (1 << TIF_SYSCALL_EMU)
 94 #define _TIF_UPROBE             (1 << TIF_UPROBE)
 95 #define _TIF_SINGLESTEP         (1 << TIF_SINGLESTEP)
 96 #define _TIF_32BIT              (1 << TIF_32BIT)
 97 #define _TIF_SVE                (1 << TIF_SVE)
 98 #define _TIF_MTE_ASYNC_FAULT    (1 << TIF_MTE_ASYNC_FAULT)
 99 #define _TIF_NOTIFY_SIGNAL      (1 << TIF_NOTIFY_SIGNAL)
100 
101 #define _TIF_WORK_MASK          (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \
102                                  _TIF_NOTIFY_RESUME | _TIF_FOREIGN_FPSTATE | \
103                                  _TIF_UPROBE | _TIF_MTE_ASYNC_FAULT | \
104                                  _TIF_NOTIFY_SIGNAL)
105 
106 #define _TIF_SYSCALL_WORK       (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
107                                  _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
108                                  _TIF_SYSCALL_EMU)
109 
110 #ifdef CONFIG_SHADOW_CALL_STACK
111 #define INIT_SCS                                                        \
112         .scs_base       = init_shadow_call_stack,                       \
113         .scs_sp         = init_shadow_call_stack,
114 #else
115 #define INIT_SCS
116 #endif
117 
118 #define INIT_THREAD_INFO(tsk)                                           \
119 {                                                                       \
120         .flags          = _TIF_FOREIGN_FPSTATE,                         \
121         .preempt_count  = INIT_PREEMPT_COUNT,                           \
122         INIT_SCS                                                        \
123 }
124 
125 #endif /* __ASM_THREAD_INFO_H */
126 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php