summaryrefslogtreecommitdiffstats
path: root/c/src/libnetworking/sys (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Patch from Ian Lance Taylor <ian@airs.com>:Joel Sherrill1999-06-112-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The select function is not particularly efficient when dealing with a large number of sockets. The application has to build a big set of bits and pass it in. RTEMS has to look through all those bits and see what is ready. Then the application has to look through all the bits again. On the other hand, when using RTEMS, the select function is needed exactly when you have a large number of sockets, because that is when it becomes prohibitive to use a separate thread for each socket. I think it would make more sense for RTEMS to support callback functions which could be invoked when there is data available to read from a socket, or when there is space available to write to a socket. Accordingly, I implemented them. This patch adds two new SOL_SOCKET options to setsockopt and getsockopt: SO_SNDWAKEUP and SO_RCVWAKEUP. They take arguments of type struct sockwakeup: struct sockwakeup { void (*sw_pfn) __P((struct socket *, caddr_t)); caddr_t sw_arg; }; They are used to add or remove a function which will be called when something happens for the socket. Getting a callback doesn't imply that a read or write will succeed, but it does imply that it is worth trying. This adds functionality to RTEMS which is somewhat like interrupt driven socket I/O on Unix. After the patch to RTEMS, I have appended a patch to netdemos-19990407/select/test.c to test the new functionality and demonstrate one way it might be used. To run the new test instead of the select test, change doSocket to call echoServer2 instead of echoServer.
* Patch from Eric Norum <eric@pollux.usask.ca> to eliminate a panic when theJoel Sherrill1999-05-271-0/+1
| | | | network stack runs out of mbufs.
* Removed all post 4.0 changes.Joel Sherrill1999-05-201-81/+78
|
* Changed ioctl() prototype to be more like Linux/POSIX than BSD to easeJoel Sherrill1999-04-191-1/+1
| | | | porting of ACE to RTEMS.
* Added printf()'s that can be uncommented to trace MBUF operations. ThisJoel Sherrill1999-02-041-0/+3
| | | | is very useful when debugging a device driver.
* Prepended macro variables with "_" to avoid name conflicts in expansions.Joel Sherrill1999-01-311-78/+78
|
* Merged Eric Norum's select patch that was based on 4.0 and resolvedJoel Sherrill1998-12-101-3/+2
| | | | all conflicts.
* Patch from Ian Lance Taylor <ian@airs.com>:Joel Sherrill1998-12-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From: Eric Norum <eric@skatter.usask.ca> Date: Sat, 5 Dec 98 13:20:51 -0600 What do you think of this patch? It implements your `tap' suggestion in a way that adds support for all ethernet devices with no driver modifications. I also added a return value from the tap function. If the return value is zero, the packet will be passed up the chain as usual. If the return value is non-zero the mbuf holding the packet will be freed and the packet will be dropped. If you like it, please submit it to Joel. I guess there needs to be an addition to the network documentation describing the additional ioctl's -- and a big warning that the tap function is called from a context that holds the network semaphore. Here is Eric's patch. I've tested it a bit, and made a couple of trivial changes. This is certainly better than mine: it should work for all Ethernet drivers. ================================================== The only concern I have about this patch is that the tap function may want to fiddle with the mbuf, calling functions like m_pullup and the like. If those force the networking code to rearrange the mbuf structure, then the caller's call to m_freem may crash. I don't know if this is a realistic concern--I don't know enough about the mbuf layer.
* Patch from Eric Norum <eric@skatter.usask.ca>:Joel Sherrill1998-11-191-2/+2
| | | | | | | | | | | | | | | 1) Socket timeout field changed from `short' to `long'. This makes longer timeouts possible. With a 1 kHz system clock the old system allowed timeouts only up to a little over 30 seconds! This change is a slightly cleaned-up version of the patch proposed by Ian Lance Taylor. 2) Major changes to BOOTP/DHCP reply handling. Now supports much of RFC2132. These changes were done at the request of, and with the assistance of, Erik Ivanenko. If you're making changes, you might want to change the network supplement Essentially just do a global search and replace of BOOTP with BOOTP/DHCP.
* Added CVS IdsJoel Sherrill1998-08-202-0/+7
|
* Fixed many warnings.Joel Sherrill1998-08-203-0/+27
|
* Base filesJoel Sherrill1998-08-1933-0/+5989