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

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

@ -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;