SyterKit 0.4.0.x
SyterKit is a bare-metal framework
Loading...
Searching...
No Matches
linkage.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0+ */
2
3#ifndef __ARM32_LINKAGE_H__
4#define __ARM32_LINKAGE_H__
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#define ALIGN .align 0
11#define ALIGN_STR ".align 0"
12
13#define ENTRY(name) \
14 .globl name; \
15 ALIGN; \
16 name:
17
18#define WEAK(name) \
19 .weak name; \
20 name:
21
22#define END(name) .size name, .- name
23
24#define ENDPROC(name) \
25 .type name, % function; \
26 END(name)
27
28#define ARMV7_USR_MODE 0x10
29#define ARMV7_FIQ_MODE 0x11
30#define ARMV7_IRQ_MODE 0x12
31#define ARMV7_SVC_MODE 0x13
32#define ARMV7_MON_MODE 0x16
33#define ARMV7_ABT_MODE 0x17
34#define ARMV7_UND_MODE 0x1b
35#define ARMV7_SYSTEM_MODE 0x1f
36#define ARMV7_MODE_MASK 0x1f
37#define ARMV7_FIQ_MASK 0x40
38#define ARMV7_IRQ_MASK 0x80
39
40#ifdef __cplusplus
41}
42#endif
43
44#endif /* __ARM32_LINKAGE_H__ */