Commit Graph

10 Commits

Author SHA1 Message Date
Ralf Corsepius
fbf3f981e9 Stop using old-style function definitions. 2008-09-01 03:35:37 +00:00
Ralf Corsepius
c30157091b Include <rtems/bsd/sys/queue.h> instead of <sys/queue.h>. 2007-05-10 05:12:54 +00:00
Ralf Corsepius
79e69da631 2004-04-22 Ralf Corsepius <ralf_corsepius@rtems.org>
* libnetworking/kern/uipc_socket.c: Partial update from FreeBSD
	(Remove adv-clause from copyright notice).
	* libnetworking/netinet/igmp_var.h: Partial update from FreeBSD.
2004-04-22 03:27:13 +00:00
Joel Sherrill
36799d4063 2002-11-26 Chris Johns <cjohns@cybertec.com.au>
* Makefile.am: Added sys/linker_set.h
	* kern/Makefile.am: Added kern_mib.c and kern_sysctl.c.
	* kern/uipc_socket.c: OID changed from KERN_SOMAXCONN to KIPC_SOMAXCONN.
	* kern/uipc_socket2.c: OID changed from KERN_MAXSOCKBUF to
	KIPC_MAXSOCKBUF.
	* net/if_ethersubr.c: FreeBSD 2.2.2 does not have a _net_link node
	while 5.0 does.
	* net/if_ppp.c: Removed the TEXT_SET define as these macros are
	now implemented.
	* net/rtsock.c: Enable sysctl support plus fix the bug with the
	lastest FreeBSD sysctl header file.
	* netinet/icmp_var.h: FreeBSD 2.2.2 does not have a _net_inet_icmp
	node while 5.0 does.
	* netinet/if_ether.c: FreeBSD 2.2.2 does not have a _net_link_ether
	node while 5.0 does.
	* netinet/igmp_var.h: FreeBSD 2.2.2 does not have a _net_inet_igmp
	node while 5.0 does.
	* netinet/in_pcb.c: Fixed the arguments to the sysctl call. Add
	inp_gencnt and ipi_count. These are used when listing connections.
	* netinet/in_pcb.h: Added counters to aid the listing of connections.
	* netinet/in_var.h: Provide the _net_inet_ip and _net_inet_raw nodes.
	* netinet/ip_fw.c: Disable the firewall sysctl calls.
	* netinet/tcp_subr.c: Merge tcp_pcblist from the lastest FreeBSD source.
	* netinet/tcp_var.h: Add structures needed by net-snmp to list
	connections.
	* netinet/udp_usrreq.c: Merged udp_pcblist from the lastest FreeBSD
	source.
	* netinet/udp_var.h: Added the sysctl id UDPCTL_PCBLIST. Used by
	net-snmp.
	* rtems_glue.c: Call sysctl_register_all when initialising the
	network stack to register all the sysctl calls. These are in the
	special sections and required an updated linker script.
	* rtems/rtems_syscall.c: Add the sysctl call.
	* sys/kernel.h: Use the lastest FreeBSD method of handling sysctl
	structures.  This now held in the sys/linker_set.h file.
	* sys/queue.h: This is from the lastest FreeBSD code with the circular
	code merged back in as it is not used in the lastest FreeBSD kernel.
	* sys/sysctl.h: The lastest sysctl. This was needed to use with the new
	linker set method. The FreeBSD 2.2.2 version has asm hacks. The lastest
	version of the FreeBSD does not have these hacks. It uses gcc attribute
	directives.
2003-01-03 18:09:57 +00:00
Joel Sherrill
6ca248c37c 2002-10-02 Joel Sherrill <joel@OARcorp.com>
* kern/uipc_socket.c: Make sure that small non-zero delays work.
	Suggested cleanup from Eric Norum.
2002-10-02 17:35:29 +00:00
Joel Sherrill
144b94fa40 2002-09-14 Joel Sherrill <joel@OARcorp.com>
* kern/uipc_socket.c: Fix case on SO_RCVTIMEO and SO_SNDTIMEO where
	conversion into ticks can result in a 0 ticks timeout which is
	the same as requesting no timeout.  Reported by Sergei Organov
	<osv@javad.ru>.
2002-09-14 18:31:06 +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
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
ff0f694d46 Fixed many warnings. 1998-08-20 21:47:37 +00:00
Joel Sherrill
39e6e65a2c Base files 1998-08-19 21:32:28 +00:00