|
From: | Vesa Jääskeläinen |
Subject: | Re: Eliminating grub_size_t |
Date: | Wed, 02 Jul 2008 20:46:25 +0300 |
User-agent: | Thunderbird 2.0.0.14 (Windows/20080421) |
Pavel Roskin wrote:
Quoting Javier Martín <address@hidden>:El mar, 01-07-2008 a las 22:14 -0400, Pavel Roskin escribió:Hello! I wonder if we would be better off without grub_size_t. I cannot think of any code that could use it legitimately. The ordinary size_t is used to represent the result of sizeof, i.e. size of a structure. There is no need for grub to support data structures exceeding 4 gigabytes. If we want to support more memory, that's fine, but that would involve other types that can hold the pointer values, such as long.I'm not sure if I'm getting you right. Are you suggesting that we "undo" the someinteger->size_t conversion that caused so many headaches in many 32->64 bit ports? Machine-dependant types like size_t and ptrdiff_t are here to help us, not to haunt us. What is the exact problem with size_t in GRUB right now? I agree that grub_size_t is redundant, though.No real problem. There are some warnings in fs/reiserfs.c about it. But I think removing or redefining grub_size_t would be the cleanest solution.
If reiserfs is using it in wrong place, fix the reiserfs. If you are reading some file system variable, then you should use grub_uintN_t to specify storage size in bits.
size_t is usually used as common index or offset (or size) to some buffer. size_t is returned by sizeof(). It is meant to be optimal size for platform. Eg. on 64bit memory bus it is 64bit and on 32bit memory bus it is 32bit. What grub is doing here is just defining yet another type for the same thing.
Google for size_t if you want to find out more about it.
[Prev in Thread] | Current Thread | [Next in Thread] |