home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Headers / bsd / netinet / in_pcb.h < prev    next >
C/C++ Source or Header  |  1997-04-27  |  2KB  |  51 lines

  1. /*
  2.  * Copyright (c) 1982, 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.  *    @(#)in_pcb.h    7.3 (Berkeley) 6/29/88 plus MULTICAST 1.0
  18.  */
  19.  
  20. /*
  21.  * Common structure pcb for internet protocol implementation.
  22.  * Here are stored pointers to local and foreign host table
  23.  * entries, local and foreign socket numbers, and pointers
  24.  * up (to a socket structure) and down (to a protocol-specific)
  25.  * control block.
  26.  */
  27. struct inpcb {
  28.     struct    inpcb *inp_next,*inp_prev;
  29.                     /* pointers to other pcb's */
  30.     struct    inpcb *inp_head;    /* pointer back to chain of inpcb's
  31.                        for this protocol */
  32.     struct    in_addr inp_faddr;    /* foreign host table entry */
  33.     u_short    inp_fport;        /* foreign port */
  34.     struct    in_addr inp_laddr;    /* local host table entry */
  35.     u_short    inp_lport;        /* local port */
  36.     struct    socket *inp_socket;    /* back pointer to socket */
  37.     caddr_t    inp_ppcb;        /* pointer to per-protocol pcb */
  38.     struct    route inp_route;    /* placeholder for routing entry */
  39.     struct    mbuf *inp_options;    /* IP options */
  40.     struct    mbuf *inp_moptions;    /* IP multicast options */
  41. };
  42.  
  43. #define    INPLOOKUP_WILDCARD    1
  44. #define    INPLOOKUP_SETLOCAL    2
  45.  
  46. #define    sotoinpcb(so)    ((struct inpcb *)(so)->so_pcb)
  47.  
  48. #ifdef KERNEL
  49. struct    inpcb *in_pcblookup();
  50. #endif
  51.