xref: /kernel/linux/linux-6.6/arch/arm64/include/asm/signal.h
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/arch/arm64/include/asm/
162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __ARM64_ASM_SIGNAL_H
362306a36Sopenharmony_ci#define __ARM64_ASM_SIGNAL_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <asm/memory.h>
662306a36Sopenharmony_ci#include <uapi/asm/signal.h>
762306a36Sopenharmony_ci#include <uapi/asm/siginfo.h>
862306a36Sopenharmony_ci
962306a36Sopenharmony_cistatic inline void __user *arch_untagged_si_addr(void __user *addr,
1062306a36Sopenharmony_ci						 unsigned long sig,
1162306a36Sopenharmony_ci						 unsigned long si_code)
1262306a36Sopenharmony_ci{
1362306a36Sopenharmony_ci	/*
1462306a36Sopenharmony_ci	 * For historical reasons, all bits of the fault address are exposed as
1562306a36Sopenharmony_ci	 * address bits for watchpoint exceptions. New architectures should
1662306a36Sopenharmony_ci	 * handle the tag bits consistently.
1762306a36Sopenharmony_ci	 */
1862306a36Sopenharmony_ci	if (sig == SIGTRAP && si_code == TRAP_BRKPT)
1962306a36Sopenharmony_ci		return addr;
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci	return untagged_addr(addr);
2262306a36Sopenharmony_ci}
2362306a36Sopenharmony_ci#define arch_untagged_si_addr arch_untagged_si_addr
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci#endif
26

Indexes created Thu Nov 07 10:32:03 CST 2024