🎨 解决一些隐式类型转换问题

This commit is contained in:
fslongjin 2022-02-22 21:47:52 +08:00
parent 59b4e6f635
commit 6aede7ccc7
4 changed files with 13 additions and 14 deletions

View File

@ -33,7 +33,7 @@ int init_printk(const int char_size_x, const int char_size_y)
pos.max_y = calculate_max_charNum(pos.height, char_size_y);
// @todo:将来需要将帧缓冲区物理地址填写到这个地址的页表项中
pos.FB_address = 0xa00000;
pos.FB_address = (unsigned int*)0xa00000;
pos.FB_length = pos.width * pos.height;
pos.x = 0;

View File

@ -17,8 +17,8 @@ bool multiboot2_init(void)
return true;
}
void multiboot2_iter(bool (*_fun)(const struct iter_data_t *, void *, int *),
void *data, int *count)
void multiboot2_iter(bool (*_fun)(const struct iter_data_t *, void *, unsigned int *),
void *data, unsigned int *count)
{
uintptr_t addr = boot_info_addr;
// 下一字节开始为 tag 信息
@ -52,20 +52,21 @@ void multiboot2_iter(bool (*_fun)(const struct iter_data_t *, void *, int *),
* @return true
* @return false
*/
bool multiboot2_get_memory(const struct iter_data_t *_iter_data, void *data, int *count)
bool multiboot2_get_memory(const struct iter_data_t *_iter_data, void *data, unsigned int *count)
{
if (_iter_data->type != MULTIBOOT_TAG_TYPE_MMAP)
return false;
struct multiboot_mmap_entry_t *resource = (struct multiboot_mmap_entry_t *)data;
struct multiboot_mmap_entry_t *mmap = ((struct multiboot_tag_mmap_t *)_iter_data)->entries;
*count = (uint8_t *)_iter_data + _iter_data->size;
*count = 0;
for (; (uint8_t *)mmap < (uint8_t *)_iter_data + _iter_data->size;
mmap = (struct multiboot_mmap_entry_t *)((uint8_t *)mmap + ((struct multiboot_tag_mmap_t *)_iter_data)->entry_size))
{
*resource = *mmap;
// 将指针进行增加
resource = (struct multiboot_mmap_entry_t *)((uint8_t *)resource + ((struct multiboot_tag_mmap_t *)_iter_data)->entry_size);
++(*count);
}
return true;
}
@ -76,7 +77,7 @@ bool multiboot2_get_memory(const struct iter_data_t *_iter_data, void *data, int
* @param _iter_data
* @param _data
*/
bool multiboot2_get_VBE_info(const struct iter_data_t *_iter_data, void *data, int *reserved)
bool multiboot2_get_VBE_info(const struct iter_data_t *_iter_data, void *data, unsigned int *reserved)
{
if (_iter_data->type != MULTIBOOT_TAG_TYPE_VBE)
@ -91,7 +92,7 @@ bool multiboot2_get_VBE_info(const struct iter_data_t *_iter_data, void *data, i
* @param _iter_data
* @param _data
*/
bool multiboot2_get_Framebuffer_info(const struct iter_data_t *_iter_data, void *data, int *reserved)
bool multiboot2_get_Framebuffer_info(const struct iter_data_t *_iter_data, void *data, unsigned int *reserved)
{
if(_iter_data->type !=MULTIBOOT_TAG_TYPE_FRAMEBUFFER)
return false;

View File

@ -419,8 +419,8 @@ static bool multiboot2_init(void);
* @param _fun
* @param _data
*/
void multiboot2_iter(bool (*_fun)(const struct iter_data_t *, void *, int *),
void *_data, int *count);
void multiboot2_iter(bool (*_fun)(const struct iter_data_t *, void *, unsigned int *),
void *_data, unsigned int *count);
/**
* @brief multiboot2协议提供的内存区域信息
@ -431,7 +431,7 @@ void multiboot2_iter(bool (*_fun)(const struct iter_data_t *, void *, int *),
* @return true
* @return false
*/
bool multiboot2_get_memory(const struct iter_data_t *_iter_data, void *_data, int *count);
bool multiboot2_get_memory(const struct iter_data_t *_iter_data, void *_data, unsigned int *count);
/**
* @brief VBE信息
@ -439,7 +439,7 @@ bool multiboot2_get_memory(const struct iter_data_t *_iter_data, void *_data, in
* @param _iter_data
* @param _data
*/
bool multiboot2_get_VBE_info(const struct iter_data_t *_iter_data, void *_data, int *reserved);
bool multiboot2_get_VBE_info(const struct iter_data_t *_iter_data, void *_data, unsigned int *reserved);
/**
* @brief
@ -447,4 +447,4 @@ bool multiboot2_get_VBE_info(const struct iter_data_t *_iter_data, void *_data,
* @param _iter_data
* @param _data
*/
bool multiboot2_get_Framebuffer_info(const struct iter_data_t *_iter_data, void *_data, int *reserved);
bool multiboot2_get_Framebuffer_info(const struct iter_data_t *_iter_data, void *_data, unsigned int *reserved);

View File

@ -85,8 +85,6 @@ void system_initialize()
// 先初始化系统调用模块
syscall_init();
while(1);
// 再初始化进程模块。顺序不能调转
process_init();
}