home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / gcc / ixemulsrc.lha / ixemul / include / net / raw_cb.h < prev    next >
C/C++ Source or Header  |  1996-12-11  |  2KB  |  67 lines

  1. /*
  2.  * Copyright (c) 1980, 1986 Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that the above copyright notice and this paragraph are
  7.  * duplicated in all such forms and that any documentation,
  8.  * advertising materials, and other materials related to such
  9.  * distribution and use acknowledge that the software was developed
  10.  * by the University of California, Berkeley.  The name of the
  11.  * University may not be used to endorse or promote products derived
  12.  * from this software without specific prior written permission.
  13.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  14.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  15.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  16.  *
  17.  *    @(#)raw_cb.h    7.4 (Berkeley) 2/17/89
  18.  */
  19.  
  20. /*
  21.  * Raw protocol interface control block.  Used
  22.  * to tie a socket to the generic raw interface.
  23.  */
  24. struct rawcb {
  25.     struct    rawcb *rcb_next;    /* doubly linked list */
  26.     struct    rawcb *rcb_prev;
  27.     struct    socket *rcb_socket;    /* back pointer to socket */
  28.     struct    sockaddr rcb_faddr;    /* destination address */
  29.     struct    sockaddr rcb_laddr;    /* socket's address */
  30.     struct    sockproto rcb_proto;    /* protocol family, protocol */
  31.     caddr_t    rcb_pcb;        /* protocol specific stuff */
  32.     struct    mbuf *rcb_options;    /* protocol specific options */
  33.     struct    route rcb_route;    /* routing information */
  34.     short    rcb_flags;
  35. };
  36.  
  37. /*
  38.  * Since we can't interpret canonical addresses,
  39.  * we mark an address present in the flags field.
  40.  */
  41. #define    RAW_LADDR    01
  42. #define    RAW_FADDR    02
  43. #define    RAW_DONTROUTE    04        /* no routing, default */
  44.  
  45. #define    sotorawcb(so)        ((struct rawcb *)(so)->so_pcb)
  46.  
  47. /*
  48.  * Nominal space allocated to a raw socket.
  49.  */
  50. #define    RAWSNDQ        8192
  51. #define    RAWRCVQ        8192
  52.  
  53. /*
  54.  * Format of raw interface header prepended by
  55.  * raw_input after call from protocol specific
  56.  * input routine.
  57.  */
  58. struct raw_header {
  59.     struct    sockproto raw_proto;    /* format of packet */
  60.     struct    sockaddr raw_dst;    /* dst address for rawintr */
  61.     struct    sockaddr raw_src;    /* src address for sbappendaddr */
  62. };
  63.  
  64. #ifdef _KERNEL
  65. struct rawcb rawcb;            /* head of list */
  66. #endif
  67.