Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Second stage bootloader (i386) hangs on ls command for ext2
Evgeniy Ivanov wrote:
> Here is a fix for the issue. Independent on what fs partition
> contains, ufs_ls() was called. Because of ext2 and ufs similarity it
> worked successfully in some cases.
>
> netbsd_boot2_ls_fix.diff
> Fix ls command used in second stage bootloader.
:
> Could someone please review and commit it?
Looks good, but one concern.
>> --- a/sys/arch/i386/stand/bootxx/Makefile.bootxx
>> +++ b/sys/arch/i386/stand/bootxx/Makefile.bootxx
>> @@ -87,7 +87,8 @@ CPPFLAGS+= -DLIBSA_SINGLE_FILESYSTEM=xxfs \
>> -D"blkdevioctl(x,y,z)=EINVAL" \
>> -D"blkdevclose(f)=0" \
>> -D"devopen(f,n,fl)=(*(fl)=(void *)n,0)" \
>> - -DLIBSA_NO_DISKLABEL_MSGS
>> + -DLIBSA_NO_DISKLABEL_MSGS \
>> + -DLIBSA_NO_LS_OP
:
>> --- a/sys/arch/i386/stand/libsa/nfs.c
>> +++ b/sys/arch/i386/stand/libsa/nfs.c
:
>> +__compactcall void
>> +nfs_ls(struct open_file *f, const char *pattern)
>> +{
>> +#if !defined(LIBSA_NO_LS_OP)
>> + printf("Currently ls command is unsupported by nfs\n");
>> +#endif
>> + return;
>> +}
I think it's better to use a positive LIBSA_ENABLE_LS_OP option rather
than LIBSA_NO_LS_OP, and make whole (fs_ops)->ls op part optional because
- there are many primary bootloaders (bootxx_foo) which don't need
the ls op and have size restrictions (alpha, atari, pmax ...)
- there are few bootloaders which support command prompt mode where
the `ls' op is actually required (some ports don't have even getchar())
We also have to check all other non-x86 bootloaders which refer ufs_ls().
(ews4800mips, ia64, landisk, x68k, zaurus etc)
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index