You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
576 B
33 lines
576 B
#include "mtrap.h"
|
|
#include "sbi.h"
|
|
|
|
uintptr_t __sbi_query_memory(uintptr_t id, memory_block_info *p)
|
|
{
|
|
if (id == 0) {
|
|
p->base = first_free_paddr;
|
|
p->size = mem_size + DRAM_BASE - p->base;
|
|
return 0;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
#define LOW_IRQ_OK(n) ((n) == IRQ_S_SOFT || (n) == IRQ_S_TIMER)
|
|
|
|
uintptr_t __sbi_mask_interrupt(uintptr_t which)
|
|
{
|
|
if (!LOW_IRQ_OK(which))
|
|
return -1;
|
|
|
|
clear_csr(sie, 1UL << which);
|
|
return 0;
|
|
}
|
|
|
|
uintptr_t __sbi_unmask_interrupt(uintptr_t which)
|
|
{
|
|
if (!LOW_IRQ_OK(which))
|
|
return -1;
|
|
|
|
set_csr(sie, 1UL << which);
|
|
return 0;
|
|
}
|
|
|