550W Document
550W, a high-end OS
|
#include <asm/atomic.h>
#include <asm/pgtable.h>
#include <asm/privileged.h>
#include <asm/sbi.h>
#include <asm/syscall.h>
#include <drivers/plic/plic.h>
#include <drivers/virtio/virtio.h>
#include <lib/assert.h>
#include <lib/list.h>
#include <lib/stdio.h>
#include <os/irq.h>
#include <os/smp.h>
#include <os/syscall.h>
函数 | |
long | sys_undefined_syscall (regs_context_t *regs, uint64_t interrupt, uint64_t cause) |
void | k_init_syscall (void) |
void | reset_irq_timer () |
void | user_interrupt_helper (regs_context_t *regs, uint64_t stval, uint64_t cause, uint64_t cpuid) |
void | kernel_interrupt_helper (regs_context_t *regs, uint64_t stval, uint64_t cause, uint64_t cpuid) |
void | handle_int_irq (regs_context_t *regs, uint64_t interrupt, uint64_t cause, uint64_t cpuid) |
void | handle_ext_irq (regs_context_t *regs, uint64_t interrupt, uint64_t cause, uint64_t cpuid) |
void | handler_virtio_intr (regs_context_t *regs, uint64_t stval, uint64_t cause, uint64_t cpuid) |
PTE * | check_pf (uint64_t va, PTE *pgdir) |
void | handle_disk_exc (uint64_t stval, PTE *pte_addr) |
void | handle_pf_exc (regs_context_t *regs, uint64_t stval, uint64_t cause, uint64_t cpuid) |
void | handle_other (regs_context_t *regs, uint64_t stval, uint64_t cause, uint64_t cpuid) |
void | k_init_exception () |
变量 | |
handler_t | irq_table [IRQC_COUNT] |
handler_t | exc_table [EXCC_COUNT] |
handler_t | irq_ext_table [PLIC_NR_IRQS] |
uintptr_t | riscv_dtb |
spin_lock_t | kernel_exception_lock = {.flag = UNLOCKED} |
void handle_disk_exc | ( | uint64_t | stval, |
PTE * | pte_addr | ||
) |
void handle_ext_irq | ( | regs_context_t * | regs, |
uint64_t | interrupt, | ||
uint64_t | cause, | ||
uint64_t | cpuid | ||
) |
void handle_int_irq | ( | regs_context_t * | regs, |
uint64_t | interrupt, | ||
uint64_t | cause, | ||
uint64_t | cpuid | ||
) |
void handle_other | ( | regs_context_t * | regs, |
uint64_t | stval, | ||
uint64_t | cause, | ||
uint64_t | cpuid | ||
) |
void handle_pf_exc | ( | regs_context_t * | regs, |
uint64_t | stval, | ||
uint64_t | cause, | ||
uint64_t | cpuid | ||
) |
void handler_virtio_intr | ( | regs_context_t * | regs, |
uint64_t | stval, | ||
uint64_t | cause, | ||
uint64_t | cpuid | ||
) |
void k_init_exception | ( | ) |
void k_init_syscall | ( | void | ) |
void kernel_interrupt_helper | ( | regs_context_t * | regs, |
uint64_t | stval, | ||
uint64_t | cause, | ||
uint64_t | cpuid | ||
) |
void reset_irq_timer | ( | ) |
long sys_undefined_syscall | ( | regs_context_t * | regs, |
uint64_t | interrupt, | ||
uint64_t | cause | ||
) |
void user_interrupt_helper | ( | regs_context_t * | regs, |
uint64_t | stval, | ||
uint64_t | cause, | ||
uint64_t | cpuid | ||
) |
handler_t exc_table[EXCC_COUNT] |
handler_t irq_ext_table[PLIC_NR_IRQS] |
handler_t irq_table[IRQC_COUNT] |
spin_lock_t kernel_exception_lock = {.flag = UNLOCKED} |
uintptr_t riscv_dtb |