* 4.3 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"
#include "../netinet/in_var.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
;
ia
= in_iaonnetof(in_netof(sin
->sin_addr
));
return (hyoutput(ia
->ia_ifp
, m
, (struct sockaddr
*)sin
));