macro and register

This commit is contained in:
red031000 2020-05-01 20:38:36 +01:00
parent 7b3404b932
commit 527b257015
No known key found for this signature in database
GPG Key ID: A3C87CFF2DC536C2
3 changed files with 10 additions and 6 deletions

View File

@ -17,19 +17,19 @@ typedef enum {
OS_PROCMODE_SYS=31
} OSProcMode;
#pragma enumsalwaysint on
ENUMS_ALWAYS_INT_ON
typedef enum {
OS_INTRMODE_DISABLE_IRQ = HW_PSR_DISABLE_IRQ,
OS_INTRMODE_DISABLE_FIQ = HW_PSR_DISABLE_FIQ,
OS_INTRMODE_ENABLE = 0
} OSIntrMode;
#pragma enumsalwaysint reset
ENUMS_ALWAYS_INT_RESET
OSIntrMode OS_EnableInterrupts();
OSIntrMode OS_DisableInterrupts();
OSIntrMode OS_RestoreInterrupts(register OSIntrMode state);
OSIntrMode OS_RestoreInterrupts(OSIntrMode state);
OSIntrMode OS_DisableInterrupts_IrqAndFiq();
OSIntrMode OS_RestoreInterrupts_IrqAndFiq(register OSIntrMode state);
OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state);
OSIntrMode OS_GetCpsrIrq();
OSProcMode OS_GetProcMode();
void OS_SpinWait();

View File

@ -21,7 +21,7 @@ ARM_FUNC asm OSIntrMode OS_DisableInterrupts() {
bx lr
}
ARM_FUNC asm OSIntrMode OS_RestoreInterrupts(register OSIntrMode state) {
ARM_FUNC asm OSIntrMode OS_RestoreInterrupts(OSIntrMode state) {
mrs r1, cpsr
bic r2, r1, #HW_PSR_DISABLE_IRQ
orr r2, r2, r0
@ -38,7 +38,7 @@ ARM_FUNC asm OSIntrMode OS_DisableInterrupts_IrqAndFiq() {
bx lr
}
ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(register OSIntrMode state) {
ARM_FUNC asm OSIntrMode OS_RestoreInterrupts_IrqAndFiq(OSIntrMode state) {
mrs r1, cpsr
bic r2, r1, #HW_PSR_DISABLE_IRQ_FIQ
orr r2, r2, r0

View File

@ -4,4 +4,8 @@
#define ARM_FUNC _Pragma("thumb off")
#define THUMB_FUNC _Pragma("thumb on")
#define ENUMS_ALWAYS_INT_ON _Pragma("enumsalwaysint on")
#define ENUMS_ALWAYS_INT_OFF _Pragma("enumsalwaysint off")
#define ENUMS_ALWAYS_INT_RESET _Pragma("enumsalwaysint reset")
#endif //GUARD_FUNCTION_TARGET_H