stacktrace.h (4f9786035f9e519db41375818e1d0b5f20da2f10) | stacktrace.h (a45728fd4120011c78af1d056e571b84d47dfcc1) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited 4 */ 5#ifndef _ASM_STACKTRACE_H 6#define _ASM_STACKTRACE_H 7 8#include <asm/asm.h> --- 17 unchanged lines hidden (view full) --- 26 unsigned long fp; 27 unsigned long ra; 28}; 29 30bool in_irq_stack(unsigned long stack, struct stack_info *info); 31bool in_task_stack(unsigned long stack, struct task_struct *task, struct stack_info *info); 32int get_stack_info(unsigned long stack, struct task_struct *task, struct stack_info *info); 33 | 1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited 4 */ 5#ifndef _ASM_STACKTRACE_H 6#define _ASM_STACKTRACE_H 7 8#include <asm/asm.h> --- 17 unchanged lines hidden (view full) --- 26 unsigned long fp; 27 unsigned long ra; 28}; 29 30bool in_irq_stack(unsigned long stack, struct stack_info *info); 31bool in_task_stack(unsigned long stack, struct task_struct *task, struct stack_info *info); 32int get_stack_info(unsigned long stack, struct task_struct *task, struct stack_info *info); 33 |
34static __always_inline bool on_thread_stack(void) 35{ 36 return !(((unsigned long)(current->stack) ^ current_stack_pointer) & ~(THREAD_SIZE - 1)); 37} 38 |
|
34#define STR_LONG_L __stringify(LONG_L) 35#define STR_LONG_S __stringify(LONG_S) 36#define STR_LONGSIZE __stringify(LONGSIZE) 37 38#define STORE_ONE_REG(r) \ 39 STR_LONG_S " $r" __stringify(r)", %1, "STR_LONGSIZE"*"__stringify(r)"\n\t" 40 41#define CSRRD_ONE_REG(reg) \ --- 56 unchanged lines hidden --- | 39#define STR_LONG_L __stringify(LONG_L) 40#define STR_LONG_S __stringify(LONG_S) 41#define STR_LONGSIZE __stringify(LONGSIZE) 42 43#define STORE_ONE_REG(r) \ 44 STR_LONG_S " $r" __stringify(r)", %1, "STR_LONGSIZE"*"__stringify(r)"\n\t" 45 46#define CSRRD_ONE_REG(reg) \ --- 56 unchanged lines hidden --- |