April 7, 2007
10:44 a.m.
* Peter Stuge <stuge-linuxbios@cdy.org> [070407 06:04]:
In blockdev.c unsigned long is used for the sector, this will overflow when a kernel is beyond 2TB on a drive. The IDE driver users sector_t which is typedef:ed to uint64_t or unsigned long long. Maybe GRUB2 will be here before this becomes a problem.
There is no portable 128 bit type on 32bit platforms. Except you use a struct { u64 low; u64 high; }; I think the problem is on x86 you need all registers at once to describe a single 128bit value ;) This has been nasty in linuxbios. -- coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br. Tel.: +49 761 7668825 • Fax: +49 761 7664613 Email: info@coresystems.de • http://www.coresystems.de/