162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Based on arch/arm/include/asm/system_misc.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2012 ARM Ltd.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci#ifndef __ASM_SYSTEM_MISC_H
862306a36Sopenharmony_ci#define __ASM_SYSTEM_MISC_H
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#ifndef __ASSEMBLY__
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <linux/compiler.h>
1362306a36Sopenharmony_ci#include <linux/linkage.h>
1462306a36Sopenharmony_ci#include <linux/irqflags.h>
1562306a36Sopenharmony_ci#include <linux/signal.h>
1662306a36Sopenharmony_ci#include <linux/ratelimit.h>
1762306a36Sopenharmony_ci#include <linux/reboot.h>
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_cistruct pt_regs;
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_civoid die(const char *msg, struct pt_regs *regs, long err);
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistruct siginfo;
2462306a36Sopenharmony_civoid arm64_notify_die(const char *str, struct pt_regs *regs,
2562306a36Sopenharmony_ci		      int signo, int sicode, unsigned long far,
2662306a36Sopenharmony_ci		      unsigned long err);
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_civoid hook_debug_fault_code(int nr, int (*fn)(unsigned long, unsigned long,
2962306a36Sopenharmony_ci					     struct pt_regs *),
3062306a36Sopenharmony_ci			   int sig, int code, const char *name);
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cistruct mm_struct;
3362306a36Sopenharmony_ciextern void __show_regs(struct pt_regs *);
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci#endif	/* __ASSEMBLY__ */
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#endif	/* __ASM_SYSTEM_MISC_H */
38