2022-03-13 17:12:20 +08:00

31 lines
635 B
C

#pragma once
#include "../../../common/asm.h"
#include"../../../process/ptrace.h"
#include"../../../exception/irq.h"
struct apic_IO_APIC_map
{
// 间接访问寄存器的物理基地址
uint addr_phys;
// 索引寄存器虚拟地址
unsigned char* virtual_index_addr;
// 数据寄存器虚拟地址
uint* virtual_data_addr;
// EOI寄存器虚拟地址
uint* virtual_EOI_addr;
}apic_ioapic_map;
/**
* @brief 中断服务程序
*
* @param rsp 中断栈指针
* @param number 中断号
*/
void do_IRQ(struct pt_regs* rsp, ul number);
/**
* @brief 初始化apic控制器
*
*/
void apic_init();