* 4.2 BSD Unix kernel - NSC HYPERchannel support
* $Header: raw_hy.c,v 3.1 84/02/15 04:27:44 steveg Exp $
* Copyright (c) 1984, Tektronix Inc.
#include "../net/route.h"
#include "../net/raw_cb.h"
#include "../netinet/in.h"
#include "../netinet/in_systm.h"
* Raw interface to HYPERchannel.
* Generate HYPERchannel leader and pass packet to hyoutput.
* The user must create a skeletal leader in order to
* communicate message type, message subtype, etc.
* We don't really check the header supplied by the user.
register struct sockaddr_in
*sin
;
register struct rawcb
*rp
= sotorawcb(so
);
* Verify user has supplied necessary space
if ((m
->m_off
> MMAXOFF
|| m
->m_len
< sizeof(struct hym_hdr
)) &&
(m
= m_pullup(m
, sizeof(struct hym_hdr
))) == 0) {
error
= EMSGSIZE
; /* XXX */
sin
= (struct sockaddr_in
*)&rp
->rcb_faddr
;
ifp
= if_ifonnetof((int)sin
->sin_addr
.s_net
);
return (hyoutput(ifp
, m
, (struct sockaddr
*)sin
));