NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-sparc64/46652 (sparc ofwboot.net fails to load kernel viatftp)
The following reply was made to PR port-sparc64/46652; it has been noted by
GNATS.
From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: spz%serpens.de@localhost
Cc: gnats-bugs%NetBSD.org@localhost,
port-sparc64-maintainer%NetBSD.org@localhost,
netbsd-bugs%NetBSD.org@localhost, tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: port-sparc64/46652 (sparc ofwboot.net fails to load kernel viatftp)
Date: Thu, 5 Jul 2012 01:13:17 +0900
> > Ok, tftp requires own initialization (net_sock in of->f_devdata),
> > but the previous code (using int**) was a bit confusing.
> >
> > How about passing (struct open_file *) as
> > lib/libsa/tftp.c:tftp_open() does?
>
> Why do you want to obscure what kind of data gets carried from
> generator to consumer in f_devdata in the tftp case?
> Using int ** is a (poor, but present) type check by the compiler,
> after all.
See actual consumer of the f_devdata, sys/lib/libsa/tftp.c:tftp_open():
---
__compactcall int
tftp_open(const char *path, struct open_file *f)
{
:
tftpfile->iodesc = io = socktodesc(*(int *)(f->f_devdata));
---
which indicates what should be initialized.
On the other hand, nfs.c (which also use net_open()) doesn't require
any data in f_devdata at all and it confused me.
> If the reason why it's int ** is too confusing, a comment should be added.
>
> The code would be less clear to me, not more, if you handed over the
> pointer to the entire open_file struct when all you want to do is set
> one member of it (which is a dedicated "I'm void * so you can stick in
> whatever both ends need", too).
What kind of comment is reasonable for you?
Even if you don't want void *, Why not int * but int **?
I don't see any reason to prefer int **.
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index