18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2015 ARM Limited 48c2ecf20Sopenharmony_ci * Author: Dave Martin <Dave.Martin@arm.com> 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#ifndef _ARCH_ARM64_ASM_BUG_H 88c2ecf20Sopenharmony_ci#define _ARCH_ARM64_ASM_BUG_H 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <linux/stringify.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <asm/asm-bug.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#define __BUG_FLAGS(flags) \ 158c2ecf20Sopenharmony_ci asm volatile (__stringify(ASM_BUG_FLAGS(flags))); 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#define BUG() do { \ 188c2ecf20Sopenharmony_ci __BUG_FLAGS(0); \ 198c2ecf20Sopenharmony_ci unreachable(); \ 208c2ecf20Sopenharmony_ci} while (0) 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci#define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags)) 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci#define HAVE_ARCH_BUG 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci#include <asm-generic/bug.h> 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci#endif /* ! _ARCH_ARM64_ASM_BUG_H */ 29