commit ca76195fd4afaeb1f364f60a5280d0f1ce761a52
parent 039f48747a7d413df11591fd0c46e0c1ccb03cb3
Author: Roberto Vargas <roberto.vargas@arm.com>
Date: Fri, 23 Nov 2018 09:38:34 +0000
[arch] Add intr() function
This function replaces enaint() and disint(). It makes
easier to read the code
Change-Id: Iedd502ccb8f1675f85f6fe62f41eceff001dcf70
Diffstat:
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/include/rcode.h b/include/rcode.h
@@ -14,6 +14,8 @@
#endif
#define PAGESIZE 4096
+#define IENABLE 1
+#define IDISABLE 0
#define NR_ENTS 20 /* TODO: This must go away of here */
#define NR_FILS 8 /* TODO: This must go away of here */
@@ -136,7 +138,7 @@ extern int bind(const char *path, char *where);
extern noreturn void dohalt(void);
extern noreturn void dopanic(void);
extern noreturn void doswtch(struct trapframe *fp);
-extern void enaint(void);
+extern void intr(int mode);
extern struct bssmap *bss(void);
extern uint8_t inm8(void *addr);
extern uint16_t inm16(void *addr);
diff --git a/target/native/arch.s b/target/native/arch.s
@@ -1,14 +1,19 @@
.file "arch.s"
.text
- .globl panic,dohalt,enaint,dopanic
+ .globl panic,dohalt,intr,dopanic
.globl barrier,vectbl,doswtch,inm8,inm16,inm32
.globl outm8,outm16,outm32,bss
.globl invdcachesetway,invicache,vectbl,doswtch
.globl inm8,inm16,inm32,outm8,outm16,outm32
-enaint:
- msr daifclr,#15
+intr:
+ cmp x0,#0
+ b.ne 1f
+ msr daifset,#15
+ ret
+1:
+ msr daifclr,#15
ret
barrier:
diff --git a/target/native/rom.c b/target/native/rom.c
@@ -107,7 +107,7 @@ main(void *txt, size_t txtsiz, void *ram, size_t ramsiz)
imach(&mach, txt, txtsiz, ram, ramsiz);
ibss(&mach);
idev(&mach);
- enaint();
+ intr(IENABLE);
barrier(ISB);
info(&mach);
swtch(&mach.frame);