2008-03-28 Robert Millan <rmh@aybabtu.com>

Surpass 1 TiB disk addressing limit.  Note: there are no plans to handle
        the 2 TiB disk limit in GRUB Legacy, since that would need considerable
        rework.  If you have >2TiB disks, use GRUB 2 instead.

        * grub/asmstub.c (biosdisk): Add unsigned qualifier to `sector'.
        * stage2/bios.c (biosdisk): Likewise.
        * stage2/disk_io.c (rawread, devread, rawwrite, devwrite): Likewise.
        * stage2/shared.h (rawread, devread, rawwrite, devwrite): Likewise.
        * lib/device.c (get_drive_geometry): Replace BLKGETSIZE with
        BLKGETSIZE64.
This commit is contained in:
robertmh committed 2008-03-28 13:22:28 +00:00
1 parent bce46bf7f1
commit fe11b298f6
6 files changed
+31 -18

No files matched your search

+1 -1
View File
@@ -47,7 +47,7 @@ extern int get_diskinfo_floppy (int drive,
return the error number. Otherwise, return 0. */
int
biosdisk (int read, int drive, struct geometry *geometry,
int sector, int nsec, int segment)
unsigned int sector, int nsec, int segment)
{
int err;
+5 -5
View File
@@ -137,7 +137,7 @@ log2 (unsigned long word)
}
int
rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char *buf)
{
int slen, sectors_per_vtrack;
int sector_size_bits = log2 (buf_geom.sector_size);
@@ -261,7 +261,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
*/
if (disk_read_func)
{
int sector_num = sector;
unsigned int sector_num = sector;
int length = buf_geom.sector_size - byte_offset;
if (length > size)
length = size;
@@ -291,7 +291,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
int
devread (int sector, int byte_offset, int byte_len, char *buf)
devread (unsigned int sector, int byte_offset, int byte_len, char *buf)
{
/*
* Check partition boundaries
@@ -330,7 +330,7 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
#ifndef STAGE1_5
int
rawwrite (int drive, int sector, char *buf)
rawwrite (int drive, unsigned int sector, char *buf)
{
if (sector == 0)
{
@@ -363,7 +363,7 @@ rawwrite (int drive, int sector, char *buf)
}
int
devwrite (int sector, int sector_count, char *buf)
devwrite (unsigned int sector, int sector_count, char *buf)
{
#if defined(GRUB_UTIL) && defined(__linux__)
if (current_partition != 0xFFFFFF
+5 -5
View File
@@ -811,7 +811,7 @@ int checkkey (void);
/* Low-level disk I/O */
int get_diskinfo (int drive, struct geometry *geometry);
int biosdisk (int subfunc, int drive, struct geometry *geometry,
int sector, int nsec, int segment);
unsigned int sector, int nsec, int segment);
void stop_floppy (void);
/* Command-line interface functions. */
@@ -924,10 +924,10 @@ int gunzip_test_header (void);
int gunzip_read (char *buf, int len);
#endif /* NO_DECOMPRESSION */
int rawread (int drive, int sector, int byte_offset, int byte_len, char *buf);
int devread (int sector, int byte_offset, int byte_len, char *buf);
int rawwrite (int drive, int sector, char *buf);
int devwrite (int sector, int sector_len, char *buf);
int rawread (int drive, unsigned int sector, int byte_offset, int byte_len, char *buf);
int devread (unsigned int sector, int byte_offset, int byte_len, char *buf);
int rawwrite (int drive, unsigned int sector, char *buf);
int devwrite (unsigned int sector, int sector_len, char *buf);
/* Parse a device string and initialize the global parameters. */
char *set_device (char *device);