GSoC 2012

Kevin Polulak kpolulak at gmail.com
Fri Mar 23 00:55:35 UTC 2012


I've just completed my Hello World
example<http://www.rtems.org/pipermail/rtems-devel/2012-March/000421.html>so
I can now begin seriously considering my proposal.

On Wed, Mar 21, 2012 at 7:24 AM, Joel Sherrill <joel.sherrill at oarcorp.com>wrote:

> Other requirements include it being very desirable to be able to use the
> same driver with either stack. And to be able to use vanilla existing LWIP
> drivers with RTEMS LWIP port but not the BSD stack.
>

While talking to Gedare Bloom on IRC yesterday, he too mentioned that part
of the project would include the addition of a BSD compatibility layer.
This would allow applications to freely switch between the BSD stack and
LWIP. Doing so wouldn't be too difficult as LWIP already includes a BSD
socket compatibility API. In fact, the documentation for LWIP even provides
a reference implementation.

However, there are a few caveats. First, the BSD sockets compatibility API
does not support the select() and poll() functions since LWIP simply does
not have any functions for implementing them. According to Dunkel, such an
implementation could not use the API and instead would have to directly
communicate with the stack.

Would implementing the select() and poll() functions be necessary? If so,
I'll have to look a little further into how they are implemented on other
systems. I worry about select() because when I was with the Parrot project,
the test suite was always failing on certain platforms due to the highly
platform-dependent nature of this function and is very tricky to implement.

>From what I've been able to gather from other LWIP implementations, it
seems that the BSD sockets compatibility API is not meant to be used as a
complete replacement for applications designed for a full implementation of
the BSD stack. Rather, it should only be used to help assist in porting
existing applications. So far, I haven't been able to determine exactly
what features aren't possible but I'll look into it a little further. Is
that going to be a problem? I will certainly do my best to implement as
many features as I can but if it's not possible, it's not possible.

All that aside, I've found a good
article<http://cvs.savannah.gnu.org/viewvc/*checkout*/lwip/lwip/doc/sys_arch.txt?view=auto&revision=1>on
what should be included in the operating system compatibility layer.
Granted, it is for an older 0.6 version (the most recent is 1.4.0) but it
should at least provide a decent starting point for my proposal.

-- 
- Kevin Polulak (soh_cah_toa)
- http://cybercrud.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20120322/dd724be6/attachment-0001.html>


More information about the devel mailing list