<html><head><style> body {height: 100%; color:#000000; font-size:12pt; font-family:arial,helvetica,sans-serif;}</style></head><body><div>I just had a quick look at kern_sendfile() in uipc_syscalls.c. It seems that it uses virtual memory for the file access, so this won't work on RTEMS. However it would be nice to have an optimized sendfile() which avoids one copy and uses mbufs directly.<br></div><div><br></div><div>----- Sujay Raj <sujayraaj@gmail.com> schrieb:<br>></div><div dir="ltr">Okay, So I will dig in to the details of the implementation of sendfile on freebsd to find if it does indeed use mmap, or if there is an implementation that doesn't. <div><br></div><div>I will inform as soon as I figure it out if this is the correct way out.</div><div><br></div><div>Thanks and Regards,</div><div>Sujay Raj</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 24, 2015 at 12:49 AM, Joel Sherrill <span dir="ltr"><<a href="mailto:joel.sherrill@oarcorp.com" target="_blank" data-mce-href="mailto:joel.sherrill@oarcorp.com">joel.sherrill@oarcorp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><span class=""><span class=""><br></span></span><div><br></div><span class=""><span class="">><br></span></span><div><br></div><span class=""><span class="">> On 6/23/2015 2:15 PM, Gedare Bloom wrote:<br></span></span><div><br></div><span class=""><span class="">></span></span><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> On Tue, Jun 23, 2015 at 3:13 PM, Sujay Raj <<a href="mailto:sujayraaj@gmail.com" target="_blank" data-mce-href="mailto:sujayraaj@gmail.com">sujayraaj@gmail.com</a>> wrote:<br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> I agree with Sebastian.<br><div><br></div>><br><div><br></div>> Using read write in a loop can only serve as a makeshift measure.<br><div><br></div>><br><div><br></div>> If we have consensus here, then I can work on getting sendfile backed up in<br><div><br></div>> libbsd. (though, I have some serious background reading to do before I am<br><div><br></div>> able to do it, but I think I can. )<br><div><br></div>><br><div><br></div>></blockquote><br>> Yes this makes the most sense.<br><div><br></div>></blockquote><span class=""><br>><br></span><br>> If it doesn't rely on mmap(). If it does, then it won't work.<div class="HOEnZb"><div class="h5"><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Thanks and Regards,<br><div><br></div>> Sujay Raj<br><div><br></div>><br><div><br></div>> On Wed, Jun 24, 2015 at 12:21 AM, Sebastian Huber<br><div><br></div>> <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank" data-mce-href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>> I would use the sendfile system call implementation from FreeBSD and add<br><div><br></div>> it to the libbsd. Its not a big win if you use read() and write() to<br><div><br></div>> implement sendfile().  This makes only sense if you can use kernel space<br><div><br></div>> zero-copy buffers.<br><div><br></div>><br><div><br></div>> ----- Eduardo Silva <<a href="mailto:eduardo@monkey.io" target="_blank" data-mce-href="mailto:eduardo@monkey.io">eduardo@monkey.io</a>> schrieb:<br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>> Sujay,<br><div><br></div>><br><div><br></div>> Monkey use conditionals for each implementation: Linux, FreeBSD and OSX.<br><div><br></div>> My suggestion is that RTEMS may implement a sendfile based on FreeBSD format<br><div><br></div>> which can easily be emulated as a read() and further write() for socket<br><div><br></div>> operations. That will help not only Monkey, but also other software that<br><div><br></div>> requires such interface.<br><div><br></div>><br><div><br></div>> I am not the best one to talk about RTEMS, but the Kernel always knows<br><div><br></div>> better it buffers capacity that the program on the other side.<br><div><br></div>><br><div><br></div>> do you think is possible to do that on RTEMS ?<br><div><br></div>><br><div><br></div>> regards,<br><div><br></div>><br><div><br></div>> On Tue, Jun 23, 2015 at 12:05 PM, Joel Sherrill<br><div><br></div>> <<a href="mailto:joel.sherrill@oarcorp.com" target="_blank" data-mce-href="mailto:joel.sherrill@oarcorp.com">joel.sherrill@oarcorp.com</a>> wrote:<br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> On 6/23/2015 12:49 PM, Sujay Raj wrote:<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> I am working on porting Monkey HTTP server on rtems.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Sendfile is not specified in POSIX.1-2001 or other standards and its<br><div><br></div>> implementations vary depending on the unix/linux system being used.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Freebsd has sendfile in its libc.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote></blockquote><br>><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> FreeBSD has a completely different API for sendfile(). Plus the source<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> must be a regular file and the destination a socket.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><a href="https://www.freebsd.org/cgi/man.cgi?query=sendfile&sektion=2" rel="noreferrer" target="_blank" data-mce-href="https://www.freebsd.org/cgi/man.cgi?query=sendfile&sektion=2">https://www.freebsd.org/cgi/man.cgi?query=sendfile&sektion=2</a><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> This is a random discussion of sendfile() on various OSes. It mentions<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> the assumption that the source must normally be able to be mmap'ed.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Since you can't do that on RTEMS, you are stuck with a loop<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> implementation. [1]<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><a href="https://groups.google.com/forum/#!topic/comp.unix.programmer/65oDSzpEzx8" rel="noreferrer" target="_blank" data-mce-href="https://groups.google.com/forum/#!topic/comp.unix.programmer/65oDSzpEzx8">https://groups.google.com/forum/#!topic/comp.unix.programmer/65oDSzpEzx8</a><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> So I opened this thread to discuss how should we proceed with this<br><div><br></div>> matter, if we should work on getting sendfile in newlib, or if there is any<br><div><br></div>> portable solution that we can use in its place.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote></blockquote><br>><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Given that (a) it is not POSIX and (b) there is no agreement between<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Linux and FreeBSD, it is highly unlikely newlib would accept an<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> implementation.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Given (b), I don't personally see merging it into RTEMS since we<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> have to pick a winner and loser on the API.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> What's the feeling on having a default implementation in Monkey and<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> using that as a backup? With [1] as a consideration again.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> [1] The size of the buffer user for read/write has to be accounted<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> for. If this is on a thread stack, then it can't be too large or that<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> imposes a burden on calling sendfile(). I can see an implementation<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> doing a malloc() of the buffer and then free()'ing it.<br><div><br></div>></blockquote><br>><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> cc to Joel and Eduardo.<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Thanks and Regards,<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Sujay Raj<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote></blockquote><br>><br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> --<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Joel Sherrill, Ph.D.             Director of Research & Development<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> joel.sherrill@OARcorp.com        On-Line Applications Research<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Ask me about RTEMS: a free RTOS  Huntsville AL 35805<br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>> Support Available                <a href="tel:%28256%29%20722-9985" target="_blank" data-mce-href="tel:%28256%29%20722-9985">(256) 722-9985</a><br><div><br></div>></blockquote><br>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote></blockquote><br>><br><div><br></div>><br><div><br></div>><br><div><br></div>><br><div><br></div>> --<br><div><br></div>> Eduardo Silva<br><div><br></div>> Monkey Software<br><div><br></div>><br><div><br></div>><blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;"><br>><br><div><br></div>></blockquote><br>><br><div><br></div>><br><div><br></div>> --<br><div><br></div>><br><div><br></div>> Sebastian Huber, embedded brains GmbH<br><div><br></div>><br><div><br></div>><br><div><br></div>> Address : Dornierstr. 4, D-82178 Puchheim, Germany<br><div><br></div>> Phone   : <a href="tel:%2B49%2089%20189%2047%2041-16" target="_blank" data-mce-href="tel:%2B49%2089%20189%2047%2041-16">+49 89 189 47 41-16</a><br><div><br></div>> Fax     : <a href="tel:%2B49%2089%20189%2047%2041-09" target="_blank" data-mce-href="tel:%2B49%2089%20189%2047%2041-09">+49 89 189 47 41-09</a><br><div><br></div>> E-Mail  : sebastian.huber at <a href="http://embedded-brains.de" rel="noreferrer" target="_blank" data-mce-href="http://embedded-brains.de">embedded-brains.de</a><br><div><br></div>> PGP     : Public key available on request.<br><div><br></div>><br><div><br></div>><br><div><br></div>> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br><div><br></div>><br><div><br></div>><br><div><br></div>> _______________________________________________<br><div><br></div>> devel mailing list<br><div><br></div>><a href="mailto:devel@rtems.org" target="_blank" data-mce-href="mailto:devel@rtems.org">devel@rtems.org</a><br><div><br></div>><a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank" data-mce-href="http://lists.rtems.org/mailman/listinfo/devel">http://lists.rtems.org/mailman/listinfo/devel</a><br><div><br></div>></blockquote><br>><br><div><br></div>><br><div><br></div>><br><div><br></div>> _______________________________________________<br><div><br></div>> devel mailing list<br><div><br></div>><a href="mailto:devel@rtems.org" target="_blank" data-mce-href="mailto:devel@rtems.org">devel@rtems.org</a><br><div><br></div>><a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank" data-mce-href="http://lists.rtems.org/mailman/listinfo/devel">http://lists.rtems.org/mailman/listinfo/devel</a><br><div><br></div>></blockquote></blockquote><br>><br><div><br></div>> -- <br><div><br></div>> Joel Sherrill, Ph.D.             Director of Research & Development<br><div><br></div>> joel.sherrill@OARcorp.com        On-Line Applications Research<br><div><br></div>> Ask me about RTEMS: a free RTOS  Huntsville AL 35805<br><div><br></div>> Support Available                <a href="tel:%28256%29%20722-9985" target="_blank" data-mce-href="tel:%28256%29%20722-9985">(256) 722-9985</a><br><div><br></div>></div></div></blockquote></div><br></div><div><br></div><div><br></div><div>-- <br></div><div><pre>Sebastian Huber, embedded brains GmbH<br></pre><div><br></div><pre>Address : Dornierstr. 4, D-82178 Puchheim, Germany<br>Phone   : +49 89 189 47 41-16<br>Fax     : +49 89 189 47 41-09<br>E-Mail  : <a href="http://lists.rtems.org/mailman/listinfo/devel" data-mce-href="http://lists.rtems.org/mailman/listinfo/devel">sebastian.huber at embedded-brains.de</a><br>PGP     : Public key available on request.<br></pre><div><br></div><pre>Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.</pre></div></body></html>