NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-sparc64/46652 (sparc fails to load kernel viatftp)

The following reply was made to PR port-sparc64/46652; it has been noted by 

From: Izumi Tsutsui <>
Subject: Re: port-sparc64/46652 (sparc 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