picotcp tftp support [was Adding IPv4 multicast support]
Daniele Lacamera
daniele.lacamera at tass.be
Tue Jul 15 02:31:29 PDT 2014
On Tue, Jul 15, 2014 at 9:01 AM, Antony Pavlov <antonynpavlov at gmail.com> wrote:
>
> barebox uses POSIX file interface for working with tftp.
>
> We have to provide these basic functions (see fs/tftp.c):
>
> static struct fs_driver_d tftp_driver = {
> .open = tftp_open,
> .read = tftp_read,
> .write = tftp_write,
> .close = tftp_close,
> /* Other functions for unlink, truncate,
> mkdir, rmdir, stat, opendir, lseek, create
> are not so important. */
> };
>
> So **fs/tftp.c code is driven** by user code that
> uses file interface for accessing to the files
> on tftp-server.
>
> AFAI understand picotcp tftp support uses event-driven interface
> so **user code is driven** by picotcp tftp support code.
>
> How we can use picotcp tftp support for realization
> of POSIX file interface?
Hi Antony,
I will be able to provide such an interface by using a similar
approach to what you used for ping (so via net_poll() routine called
in a loop), assuming that your posix-like interface expects blocking
calls for read/write operations.
The loop will also be interruptible via CTRL+C.
I would like to know more about this approach though, are you
implementing client only functionality (get/put) or do you want to be
able to listen for client "connections" as well? How is the connection
initiated (I see there is a tftp_probe function that's not included in
the API group)?
Thanks,
/d
More information about the barebox
mailing list