forked from Imagelibrary/rtems
More updates from FreeBSD.
This commit is contained in:
@@ -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 *);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user