blob: d7dc437527050736e99dd28e2f0b8bd526551a23 [file] [log] [blame]
Dave P Martin9fb74102015-07-24 16:37:48 +01001/*
2 * Copyright (C) 2015 ARM Limited
3 * Author: Dave Martin <Dave.Martin@arm.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef _ARCH_ARM64_ASM_BUG_H
19#define _ARCH_ARM64_ASM_BUG_H
20
Mark Rutlanddb44e9c2017-07-26 14:41:40 +010021#include <linux/stringify.h>
Dave P Martin9fb74102015-07-24 16:37:48 +010022
Mark Rutlanddb44e9c2017-07-26 14:41:40 +010023#include <asm/asm-bug.h>
Dave P Martin9fb74102015-07-24 16:37:48 +010024
Arnd Bergmannf13d52c2017-03-14 22:39:21 +010025#define __BUG_FLAGS(flags) \
Mark Rutlanddb44e9c2017-07-26 14:41:40 +010026 asm volatile (__stringify(ASM_BUG_FLAGS(flags)));
Arnd Bergmannf13d52c2017-03-14 22:39:21 +010027
28#define BUG() do { \
29 __BUG_FLAGS(0); \
30 unreachable(); \
Dave P Martin9fb74102015-07-24 16:37:48 +010031} while (0)
32
Linus Torvaldsab182e62017-05-05 12:11:37 -070033#define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
Dave P Martin9fb74102015-07-24 16:37:48 +010034
Arnd Bergmannf13d52c2017-03-14 22:39:21 +010035#define HAVE_ARCH_BUG
Dave P Martin9fb74102015-07-24 16:37:48 +010036
37#include <asm-generic/bug.h>
38
39#endif /* ! _ARCH_ARM64_ASM_BUG_H */