summaryrefslogtreecommitdiffstats
path: root/cpukit/libnetworking/net
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2007-03-25 05:40:14 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2007-03-25 05:40:14 +0000
commit4c672b9308cd007997f55b91e4b7c32d9eced06a (patch)
treeddaa3d150e2e659d281bbc6c25152c9325a7a526 /cpukit/libnetworking/net
parent2007-03-25 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-4c672b9308cd007997f55b91e4b7c32d9eced06a.tar.bz2
More updates from FreeBSD.
Diffstat (limited to 'cpukit/libnetworking/net')
-rw-r--r--cpukit/libnetworking/net/raw_cb.h7
-rw-r--r--cpukit/libnetworking/net/raw_usrreq.c7
2 files changed, 6 insertions, 8 deletions
diff --git a/cpukit/libnetworking/net/raw_cb.h b/cpukit/libnetworking/net/raw_cb.h
index e9027329bf..02881e32b2 100644
--- a/cpukit/libnetworking/net/raw_cb.h
+++ b/cpukit/libnetworking/net/raw_cb.h
@@ -37,13 +37,14 @@
#ifndef _NET_RAW_CB_H_
#define _NET_RAW_CB_H_
+#include <sys/queue.h>
+
/*
* Raw protocol interface control block. Used
* to tie a socket to the generic raw interface.
*/
struct rawcb {
- struct rawcb *rcb_next; /* doubly linked list */
- struct rawcb *rcb_prev;
+ LIST_ENTRY(rawcb) list;
struct socket *rcb_socket; /* back pointer to socket */
struct sockaddr *rcb_faddr; /* destination address */
struct sockaddr *rcb_laddr; /* socket's address */
@@ -59,7 +60,7 @@ struct rawcb {
#define RAWRCVQ 8192
#ifdef _KERNEL
-extern struct rawcb rawcb; /* head of list */
+extern LIST_HEAD(rawcb_list_head, rawcb) rawcb_list;
int raw_attach(struct socket *, int);
void raw_ctlinput(int, struct sockaddr *, void *);
diff --git a/cpukit/libnetworking/net/raw_usrreq.c b/cpukit/libnetworking/net/raw_usrreq.c
index 089e18434d..3dc2ab1735 100644
--- a/cpukit/libnetworking/net/raw_usrreq.c
+++ b/cpukit/libnetworking/net/raw_usrreq.c
@@ -56,7 +56,7 @@ void
raw_init()
{
- rawcb.rcb_next = rawcb.rcb_prev = &rawcb;
+ LIST_INIT(&rawcb_list);
}
@@ -76,11 +76,10 @@ raw_input(m0, proto, src, dst)
{
register struct rawcb *rp;
register struct mbuf *m = m0;
- register int sockets = 0;
struct socket *last;
last = 0;
- for (rp = rawcb.rcb_next; rp != &rawcb; rp = rp->rcb_next) {
+ LIST_FOREACH(rp, &rawcb_list, list) {
if (rp->rcb_proto.sp_family != proto->sp_family)
continue;
if (rp->rcb_proto.sp_protocol &&
@@ -110,7 +109,6 @@ raw_input(m0, proto, src, dst)
m_freem(n);
else {
sorwakeup(last);
- sockets++;
}
}
}
@@ -122,7 +120,6 @@ raw_input(m0, proto, src, dst)
m_freem(m);
else {
sorwakeup(last);
- sockets++;
}
} else
m_freem(m);