Colin Watson wrote: > A while back, I was looking for eight extra bytes in boot.img so that I > could put a keyboard modifier check in there, allowing me to avoid > printing "GRUB loading" by default, which my boss^3 has been asking me > for, without crippling debugging in the process. I knew I could find a > few by shortening error messages (e.g. "Hard Disk" -> "HD"), but I asked > Colin King, one of our kernel hackers, if he could find a nicer > approach. He came up with a patch which I massaged a bit into this. > What do people think? > > It seems as if it might be generally useful to have a bit of spare space > in here, although I would certainly appreciate it if people didn't use > it all at once. ;-) > Looks goo. Can you merge it into experimental? > 2010-02-10 Colin King <colin.k...@ubuntu.com> > 2010-02-10 Colin Watson <cjwat...@ubuntu.com> > > Shrink the pre-partition-table part of boot.img by eight bytes. > > * boot/i386/pc/boot.S (ERR): New macro. > (chs_mode): Use ERR. > (geometry_error): Likewise. > (hd_probe_error): Remove. This is only used once, so we wrwite > it inline instead. > (read_error): Instead of printing read_error_string, just set up > %si and fall through to ... > (error_message): ... this new function, also used by ERR. > > === modified file 'boot/i386/pc/boot.S' > --- boot/i386/pc/boot.S 2010-01-03 22:05:07 +0000 > +++ boot/i386/pc/boot.S 2010-02-10 11:32:08 +0000 > @@ -27,6 +27,7 @@ > > /* Print message string */ > #define MSG(x) movw $x, %si; call LOCAL(message) > +#define ERR(x) movw $x, %si; jmp LOCAL(error_message) > > .file "boot.S" > > @@ -233,7 +234,7 @@ LOCAL(chs_mode): > jz LOCAL(floppy_probe) > > /* Nope, we definitely have a hard disk, and we're screwed. */ > - jmp LOCAL(hd_probe_error) > + ERR(hd_probe_error_string) > > LOCAL(final_init): > /* set the mode to zero */ > @@ -360,22 +361,15 @@ LOCAL(copy_buffer): > * BIOS Geometry translation error (past the end of the disk geometry!). > */ > LOCAL(geometry_error): > - MSG(geometry_error_string) > - jmp LOCAL(general_error) > - > -/* > - * Disk probe failure. > - */ > -LOCAL(hd_probe_error): > - MSG(hd_probe_error_string) > - jmp LOCAL(general_error) > + ERR(geometry_error_string) > > /* > * Read error on the disk. > */ > LOCAL(read_error): > - MSG(read_error_string) > - > + movw $read_error_string, %si > +LOCAL(error_message): > + call LOCAL(message) > LOCAL(general_error): > MSG(general_error_string) > > > Thanks, > >
-- Regards Vladimir 'φ-coder/phcoder' Serbinenko
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel