Commit Graph

64 Commits

Author SHA1 Message Date
Joel Sherrill
48abdc31fd Patch from Eric Norum <eric@cls.usask.ca> to readd the behavior where
the minor number indicated the port number to try.
1999-08-23 14:58:16 +00:00
Joel Sherrill
09ea257c58 Patch from Eric Norum <eric@cls.usask.ca>:
I get the following warning when compiling the latest snapshot.  I had
a quick look at the source -- it certainly looks to me like this is a
real bug.

../../../../src/rtems-19990709/c/src/lib/libc/mount.c:97: warning:
`options' might be used uninitialized in this function

Also, I changed the TFTP test program and TFTP driver to reflect the
changes in the way paths are passed to the TFTP driver.  The TFTP driver
now needs a proper `dotted-decimal' hostname as the second component of
the path name.
1999-07-12 15:52:35 +00:00
Joel Sherrill
937ab62c30 After comments D. V. Henkel-Wallace <gumby@zembu.com>, the interface to
mount() was changed to avoid the use of a string as the options.
1999-06-15 22:16:30 +00:00
Joel Sherrill
a6f3cff703 Patch from Ian Lance Taylor <ian@airs.com>:
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.
1999-06-11 14:11:44 +00:00
Joel Sherrill
0643693198 Patch from Eric Norum <eric@cls.usask.ca> to fix bug reported by
Ian Lance Taylor <ian@airs.com>:

    Ian Lance Taylor wrote:
    >
    > In rtems-19990528, sbwait sets SB_WAIT in sb_flags.  sowakeup checks
    > it.  Why doesn't socket_select set it?
    >
    > I don't know that this is a bug--I haven't tried to create a test
    > case.  However, it certainly looks odd.
    >
    > Ian

    Yes, there's a bug there.  Sorry about that.
    It was introduced when I did some cleanup on the sleep/wakeup handling
    in rtems_glue.c.
1999-06-11 14:06:13 +00:00
Joel Sherrill
f74abcf78d Changes from Eric Norum to add a loop and limit on the length of time
the stack will wait for mbufs.
1999-05-28 18:21:25 +00:00
Joel Sherrill
403d7b188f Alignment corrected per Eric Norum's suggestion. 1999-05-28 16:09:00 +00:00
Joel Sherrill
11cdbebd58 Patch from Eric Norum <eric@pollux.usask.ca> to eliminate a panic when the
network stack runs out of mbufs.
1999-05-27 18:03:50 +00:00
Joel Sherrill
8bbaf3bd49 Removed all post 4.0 changes. 1999-05-20 13:32:54 +00:00
Joel Sherrill
a238cc97d0 Patch from D. V. Henkel-Wallace <gumby@zembu.com> to remove compiler
warnings.
1999-05-17 15:45:15 +00:00
Joel Sherrill
acb644a66f Error reporting fixed by Jennifer. 1999-05-07 16:30:44 +00:00
Joel Sherrill
cfcb5a299a Patch from Eric Norum <eric@cls.usask.ca> to corrent a miscount in length
that results in an error in parsing network unit names/numbers.
1999-04-27 17:31:39 +00:00
Joel Sherrill
4186b3bb0c Changed ioctl() prototype to be more like Linux/POSIX than BSD to ease
porting of ACE to RTEMS.
1999-04-19 17:17:41 +00:00
Joel Sherrill
7cdf7fc191 After discussion with Eric Norum <eric@skatter.usask.ca>,
I added __INSIDE_RTEMS_BSD_TCPIP_STACK__ that trips all the needed
macro definitions for a network driver.
1999-04-19 15:27:19 +00:00
Joel Sherrill
517660f192 Moved sparc specific version of in_cksum_hdr to an inline routine like
the reset of the CPU specific implementations after comment from
Eric Norum.
1999-04-01 16:36:22 +00:00
Joel Sherrill
efa0baa5e7 Patch from Eric Norum <eric@skatter.usask.ca> which changed the exit
sequence.
1999-03-31 20:51:07 +00:00
Joel Sherrill
ceb06d9650 Removed warning for `#ifdef' argument starts with punctuation. 1999-03-30 17:43:51 +00:00
Joel Sherrill
6a4096b224 Patch to add shutdown() routine from Tony R. Ambardar <tonya@ece.ubc.ca>. 1999-03-30 15:40:29 +00:00
Joel Sherrill
e828c2dd40 SPARC optimized version of IP checksum header routine. Submitted
by Jiri Gaisler <jgais@ws.estec.esa.nl>.
1999-03-23 23:06:42 +00:00
Joel Sherrill
b6f5f9385d Patch from Eric Norum <eric@skatter.usask.ca> to improve parsing of
network interface names.  This change does not introduce any
compatibility problems.
1999-03-23 22:39:13 +00:00
Joel Sherrill
af0200363e Patch from Eric Norum <eric@skatter.usask.ca> that adds external
fcntl support and an external fcntl handler for sockets.
1999-03-19 21:51:58 +00:00
Joel Sherrill
73f6236bc0 Patch from Eric Norum <eric@skatter.usask.ca> to eliminate external
IO handlers scheme that was implemented originally just to support
sockets.  The file system IO switch is more general and works fine.
1999-03-01 22:40:08 +00:00
Joel Sherrill
ecec2ba7bd Patch from Eric Norum to correct bug induced by select() patch. 1999-02-05 00:29:23 +00:00
Joel Sherrill
354b00bc1e Added printf()'s that can be uncommented to trace MBUF operations. This
is very useful when debugging a device driver.
1999-02-04 15:00:14 +00:00
Joel Sherrill
83c7b007fd Modifed to reflect transition from device driver to file system. 1999-02-04 14:59:42 +00:00
Joel Sherrill
d3c106037f Added debug printf()'s that are commented out. Uncommenting these
allows one to trace the enqueueing and dequeueing of messages.  This
can be used to insure that packets are getting to the boundary between
the network stack and the device driver.
1999-02-04 14:58:01 +00:00
Joel Sherrill
1564ca8e5e Added PowerPC specific header checksum code. 1999-02-04 14:56:09 +00:00
Joel Sherrill
8cce4452a5 Added PowerPC specific header checksum code.
Added volatile to i386 assembly statements in header checksum code.
1999-02-04 14:56:03 +00:00
Joel Sherrill
c1a37d3e94 Debugged and now works except for handling of minor number. 1999-02-04 14:54:31 +00:00
Joel Sherrill
7c7fd4de93 Modified to include comments on how to get TCPDEBUG turned on and
printing messages.
1999-02-04 14:53:06 +00:00
Joel Sherrill
13e11f69c1 Added debug #define and commented it out. 1999-02-02 21:15:15 +00:00
Joel Sherrill
5d5f23bc42 Added PowerPC specific in_cksum file. 1999-02-02 21:15:02 +00:00
Joel Sherrill
9b9c4dfd46 New file. Based on the i386 version. 1999-02-02 21:14:44 +00:00
Joel Sherrill
7b158663ed Prepended macro variables with "_" to avoid name conflicts in expansions. 1999-01-31 20:50:49 +00:00
Joel Sherrill
cdf8a30092 Patch from Eric Norum <eric@skatter.usask.ca> to avoid dereferencing a
NULL pointer.
1999-01-28 18:42:34 +00:00
Joel Sherrill
39ba912277 Changed prototype of rtems_bsdnet_makeFdForSocket to (void *) pointer
so that the libc code did not have to know about (struct socket).
1999-01-26 01:50:31 +00:00
Joel Sherrill
887618b0e7 Switched from printf() to puts(). 1999-01-26 01:49:56 +00:00
Joel Sherrill
94b3ee1366 Made to compile after hacking tftp driver into beginnings of a mini-filesystem. 1999-01-21 22:25:43 +00:00
Joel Sherrill
a7c4314dca Added comments for changing to a filesystem 1999-01-19 20:23:15 +00:00
Joel Sherrill
eb0d7ae2da Patch from D. V. Henkel-Wallace <gumby@zembu.com> to use puts and have prototype. 1999-01-04 16:35:31 +00:00
Joel Sherrill
88a0908402 Patch from D. V. Henkel-Wallace <gumby@zembu.com> to fix braces nesting problem. 1999-01-04 16:30:06 +00:00
Joel Sherrill
60a2d6899d Patch from D. V. Henkel-Wallace <gumby@zembu.com> to make macro nest properly in conditionals 1999-01-04 16:28:49 +00:00
Joel Sherrill
cca44008d8 Merged Eric Norum's select patch that was based on 4.0 and resolved
all conflicts.
1998-12-10 23:31:54 +00:00
Joel Sherrill
a3d0b8a79a Patch from Ian Lance Taylor <ian@airs.com>:
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.
1998-12-10 19:42:29 +00:00
Joel Sherrill
91b1c8e69e Patch from Ian Lance Taylor <ian@airs.com>:
RTEMS permits using the SO_SNDTIMEO and SO_RCVTIMEO socket options to
    set a timeout for most socket I/O operations.  However, in RTEMS
    4.0.0, those options do not affect connect or accept.  I don't know of
    any way to put a timeout on those calls in RTEMS 4.0.0; can anybody
    point to one.

    Since it is frequently useful to have a timeout on accept, and
    sometimes useful to have a timeout on connect shorter than the BSD
    system default of 75 seconds, the following patch causes SO_RCVTIMEO
    to affect connect and accept.
1998-12-07 17:42:52 +00:00
Joel Sherrill
847375f3ad Patch from Eric Norum <eric@skatter.usask.ca>:
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.
1998-11-19 17:35:49 +00:00
Joel Sherrill
b19cb179ab Added header files per request from Chris Johns to avoid problems
in include file order.
1998-10-12 17:21:12 +00:00
Joel Sherrill
766ed7c0f1 Patch from Eric Norum <eric@skatter.usask.ca>:
Remember the test to see if a socket could be read and written at
    the same time by two different tasks?  I discovered that if both
    tasks attempt to close the socket a panic can occur from inside the
    BSD code.

    Closing the same socket twice from two different threads is
    certainly an error, but a panic is not the greatest error reporting
    method :-)

    The following small change to the socket close routine should reduce
    the chances of the panic.
1998-09-29 12:15:08 +00:00
Joel Sherrill
718dc95384 Patch from Eric Norum <eric@skatter.usask.ca>:
Here's a patch to make the rtems_showroute routine a little more
    useful.  For `host' route table entries the link-level address is now
    displayed.  This is equivalent to the old `show arp table'
    information displayed by the KA9Q code.
1998-09-21 00:46:00 +00:00
Joel Sherrill
7ddcfb8cd4 Patch from Eric Norum and David Fiddes to put ColdFire support in
the inet checksum routine.
1998-09-21 00:42:07 +00:00