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

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

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/arm64/include/asm/stacktrace.h (Architecture ppc) and /arch/m68k/include/asm-m68k/stacktrace.h (Architecture m68k)


  1 /* SPDX-License-Identifier: GPL-2.0-only */         1 
  2 /*                                                
  3  * Copyright (C) 2012 ARM Ltd.                    
  4  */                                               
  5 #ifndef __ASM_STACKTRACE_H                        
  6 #define __ASM_STACKTRACE_H                        
  7                                                   
  8 #include <linux/percpu.h>                         
  9 #include <linux/sched.h>                          
 10 #include <linux/sched/task_stack.h>               
 11 #include <linux/llist.h>                          
 12                                                   
 13 #include <asm/memory.h>                           
 14 #include <asm/pointer_auth.h>                     
 15 #include <asm/ptrace.h>                           
 16 #include <asm/sdei.h>                             
 17                                                   
 18 #include <asm/stacktrace/common.h>                
 19                                                   
 20 extern void dump_backtrace(struct pt_regs *reg    
 21                            const char *loglvl)    
 22                                                   
 23 DECLARE_PER_CPU(unsigned long *, irq_stack_ptr    
 24                                                   
 25 static inline struct stack_info stackinfo_get_    
 26 {                                                 
 27         unsigned long low = (unsigned long)raw    
 28         unsigned long high = low + IRQ_STACK_S    
 29                                                   
 30         return (struct stack_info) {              
 31                 .low = low,                       
 32                 .high = high,                     
 33         };                                        
 34 }                                                 
 35                                                   
 36 static inline bool on_irq_stack(unsigned long     
 37 {                                                 
 38         struct stack_info info = stackinfo_get    
 39         return stackinfo_on_stack(&info, sp, s    
 40 }                                                 
 41                                                   
 42 static inline struct stack_info stackinfo_get_    
 43 {                                                 
 44         unsigned long low = (unsigned long)tas    
 45         unsigned long high = low + THREAD_SIZE    
 46                                                   
 47         return (struct stack_info) {              
 48                 .low = low,                       
 49                 .high = high,                     
 50         };                                        
 51 }                                                 
 52                                                   
 53 static inline bool on_task_stack(const struct     
 54                                  unsigned long    
 55 {                                                 
 56         struct stack_info info = stackinfo_get    
 57         return stackinfo_on_stack(&info, sp, s    
 58 }                                                 
 59                                                   
 60 #define on_thread_stack()       (on_task_stack    
 61                                                   
 62 #ifdef CONFIG_VMAP_STACK                          
 63 DECLARE_PER_CPU(unsigned long [OVERFLOW_STACK_    
 64                                                   
 65 static inline struct stack_info stackinfo_get_    
 66 {                                                 
 67         unsigned long low = (unsigned long)raw    
 68         unsigned long high = low + OVERFLOW_ST    
 69                                                   
 70         return (struct stack_info) {              
 71                 .low = low,                       
 72                 .high = high,                     
 73         };                                        
 74 }                                                 
 75 #else                                             
 76 #define stackinfo_get_overflow()        stacki    
 77 #endif                                            
 78                                                   
 79 #if defined(CONFIG_ARM_SDE_INTERFACE) && defin    
 80 DECLARE_PER_CPU(unsigned long *, sdei_stack_no    
 81 DECLARE_PER_CPU(unsigned long *, sdei_stack_cr    
 82                                                   
 83 static inline struct stack_info stackinfo_get_    
 84 {                                                 
 85         unsigned long low = (unsigned long)raw    
 86         unsigned long high = low + SDEI_STACK_    
 87                                                   
 88         return (struct stack_info) {              
 89                 .low = low,                       
 90                 .high = high,                     
 91         };                                        
 92 }                                                 
 93                                                   
 94 static inline struct stack_info stackinfo_get_    
 95 {                                                 
 96         unsigned long low = (unsigned long)raw    
 97         unsigned long high = low + SDEI_STACK_    
 98                                                   
 99         return (struct stack_info) {              
100                 .low = low,                       
101                 .high = high,                     
102         };                                        
103 }                                                 
104 #else                                             
105 #define stackinfo_get_sdei_normal()     stacki    
106 #define stackinfo_get_sdei_critical()   stacki    
107 #endif                                            
108                                                   
109 #ifdef CONFIG_EFI                                 
110 extern u64 *efi_rt_stack_top;                     
111                                                   
112 static inline struct stack_info stackinfo_get_    
113 {                                                 
114         unsigned long high = (u64)efi_rt_stack    
115         unsigned long low = high - THREAD_SIZE    
116                                                   
117         return (struct stack_info) {              
118                 .low = low,                       
119                 .high = high,                     
120         };                                        
121 }                                                 
122 #endif                                            
123                                                   
124 #endif  /* __ASM_STACKTRACE_H */                  
125                                                   

~ [ 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