mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-09 07:06:47 +00:00
31 lines
635 B
C
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(); |