🆕 转换为grub2引导(尚未更正mm模块,且目前无法将内核链接到线性地址0xffffx处)

This commit is contained in:
fslongjin
2022-02-21 22:59:57 +08:00
parent 0b0cce9326
commit d9d83335af
16 changed files with 672 additions and 698 deletions

View File

@ -23,6 +23,7 @@
: "memory") // 在sfence指令前的写操作必须在sfence指令后的写操作前完成
#define io_lfence() __asm__ __volatile__("lfence\n\t" :: \
: "memory") // 在lfence指令前的读操作必须在lfence指令后的读操作前完成。
/**
* @brief 根据结构体变量内某个成员变量member的基地址计算出该结构体变量的基地址
* @param ptr 指向结构体变量内的成员变量member的指针
@ -50,6 +51,18 @@ ul round(double x)
return (ul)(x + 0.5);
}
/**
* @brief 地址按照align进行对齐
*
* @param addr
* @param _align
* @return ul 对齐后的地址
*/
ul ALIGN(const ul addr, const ul _align)
{
return (ul)((addr+_align-1)&(~(_align-1)));
}
//链表数据结构
struct List
{