9os

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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:
Minclude/rcode.h | 4+++-
Mtarget/native/arch.s | 11++++++++---
Mtarget/native/rom.c | 2+-
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);