Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 #ifndef __ASM_ASM_BUG_H
0003 /*
0004  * Copyright (C) 2017  ARM Limited
0005  */
0006 #define __ASM_ASM_BUG_H
0007 
0008 #include <asm/brk-imm.h>
0009 
0010 #ifdef CONFIG_DEBUG_BUGVERBOSE
0011 #define _BUGVERBOSE_LOCATION(file, line) __BUGVERBOSE_LOCATION(file, line)
0012 #define __BUGVERBOSE_LOCATION(file, line)           \
0013         .pushsection .rodata.str,"aMS",@progbits,1; \
0014     14472:  .string file;                   \
0015         .popsection;                    \
0016                                 \
0017         .long 14472b - .;               \
0018         .short line;
0019 #else
0020 #define _BUGVERBOSE_LOCATION(file, line)
0021 #endif
0022 
0023 #ifdef CONFIG_GENERIC_BUG
0024 
0025 #define __BUG_ENTRY(flags)              \
0026         .pushsection __bug_table,"aw";      \
0027         .align 2;               \
0028     14470:  .long 14471f - .;           \
0029 _BUGVERBOSE_LOCATION(__FILE__, __LINE__)        \
0030         .short flags;               \
0031         .popsection;                \
0032     14471:
0033 #else
0034 #define __BUG_ENTRY(flags)
0035 #endif
0036 
0037 #define ASM_BUG_FLAGS(flags)                \
0038     __BUG_ENTRY(flags)              \
0039     brk BUG_BRK_IMM
0040 
0041 #define ASM_BUG()   ASM_BUG_FLAGS(0)
0042 
0043 #endif /* __ASM_ASM_BUG_H */