fix a install bug and rename debug_fs* to apropriate names.
This commit is contained in:
parent
ba8c5e1f8c
commit
88efa06787
8 changed files with 94 additions and 42 deletions
39
ChangeLog
39
ChangeLog
|
@ -1,3 +1,40 @@
|
||||||
|
1999-09-23 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||||
|
|
||||||
|
* stage2/builtins.c (debug_fs_print_func): Renamed to ...
|
||||||
|
(disk_read_print_func): ... this.
|
||||||
|
(fstest_func): Use DISK_READ_HOOK instead of DEBUG_FS.
|
||||||
|
(install_func): Rename debug_fs_savesect_func to
|
||||||
|
disk_read_savesect_func.
|
||||||
|
Rename debug_fs_blocklist_func to disk_read_blocklist_func.
|
||||||
|
Use DISK_READ_HOOK instead of DEBUG_FS.
|
||||||
|
(testload_func): Use DISK_READ_HOOK instead of DEBUG_FS.
|
||||||
|
* stage2/disk_io.c [!STAGE1_5] (debug_fs): Renamed to ...
|
||||||
|
[!STAGE1_5] (disk_read_hook): ... this.
|
||||||
|
[!STAGE1_5] (debug_fs_func): Renamed to ...
|
||||||
|
[!STAGE1_5] (disk_read_func): ... this.
|
||||||
|
(rawread) [!STAGE1_5]: Use DISK_READ_HOOK and DISK_READ_FUNC
|
||||||
|
instead of DEBUG_FS and DEBUG_FS_FUNC.
|
||||||
|
(grub_read) [!STAGE1_5]: Likewise.
|
||||||
|
(devread) [!STAGE1_5]: Use DISK_READ_HOOK instead of DEBUG_FS.
|
||||||
|
* stage2/fsys_ext2fs.c (ext2fs_read) [!STAGE1_5]: Use
|
||||||
|
DISK_READ_HOOK and DISK_READ_FUNC instead of DEBUG_FS and
|
||||||
|
DEBUG_FS_FUNC.
|
||||||
|
* stage2/fsys_ffs.c (ffs_read) [!STAGE1_5]: Likewise.
|
||||||
|
* stage2/fsys_minix.c (minix_read) [!STAGE1_5]: Likewise.
|
||||||
|
* stage2/shared.h [!STAGE1_5] (debug_fs): Renamed to ...
|
||||||
|
[!STAGE1_5] (disk_read_hook): ... this.
|
||||||
|
[!STAGE1_5] (debug_fs_func): Renamed to ...
|
||||||
|
[!STAGE1_5] (disk_read_func): ... this.
|
||||||
|
* docs/grub.texi: Likewise, replace debug_fs and debug_fs_func
|
||||||
|
with disk_read_hook and disk_read_func, respectively.
|
||||||
|
|
||||||
|
1999-09-23 Pavel Roskin <pavel_roskin@geocities.com>
|
||||||
|
|
||||||
|
* stage2/builtins.c (install_func): New local function,
|
||||||
|
debug_fs_savesect_func. Use debug_fs_savesect_func to determine
|
||||||
|
the first sector of Stage2. Write Stage 1 after patching Stage
|
||||||
|
2.
|
||||||
|
|
||||||
1999-09-22 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
1999-09-22 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||||
|
|
||||||
* acinclude.m4 (grub_ASM_USCORE): Do not define HAVE_ASM_USCORE
|
* acinclude.m4 (grub_ASM_USCORE): Do not define HAVE_ASM_USCORE
|
||||||
|
@ -25,7 +62,7 @@
|
||||||
|
|
||||||
1999-09-20 Edward Killips <ekillips@triton.net>
|
1999-09-20 Edward Killips <ekillips@triton.net>
|
||||||
|
|
||||||
* stage2/disk_io.c (set_partition_hidden_flag): Set/cleat the
|
* stage2/disk_io.c (set_partition_hidden_flag): Set/clear the
|
||||||
hidden flag, whether the hidden flag is set or not.
|
hidden flag, whether the hidden flag is set or not.
|
||||||
|
|
||||||
1999-09-21 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
1999-09-21 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
|
||||||
|
|
|
@ -2859,9 +2859,9 @@ it being the same for later calls into the back-end code!
|
||||||
@item filemax
|
@item filemax
|
||||||
Should be the length of the file.
|
Should be the length of the file.
|
||||||
|
|
||||||
@item debug_fs_func
|
@item disk_read_func
|
||||||
Should be set to the value of @samp{debug_fs} @emph{only} during reading
|
Should be set to the value of @samp{disk_read_hook} @emph{only} during
|
||||||
of data for the file, not any other fs data, inodes, FAT tables,
|
reading of data for the file, not any other fs data, inodes, FAT tables,
|
||||||
whatever, then set to @code{NULL} at all other times (it will be
|
whatever, then set to @code{NULL} at all other times (it will be
|
||||||
@code{NULL} by default). If this isn't done corrently, then the
|
@code{NULL} by default). If this isn't done corrently, then the
|
||||||
@command{testload} and @command{install} commands won't work
|
@command{testload} and @command{install} commands won't work
|
||||||
|
|
|
@ -70,7 +70,7 @@ init_config (void)
|
||||||
|
|
||||||
/* Print which sector is read when loading a file. */
|
/* Print which sector is read when loading a file. */
|
||||||
static void
|
static void
|
||||||
debug_fs_print_func (int sector)
|
disk_read_print_func (int sector)
|
||||||
{
|
{
|
||||||
grub_printf ("[%d]", sector);
|
grub_printf ("[%d]", sector);
|
||||||
}
|
}
|
||||||
|
@ -411,14 +411,14 @@ static struct builtin builtin_fallback =
|
||||||
static int
|
static int
|
||||||
fstest_func (char *arg, int flags)
|
fstest_func (char *arg, int flags)
|
||||||
{
|
{
|
||||||
if (debug_fs)
|
if (disk_read_hook)
|
||||||
{
|
{
|
||||||
debug_fs = NULL;
|
disk_read_hook = NULL;
|
||||||
printf (" Filesystem tracing is now off\n");
|
printf (" Filesystem tracing is now off\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
debug_fs = debug_fs_print_func;
|
disk_read_hook = disk_read_print_func;
|
||||||
printf (" Filesystem tracing is now on\n");
|
printf (" Filesystem tracing is now on\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -727,11 +727,20 @@ install_func (char *arg, int flags)
|
||||||
int write_stage2_sect = 0;
|
int write_stage2_sect = 0;
|
||||||
int stage2_sect;
|
int stage2_sect;
|
||||||
char *ptr;
|
char *ptr;
|
||||||
int installaddr, installlist, installsect;
|
int installaddr, installlist;
|
||||||
|
|
||||||
|
/* Save the first sector of Stage2 in STAGE2_SECT. */
|
||||||
|
static void disk_read_savesect_func (int sector)
|
||||||
|
{
|
||||||
|
if (debug)
|
||||||
|
printf ("[%d]", sector);
|
||||||
|
|
||||||
|
stage2_sect = sector;
|
||||||
|
}
|
||||||
|
|
||||||
/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
|
/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
|
||||||
INSTALLSECT. */
|
INSTALLSECT. */
|
||||||
static void debug_fs_blocklist_func (int sector)
|
static void disk_read_blocklist_func (int sector)
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
printf("[%d]", sector);
|
printf("[%d]", sector);
|
||||||
|
@ -752,7 +761,6 @@ install_func (char *arg, int flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
*((unsigned short *) installlist) += 1;
|
*((unsigned short *) installlist) += 1;
|
||||||
installsect = sector;
|
|
||||||
installaddr += 512;
|
installaddr += 512;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -895,8 +903,12 @@ install_func (char *arg, int flags)
|
||||||
installlist = BOOTSEC_LOCATION + STAGE1_FIRSTLIST + 4;
|
installlist = BOOTSEC_LOCATION + STAGE1_FIRSTLIST + 4;
|
||||||
|
|
||||||
/* Read the first sector of Stage 2. */
|
/* Read the first sector of Stage 2. */
|
||||||
|
disk_read_hook = disk_read_savesect_func;
|
||||||
if (! grub_read ((char *) SCRATCHADDR, SECTOR_SIZE) == SECTOR_SIZE)
|
if (! grub_read ((char *) SCRATCHADDR, SECTOR_SIZE) == SECTOR_SIZE)
|
||||||
return 1;
|
{
|
||||||
|
disk_read_hook = 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/* Check for the version of Stage 2. */
|
/* Check for the version of Stage 2. */
|
||||||
if (*((short *) (SCRATCHADDR + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
|
if (*((short *) (SCRATCHADDR + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
|
||||||
|
@ -921,8 +933,6 @@ install_func (char *arg, int flags)
|
||||||
*((unsigned short *) (BOOTSEC_LOCATION + STAGE1_INSTALLADDR))
|
*((unsigned short *) (BOOTSEC_LOCATION + STAGE1_INSTALLADDR))
|
||||||
= installaddr;
|
= installaddr;
|
||||||
|
|
||||||
stage2_sect = installsect;
|
|
||||||
|
|
||||||
if (*ptr == 'p')
|
if (*ptr == 'p')
|
||||||
{
|
{
|
||||||
write_stage2_sect = 1;
|
write_stage2_sect = 1;
|
||||||
|
@ -945,30 +955,35 @@ install_func (char *arg, int flags)
|
||||||
|
|
||||||
/* Read the whole of Stage 2. */
|
/* Read the whole of Stage 2. */
|
||||||
filepos = 0;
|
filepos = 0;
|
||||||
debug_fs = debug_fs_blocklist_func;
|
disk_read_hook = disk_read_blocklist_func;
|
||||||
if (! grub_read ((char *) RAW_ADDR (0x100000), -1))
|
if (! grub_read ((char *) RAW_ADDR (0x100000), -1))
|
||||||
{
|
{
|
||||||
debug_fs = 0;
|
disk_read_hook = 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear the cache. */
|
/* Clear the cache. */
|
||||||
buf_track = -1;
|
buf_track = -1;
|
||||||
|
|
||||||
if (biosdisk (BIOSDISK_WRITE,
|
/* Write the modified first sector of Stage2 to the disk. */
|
||||||
dest_drive, &dest_geom,
|
if (write_stage2_sect
|
||||||
dest_sector, 1, (BOOTSEC_LOCATION >> 4))
|
&& biosdisk (BIOSDISK_WRITE, current_drive, &buf_geom,
|
||||||
|| (write_stage2_sect
|
stage2_sect, 1, SCRATCHSEG))
|
||||||
&& biosdisk (BIOSDISK_WRITE,
|
|
||||||
current_drive, &buf_geom,
|
|
||||||
stage2_sect, 1, SCRATCHSEG)))
|
|
||||||
{
|
{
|
||||||
errnum = ERR_WRITE;
|
errnum = ERR_WRITE;
|
||||||
debug_fs = 0;
|
disk_read_hook = 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (biosdisk (BIOSDISK_WRITE, dest_drive, &dest_geom,
|
||||||
|
dest_sector, 1, (BOOTSEC_LOCATION >> 4)))
|
||||||
|
{
|
||||||
|
errnum = ERR_WRITE;
|
||||||
|
disk_read_hook = 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_fs = 0;
|
disk_read_hook = 0;
|
||||||
|
|
||||||
#ifndef NO_DECOMPRESSION
|
#ifndef NO_DECOMPRESSION
|
||||||
no_decompression = 0;
|
no_decompression = 0;
|
||||||
|
@ -1320,7 +1335,7 @@ testload_func (char *arg, int flags)
|
||||||
if (! grub_open (arg))
|
if (! grub_open (arg))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
debug_fs = debug_fs_print_func;
|
disk_read_hook = disk_read_print_func;
|
||||||
|
|
||||||
/* Perform filesystem test on the specified file. */
|
/* Perform filesystem test on the specified file. */
|
||||||
/* Read whole file first. */
|
/* Read whole file first. */
|
||||||
|
@ -1376,7 +1391,7 @@ testload_func (char *arg, int flags)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
grub_printf ("Max is 0x10ac0: i=0x%x, filepos=0x%x\n", i, filepos);
|
grub_printf ("Max is 0x10ac0: i=0x%x, filepos=0x%x\n", i, filepos);
|
||||||
debug_fs = 0;
|
disk_read_hook = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
/* instrumentation variables */
|
/* instrumentation variables */
|
||||||
void (*debug_fs) (int) = NULL;
|
void (*disk_read_hook) (int) = NULL;
|
||||||
void (*debug_fs_func) (int) = NULL;
|
void (*disk_read_func) (int) = NULL;
|
||||||
|
|
||||||
int print_possibilities;
|
int print_possibilities;
|
||||||
|
|
||||||
|
@ -176,13 +176,13 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
||||||
/*
|
/*
|
||||||
* Instrumentation to tell which sectors were read and used.
|
* Instrumentation to tell which sectors were read and used.
|
||||||
*/
|
*/
|
||||||
if (debug_fs && debug_fs_func)
|
if (disk_read_hook && disk_read_func)
|
||||||
{
|
{
|
||||||
int sector_end = sector + ((num_sect < slen) ? num_sect : slen);
|
int sector_end = sector + ((num_sect < slen) ? num_sect : slen);
|
||||||
int sector_num = sector;
|
int sector_num = sector;
|
||||||
|
|
||||||
while (sector_num < sector_end)
|
while (sector_num < sector_end)
|
||||||
(*debug_fs_func) (sector_num++);
|
(*disk_read_func) (sector_num++);
|
||||||
}
|
}
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(STAGE1_5)
|
#if !defined(STAGE1_5)
|
||||||
if (debug_fs && debug)
|
if (disk_read_hook && debug)
|
||||||
printf ("<%d, %d, %d>", sector, byte_offset, byte_len);
|
printf ("<%d, %d, %d>", sector, byte_offset, byte_len);
|
||||||
#endif /* !STAGE1_5 */
|
#endif /* !STAGE1_5 */
|
||||||
|
|
||||||
|
@ -1360,7 +1360,7 @@ grub_read (char *buf, int len)
|
||||||
size = len;
|
size = len;
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
debug_fs_func = debug_fs;
|
disk_read_func = disk_read_hook;
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
/* read current block and put it in the right place in memory */
|
/* read current block and put it in the right place in memory */
|
||||||
|
@ -1368,7 +1368,7 @@ grub_read (char *buf, int len)
|
||||||
off, size, buf);
|
off, size, buf);
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
debug_fs_func = NULL;
|
disk_read_func = NULL;
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
len -= size;
|
len -= size;
|
||||||
|
|
|
@ -431,14 +431,14 @@ ext2fs_read (char *buf, int len)
|
||||||
size = len;
|
size = len;
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
debug_fs_func = debug_fs;
|
disk_read_func = disk_read_hook;
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
devread (map * (EXT2_BLOCK_SIZE (SUPERBLOCK) / DEV_BSIZE),
|
devread (map * (EXT2_BLOCK_SIZE (SUPERBLOCK) / DEV_BSIZE),
|
||||||
offset, size, buf);
|
offset, size, buf);
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
debug_fs_func = NULL;
|
disk_read_func = NULL;
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
buf += size;
|
buf += size;
|
||||||
|
|
|
@ -161,13 +161,13 @@ ffs_read (char *buf, int len)
|
||||||
size = len;
|
size = len;
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
debug_fs_func = debug_fs;
|
disk_read_func = disk_read_hook;
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
devread (fsbtodb (SUPERBLOCK, map), off, size, buf);
|
devread (fsbtodb (SUPERBLOCK, map), off, size, buf);
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
debug_fs_func = NULL;
|
disk_read_func = NULL;
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
buf += size;
|
buf += size;
|
||||||
|
|
|
@ -269,14 +269,14 @@ minix_read (char *buf, int len)
|
||||||
size = len;
|
size = len;
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
debug_fs_func = debug_fs;
|
disk_read_func = disk_read_hook;
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
devread (map * (BLOCK_SIZE / DEV_BSIZE),
|
devread (map * (BLOCK_SIZE / DEV_BSIZE),
|
||||||
offset, size, buf);
|
offset, size, buf);
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
debug_fs_func = NULL;
|
disk_read_func = NULL;
|
||||||
#endif /* STAGE1_5 */
|
#endif /* STAGE1_5 */
|
||||||
|
|
||||||
buf += size;
|
buf += size;
|
||||||
|
|
|
@ -401,8 +401,8 @@ extern int compressed_file;
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
/* instrumentation variables */
|
/* instrumentation variables */
|
||||||
extern void (*debug_fs) (int);
|
extern void (*disk_read_hook) (int);
|
||||||
extern void (*debug_fs_func) (int);
|
extern void (*disk_read_func) (int);
|
||||||
/* The flag for debug mode. */
|
/* The flag for debug mode. */
|
||||||
extern int debug;
|
extern int debug;
|
||||||
/* Color settings */
|
/* Color settings */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue