rem: int raw_userreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam,
add: static int raw_userreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam,
context: int raw_userreq(struct socket *so, int req, struct mbuf *m, struct mbuf *nam,                struct mbuf *control){	struct rawcb *rp = sotorawcb(so);	int error = 0;		if (req == PRU_CONTROL) {		return EINVAL;//EOPNOTSUPP;	}	if (control && control->m_len) {		error = EINVAL;//EOPNOTSUPP;		goto release;	}	if (rp == NULL) {		error = EINVAL;		goto release;	}		switch(req) {		case PRU_ATTACH:			error = raw_attach(so, (int) nam);			break;		case PRU_DETACH:			if (rp == NULL) {				error = ENOTCONN;				break;			}			raw_detach(rp);			break;		case PRU_CONNECT2:			error = EOPNOTSUPP;			break;		case PRU_DISCONNECT:			if (rp->rcb_faddr == NULL) {				error = ENOTCONN;				break;			}			raw_detach(rp);			socket_set_disconnected(so);			break;		case PRU_SHUTDOWN:			socket_set_cantsendmore(so);			break;		case PRU_LISTEN:		case PRU_ACCEPT:		case PRU_SENDOOB:			error = EOPNOTSUPP;			break;		case PRU_ABORT:			raw_detach(rp);			socket_set_disconnected(so);			break;		case PRU_SEND:			if (nam) {				if (rp->rcb_faddr) {					error = EISCONN;					break;				}				rp->rcb_faddr = mtod(nam, struct sockaddr *);			} else if (rp->rcb_faddr == NULL) {				error = ENOTCONN;				break;			}			/* XXX - Hmm, should we be hardcoding this??? */			error = route_output(m, so);			m = NULL;			if (nam)				rp->rcb_faddr = NULL;			break;		default:			printf("raw_userreq: unsupported request.\n");	}	release:	if (m != NULL)		m_freem(m);	return error;}