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



Hi,

Evgeniy Ivanov wrote:

> > I have not checked if their readdir() API can be applicable our
> > current ls implementation, but what do you think about this idea,
> > i.e. file system independent ls command using fs dependent readdir() ops?
> >
> > readdir looks better as fs_ops, but if it requires too much
> > modification in our current implementation, ls in fs_ops
> > could be a interim workaround.
> 
> I don't like having ls in fs_ops either and I agree, that readdir
> similar to the OpenBSD's one would be better.
> Ideally, libsa (at least fs_ops) shouldn't produce any output, it's up
> to boot loader to printf.
> 
> The difference is in two parts: fs dependent part should work with an
> external buffer (OpenBSD way, they copy name and then do stat) or
> return a dirent pointer into internal buffer (to have the output they
> get, calling stat() is required, but to keep our current ls output it
> might be skipped). The second is printing the data. Ls should use
> readdir(), but If we leave it in libsa::ls() we will not have any
> benefits from readdir(). And moving it to the bootloaders is not a
> very easy task, because there're plenty of them (and no way to test
> changes for non-i386 arch).
> 
> I think we could leave current approach as interim workaround.

Ok, I agree current OpenBSD's libsa readdir implementation
(without opendir/seekdir/closedir) is incomplete to bother
to integrate only for ls ops.

I'll integrate your patch this weekend unless
someone provides better alternative implementation.
---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index