162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2015 ARM Limited 462306a36Sopenharmony_ci * Author: Dave Martin <Dave.Martin@arm.com> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#ifndef _ARCH_ARM64_ASM_BUG_H 862306a36Sopenharmony_ci#define _ARCH_ARM64_ASM_BUG_H 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include <linux/stringify.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#include <asm/asm-bug.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#define __BUG_FLAGS(flags) \ 1562306a36Sopenharmony_ci asm volatile (__stringify(ASM_BUG_FLAGS(flags))); 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#define BUG() do { \ 1862306a36Sopenharmony_ci __BUG_FLAGS(0); \ 1962306a36Sopenharmony_ci unreachable(); \ 2062306a36Sopenharmony_ci} while (0) 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags)) 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#define HAVE_ARCH_BUG 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#include <asm-generic/bug.h> 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#endif /* ! _ARCH_ARM64_ASM_BUG_H */ 29