diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2007-03-25 05:40:14 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2007-03-25 05:40:14 +0000 |
commit | 4c672b9308cd007997f55b91e4b7c32d9eced06a (patch) | |
tree | ddaa3d150e2e659d281bbc6c25152c9325a7a526 /cpukit/libnetworking/net | |
parent | 2007-03-25 Ralf Corsépius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-4c672b9308cd007997f55b91e4b7c32d9eced06a.tar.bz2 |
More updates from FreeBSD.
Diffstat (limited to 'cpukit/libnetworking/net')
-rw-r--r-- | cpukit/libnetworking/net/raw_cb.h | 7 | ||||
-rw-r--r-- | cpukit/libnetworking/net/raw_usrreq.c | 7 |
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); |