<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2010-12-08)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
<font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-12-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libnetworking/loop.h, libnetworking/net/if_loop.c,
libnetworking/rtems/rtems_glue.c, libmisc/dummy/dummy-networking.c:
Initialize loop back interface during normal initialization via
rtems_bsdnet_initialize_network().
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2662&r2=text&tr2=1.2663&diff_format=h">M</a></td><td width='1%'>1.2663</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libmisc/dummy/dummy-networking.c.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>cpukit/libmisc/dummy/dummy-networking.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libnetworking/loop.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>cpukit/libnetworking/loop.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libnetworking/net/if_loop.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.13&diff_format=h">M</a></td><td width='1%'>1.13</td><td width='100%'>cpukit/libnetworking/net/if_loop.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libnetworking/rtems/rtems_glue.c.diff?r1=text&tr1=1.52&r2=text&tr2=1.53&diff_format=h">M</a></td><td width='1%'>1.53</td><td width='100%'>cpukit/libnetworking/rtems/rtems_glue.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2662 rtems/cpukit/ChangeLog:1.2663
--- rtems/cpukit/ChangeLog:1.2662 Fri Dec 3 14:34:24 2010
+++ rtems/cpukit/ChangeLog Wed Dec 8 04:30:26 2010
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2010-12-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ * libnetworking/loop.h, libnetworking/net/if_loop.c,
+ libnetworking/rtems/rtems_glue.c, libmisc/dummy/dummy-networking.c:
+ Initialize loop back interface during normal initialization via
+ rtems_bsdnet_initialize_network().
+
</font> 2010-12-03 Joel Sherrill <joel.sherrill@oarcorp.com>
* configure.ac, posix/src/signal_2.c: sighandler_t is defined
<font color='#006600'>diff -u rtems/cpukit/libmisc/dummy/dummy-networking.c:1.1 rtems/cpukit/libmisc/dummy/dummy-networking.c:1.2
--- rtems/cpukit/libmisc/dummy/dummy-networking.c:1.1 Tue Aug 4 19:00:54 2009
+++ rtems/cpukit/libmisc/dummy/dummy-networking.c Wed Dec 8 04:30:27 2010
</font><font color='#997700'>@@ -23,22 +23,8 @@
</font> #include <sys/socket.h>
#include <netinet/in.h>
<font color='#880000'>- extern int rtems_bsdnet_loopattach(struct rtems_bsdnet_ifconfig *, int);
-
- static struct rtems_bsdnet_ifconfig loopback_config = {
- "lo0", /* name */
- rtems_bsdnet_loopattach, /* attach function */
- NULL, /* link to next interface */
- "127.0.0.1", /* IP address */
- "255.0.0.0", /* IP net mask */
- 0, /* hardware_address */
- 0, 0, 0, 0,
- 0, 0, 0,
- 0
- };
-
</font> struct rtems_bsdnet_config rtems_bsdnet_config = {
<font color='#880000'>- &loopback_config, /* Network interface */
</font><font color='#000088'>+ NULL, /* Network interface */
</font> NULL, /* Use fixed network configuration */
0, /* Default network task priority */
0, /* Default mbuf capacity */
<font color='#006600'>diff -u rtems/cpukit/libnetworking/loop.h:1.2 rtems/cpukit/libnetworking/loop.h:1.3
--- rtems/cpukit/libnetworking/loop.h:1.2 Thu Aug 20 16:56:22 1998
+++ rtems/cpukit/libnetworking/loop.h Wed Dec 8 04:30:27 2010
</font><font color='#997700'>@@ -2,4 +2,19 @@
</font> * $Id$
*/
<font color='#000088'>+#ifndef _RTEMS_BSDNET_LOOP_H
+#define _RTEMS_BSDNET_LOOP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
</font> #define NLOOP 1
<font color='#000088'>+
+void rtems_bsdnet_initialize_loop(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RTEMS_BSDNET_LOOP_H */
</font>
<font color='#006600'>diff -u rtems/cpukit/libnetworking/net/if_loop.c:1.12 rtems/cpukit/libnetworking/net/if_loop.c:1.13
--- rtems/cpukit/libnetworking/net/if_loop.c:1.12 Sun Mar 28 00:50:28 2010
+++ rtems/cpukit/libnetworking/net/if_loop.c Wed Dec 8 04:30:27 2010
</font><font color='#997700'>@@ -92,8 +92,6 @@
</font> static int loioctl(struct ifnet *, ioctl_command_t, caddr_t);
static void lortrequest(int, struct rtentry *, struct sockaddr *);
<font color='#880000'>-void rtems_bsdnet_loopattach(void *);
-
</font> #ifdef TINY_LOMTU
#define LOMTU (1024+512)
#elif defined(LARGE_LOMTU)
<font color='#997700'>@@ -105,7 +103,7 @@
</font> struct ifnet loif[NLOOP];
void
<font color='#880000'>-rtems_bsdnet_loopattach(void *dummy)
</font><font color='#000088'>+rtems_bsdnet_initialize_loop(void)
</font> {
register struct ifnet *ifp;
register int i = 0;
<font color='#006600'>diff -u rtems/cpukit/libnetworking/rtems/rtems_glue.c:1.52 rtems/cpukit/libnetworking/rtems/rtems_glue.c:1.53
--- rtems/cpukit/libnetworking/rtems/rtems_glue.c:1.52 Thu Dec 17 14:26:09 2009
+++ rtems/cpukit/libnetworking/rtems/rtems_glue.c Wed Dec 8 04:30:27 2010
</font><font color='#997700'>@@ -40,6 +40,8 @@
</font> #include <net/netisr.h>
#include <net/route.h>
<font color='#000088'>+#include "loop.h"
+
</font> /*
* Sysctl init all.
*/
<font color='#997700'>@@ -99,6 +101,20 @@
</font> int rtems_bsdnet_ntpserver_count = 0;
int32_t rtems_bsdnet_timeoffset = 0;
<font color='#000088'>+static const struct sockaddr_in address_template = {
+ sizeof(address_template),
+ AF_INET,
+ 0,
+ { INADDR_ANY },
+ { 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static void
+rtems_bsdnet_initialize_sockaddr_in(struct sockaddr_in *addr)
+{
+ memcpy(addr, &address_template, sizeof(*addr));
+}
+
</font> /*
* Perform FreeBSD memory allocation.
* FIXME: This should be modified to keep memory allocation statistics.
<font color='#997700'>@@ -315,6 +331,9 @@
</font> * Let other network tasks begin
*/
rtems_bsdnet_semaphore_release ();
<font color='#000088'>+
+ rtems_bsdnet_initialize_loop();
+
</font> return 0;
}
<font color='#997700'>@@ -822,17 +841,81 @@
</font> return 0;
}
<font color='#000088'>+static bool
+rtems_bsdnet_setup_interface(
+ const char *name,
+ const char *ip_address,
+ const char *ip_netmask
+)
+{
+ struct sockaddr_in address;
+ struct sockaddr_in netmask;
+ short flags;
+
+ /*
+ * Bring interface up
+ */
+ flags = IFF_UP;
+ if (rtems_bsdnet_ifconfig (name, SIOCSIFFLAGS, &flags) < 0) {
+ printf ("Can't bring %s up: %s\n", name, strerror (errno));
+ return false;
+ }
+
+ /*
+ * Set interface netmask
+ */
+ rtems_bsdnet_initialize_sockaddr_in(&netmask);
+ netmask.sin_addr.s_addr = inet_addr (ip_netmask);
+ if (rtems_bsdnet_ifconfig (name, SIOCSIFNETMASK, &netmask) < 0) {
+ printf ("Can't set %s netmask: %s\n", name, strerror (errno));
+ return false;
+ }
+
+ /*
+ * Set interface address
+ */
+ rtems_bsdnet_initialize_sockaddr_in(&address);
+ address.sin_addr.s_addr = inet_addr (ip_address);
+ if (rtems_bsdnet_ifconfig (name, SIOCSIFADDR, &address) < 0) {
+ printf ("Can't set %s address: %s\n", name, strerror (errno));
+ return false;
+ }
+
+ /*
+ * Set interface broadcast address if the interface has the
+ * broadcast flag set.
+ */
+ if (rtems_bsdnet_ifconfig (name, SIOCGIFFLAGS, &flags) < 0) {
+ printf ("Can't read %s flags: %s\n", name, strerror (errno));
+ return false;
+ }
+
+ if (flags & IFF_BROADCAST) {
+ struct sockaddr_in broadcast;
+
+ rtems_bsdnet_initialize_sockaddr_in(&broadcast);
+ broadcast.sin_addr.s_addr =
+ address.sin_addr.s_addr | ~netmask.sin_addr.s_addr;
+ if (rtems_bsdnet_ifconfig (name, SIOCSIFBRDADDR, &broadcast) < 0) {
+ struct in_addr in_addr;
+ char buf[20];
+ in_addr.s_addr = broadcast.sin_addr.s_addr;
+ if (!inet_ntop(AF_INET, &in_addr, buf, sizeof(buf)))
+ strcpy(buf,"?.?.?.?");
+ printf ("Can't set %s broadcast address %s: %s\n",
+ name, buf, strerror (errno));
+ }
+ }
+
+ return true;
+}
+
</font> static int
rtems_bsdnet_setup (void)
{
struct rtems_bsdnet_ifconfig *ifp;
<font color='#880000'>- short flags;
- struct sockaddr_in address;
- struct sockaddr_in netmask;
- struct sockaddr_in broadcast;
- struct sockaddr_in gateway;
</font> int i;
<font color='#880000'>- int any_if_configured = 0;
</font><font color='#000088'>+ bool any_if_configured = false;
</font>
/*
* Set local parameters
<font color='#997700'>@@ -864,82 +947,36 @@
</font> /*
* Configure interfaces
*/
<font color='#000088'>+ any_if_configured |= rtems_bsdnet_setup_interface(
+ "lo0",
+ "127.0.0.1",
+ "255.0.0.0"
+ );
</font> for (ifp = rtems_bsdnet_config.ifconfig ; ifp ; ifp = ifp->next) {
if (ifp->ip_address == NULL)
continue;
<font color='#880000'>- /*
- * Bring interface up
- */
- flags = IFF_UP;
- if (rtems_bsdnet_ifconfig (ifp->name, SIOCSIFFLAGS, &flags) < 0) {
- printf ("Can't bring %s up: %s\n", ifp->name, strerror (errno));
- continue;
- }
-
- /*
- * Set interface netmask
- */
- memset (&netmask, '\0', sizeof netmask);
- netmask.sin_len = sizeof netmask;
- netmask.sin_family = AF_INET;
- netmask.sin_addr.s_addr = inet_addr (ifp->ip_netmask);
- if (rtems_bsdnet_ifconfig (ifp->name, SIOCSIFNETMASK, &netmask) < 0) {
- printf ("Can't set %s netmask: %s\n", ifp->name, strerror (errno));
- continue;
- }
-
- /*
- * Set interface address
- */
- memset (&address, '\0', sizeof address);
- address.sin_len = sizeof address;
- address.sin_family = AF_INET;
- address.sin_addr.s_addr = inet_addr (ifp->ip_address);
- if (rtems_bsdnet_ifconfig (ifp->name, SIOCSIFADDR, &address) < 0) {
- printf ("Can't set %s address: %s\n", ifp->name, strerror (errno));
- continue;
- }
-
- /*
- * Set interface broadcast address if the interface has the
- * broadcast flag set.
- */
- if (rtems_bsdnet_ifconfig (ifp->name, SIOCGIFFLAGS, &flags) < 0) {
- printf ("Can't read %s flags: %s\n", ifp->name, strerror (errno));
- continue;
- }
-
- any_if_configured = 1;
-
- if (flags & IFF_BROADCAST) {
- memset (&broadcast, '\0', sizeof broadcast);
- broadcast.sin_len = sizeof broadcast;
- broadcast.sin_family = AF_INET;
- broadcast.sin_addr.s_addr =
- address.sin_addr.s_addr | ~netmask.sin_addr.s_addr;
- if (rtems_bsdnet_ifconfig (ifp->name, SIOCSIFBRDADDR, &broadcast) < 0) {
- struct in_addr in_addr;
- char buf[20];
- in_addr.s_addr = broadcast.sin_addr.s_addr;
- if (!inet_ntop(AF_INET, &in_addr, buf, sizeof(buf)))
- strcpy(buf,"?.?.?.?");
- printf ("Can't set %s broadcast address %s: %s\n",
- ifp->name, buf, strerror (errno));
- }
- }
</font><font color='#000088'>+ any_if_configured |= rtems_bsdnet_setup_interface(
+ ifp->name,
+ ifp->ip_address,
+ ifp->ip_netmask
+ );
</font> }
/*
* Set default route
*/
if (rtems_bsdnet_config.gateway && any_if_configured) {
<font color='#880000'>- address.sin_addr.s_addr = INADDR_ANY;
- netmask.sin_addr.s_addr = INADDR_ANY;
- memset (&gateway, '\0', sizeof gateway);
- gateway.sin_len = sizeof gateway;
- gateway.sin_family = AF_INET;
</font><font color='#000088'>+ struct sockaddr_in address;
+ struct sockaddr_in netmask;
+ struct sockaddr_in gateway;
+
+ rtems_bsdnet_initialize_sockaddr_in(&address);
+ rtems_bsdnet_initialize_sockaddr_in(&netmask);
+ rtems_bsdnet_initialize_sockaddr_in(&gateway);
+
</font> gateway.sin_addr.s_addr = inet_addr (rtems_bsdnet_config.gateway);
<font color='#000088'>+
</font> if (rtems_bsdnet_rtrequest (
RTM_ADD,
(struct sockaddr *)&address,
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
<font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-12-08 Sebastian Huber <Sebastian.Huber@embedded-brains.de>
* loopback/init.c: Loop back interface will be initialized now during
normal initialization via rtems_bsdnet_initialize_network().
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/samples/ChangeLog.diff?r1=text&tr1=1.181&r2=text&tr2=1.182&diff_format=h">M</a></td><td width='1%'>1.182</td><td width='100%'>testsuites/samples/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/samples/loopback/init.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.11&diff_format=h">M</a></td><td width='1%'>1.11</td><td width='100%'>testsuites/samples/loopback/init.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/samples/ChangeLog:1.181 rtems/testsuites/samples/ChangeLog:1.182
--- rtems/testsuites/samples/ChangeLog:1.181 Mon Aug 16 09:20:48 2010
+++ rtems/testsuites/samples/ChangeLog Wed Dec 8 04:32:05 2010
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2010-12-08 Sebastian Huber <Sebastian.Huber@embedded-brains.de>
+
+ * loopback/init.c: Loop back interface will be initialized now during
+ normal initialization via rtems_bsdnet_initialize_network().
+
</font> 2010-08-16 Ralf Corsépius <ralf.corsepius@rtems.org>
* fileio/Makefile.am: Remove AM_CONDITIONAL(LIBCHIP).
<font color='#006600'>diff -u rtems/testsuites/samples/loopback/init.c:1.10 rtems/testsuites/samples/loopback/init.c:1.11
--- rtems/testsuites/samples/loopback/init.c:1.10 Sun Nov 1 22:24:14 2009
+++ rtems/testsuites/samples/loopback/init.c Wed Dec 8 04:32:05 2010
</font><font color='#997700'>@@ -44,27 +44,9 @@
</font> /*
* Network configuration
*/
<font color='#880000'>-extern int rtems_bsdnet_loopattach(struct rtems_bsdnet_ifconfig *conf, int attaching);
-
-static struct rtems_bsdnet_ifconfig loopback_config = {
- "lo0", /* name */
- rtems_bsdnet_loopattach, /* attach function */
- NULL, /* link to next interface */
- "127.0.0.1", /* IP address */
- "255.0.0.0", /* IP net mask */
- NULL, /* hardware_address */
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- NULL
-};
</font>
struct rtems_bsdnet_config rtems_bsdnet_config = {
<font color='#880000'>- &loopback_config, /* Network interface */
</font><font color='#000088'>+ NULL, /* Network interface */
</font> NULL, /* Use fixed network configuration */
0, /* Default network task priority */
0, /* Default mbuf capacity */
</pre>
<p> </p>
<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>