Hello,

Damien Zammit, le jeu. 24 oct. 2024 00:11:11 +0000, a ecrit:
> +io_return_t
> +mbinforead(dev_t dev, io_req_t ior)
> +{
> +     int err, count;
> +
> +     /* Check if IO_COUNT is valid */
> +     if (ior->io_count != sizeof(struct multiboot_raw_info))
> +         return D_INVALID_SIZE;

This should rather be > ?

Whenever more information would be added to struct multiboot_raw_info,
userland would not necessarily try to read it, so for backward
compatibility we'd rather accept reading less.

> +     count = 0;
> +     uint8_t *byte = (uint8_t *)&mb_info;
> +     while (count < ior->io_count) {
> +         *(uint8_t *)(&ior->io_data[count]) = *byte;
> +         count++;
> +         byte++;
> +     }

Why not just memcpy?

> +     ior->io_residual = ior->io_count - count;
> +     return (D_SUCCESS);
> +}
> diff --git a/i386/i386at/mbinfo.h b/i386/i386at/mbinfo.h
> new file mode 100644
> index 00000000..0e623250
> --- /dev/null
> +++ b/i386/i386at/mbinfo.h
[...]
> +extern struct multiboot_raw_info mb_info;

It doesn't seem to be needed outside mbinfo.c?

Samuel

Reply via email to