cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

unwind.h (1201B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * arch/arm/include/asm/unwind.h
      4 *
      5 * Copyright (C) 2008 ARM Limited
      6 */
      7
      8#ifndef __ASM_UNWIND_H
      9#define __ASM_UNWIND_H
     10
     11#ifndef __ASSEMBLY__
     12
     13/* Unwind reason code according the the ARM EABI documents */
     14enum unwind_reason_code {
     15	URC_OK = 0,			/* operation completed successfully */
     16	URC_CONTINUE_UNWIND = 8,
     17	URC_FAILURE = 9			/* unspecified failure of some kind */
     18};
     19
     20struct unwind_idx {
     21	unsigned long addr_offset;
     22	unsigned long insn;
     23};
     24
     25struct unwind_table {
     26	struct list_head list;
     27	struct list_head mod_list;
     28	const struct unwind_idx *start;
     29	const struct unwind_idx *origin;
     30	const struct unwind_idx *stop;
     31	unsigned long begin_addr;
     32	unsigned long end_addr;
     33};
     34
     35extern struct unwind_table *unwind_table_add(unsigned long start,
     36					     unsigned long size,
     37					     unsigned long text_addr,
     38					     unsigned long text_size);
     39extern void unwind_table_del(struct unwind_table *tab);
     40extern void unwind_backtrace(struct pt_regs *regs, struct task_struct *tsk,
     41			     const char *loglvl);
     42
     43#endif	/* !__ASSEMBLY__ */
     44
     45#ifdef CONFIG_ARM_UNWIND
     46#define UNWIND(code...)		code
     47#else
     48#define UNWIND(code...)
     49#endif
     50
     51#endif	/* __ASM_UNWIND_H */