# 2.11BSD#431 - /usr/src/sys/vaxif/raw_hy.c

##### Functions

    rhy_output        X

       1: /*
       2:  *	@(#)raw_hy.c	7.1	6/5/86
       3:  *
       4:  * 4.3 BSD Unix kernel - NSC HYPERchannel support
       5:  *
       6:  * $Header: raw_hy.c,v 3.1 84/02/15 04:27:44 steveg Exp $
       7:  * $Locker:  $
       8:  *
       9:  * Copyright (c) 1984, Tektronix Inc.
      10:  * All Rights Reserved
      11:  *
      12:  */
      13:
      14: #include "hy.h"
      15: #if NHY > 0
      16:
      17: #include "param.h"
      18: #include "mbuf.h"
      19: #include "socket.h"
      20: #include "protosw.h"
      21: #include "socketvar.h"
      22: #include "errno.h"
      23:
      24: #include "../net/if.h"
      25: #include "../net/route.h"
      26: #include "../net/raw_cb.h"
      27:
      28: #include "../netinet/in.h"
      29: #include "../netinet/in_systm.h"
      30: #include "../netinet/in_var.h"
      31: #include "if_hy.h"
      32:
      33: /*
      34:  * Raw interface to HYPERchannel.
      35:  */
      36:
      37: /*
      38:  * Generate HYPERchannel leader and pass packet to hyoutput.
      39:  * The user must create a skeletal leader in order to
      40:  * communicate message type, message subtype, etc.
      41:  * We don't really check the header supplied by the user.
      42:  */
      43: rhy_output(m, so)
      44:     register struct mbuf *m;
      45:     struct socket *so;
      46: {
      47:     int error = 0;
      48:     register struct sockaddr_in *sin;
      49:     register struct rawcb *rp = sotorawcb(so);
      50:     struct in_ifaddr *ia;
      51:
      52:     /*
      53: 	 * Verify user has supplied necessary space
      54: 	 * for the header.
      55: 	 */
      56:     if ((m->m_off > MMAXOFF || m->m_len < sizeof(struct hym_hdr)) &&
      57:         (m = m_pullup(m, sizeof(struct hym_hdr))) == 0) {
      58:         error = EMSGSIZE;   /* XXX */
      59:         goto bad;
      60:     }
      61:
      62:     sin = (struct sockaddr_in *)&rp->rcb_faddr;
      63:     /* no routing here */
      64:     ia = in_iaonnetof(in_netof(sin->sin_addr));
      65:     if (ia)
      66:         return (hyoutput(ia->ia_ifp, m, (struct sockaddr *)sin));
      67:     error = ENETUNREACH;
      68: bad:
      69:     m_freem(m);
      70:     return (error);
      71: }
      72: #endif

#### Defined functions

rhy_output defined in line 43; never used

Last modified: 1986-06-06 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 288 |