1: /*
   2:  * Copyright (c) 1982,1985, 1986 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)socket.h	7.1 (Berkeley) 6/4/86
   7:  */
   8: 
   9: /*
  10:  * Definitions related to sockets: types, address families, options.
  11:  */
  12: 
  13: /*
  14:  * Types
  15:  */
  16: #define SOCK_STREAM 1       /* stream socket */
  17: #define SOCK_DGRAM  2       /* datagram socket */
  18: #define SOCK_RAW    3       /* raw-protocol interface */
  19: #define SOCK_RDM    4       /* reliably-delivered message */
  20: #define SOCK_SEQPACKET  5       /* sequenced packet stream */
  21: 
  22: /*
  23:  * Option flags per-socket.
  24:  */
  25: #define SO_DEBUG    0x0001      /* turn on debugging info recording */
  26: #define SO_ACCEPTCONN   0x0002      /* socket has had listen() */
  27: #define SO_REUSEADDR    0x0004      /* allow local address reuse */
  28: #define SO_KEEPALIVE    0x0008      /* keep connections alive */
  29: #define SO_DONTROUTE    0x0010      /* just use interface addresses */
  30: #define SO_BROADCAST    0x0020      /* permit sending of broadcast msgs */
  31: #define SO_USELOOPBACK  0x0040      /* bypass hardware when possible */
  32: #define SO_LINGER   0x0080      /* linger on close if data present */
  33: #define SO_OOBINLINE    0x0100      /* leave received OOB data in line */
  34: 
  35: /*
  36:  * Additional options, not kept in so_options.
  37:  */
  38: #define SO_SNDBUF   0x1001      /* send buffer size */
  39: #define SO_RCVBUF   0x1002      /* receive buffer size */
  40: #define SO_SNDLOWAT 0x1003      /* send low-water mark */
  41: #define SO_RCVLOWAT 0x1004      /* receive low-water mark */
  42: #define SO_SNDTIMEO 0x1005      /* send timeout */
  43: #define SO_RCVTIMEO 0x1006      /* receive timeout */
  44: #define SO_ERROR    0x1007      /* get error status and clear */
  45: #define SO_TYPE     0x1008      /* get socket type */
  46: 
  47: /*
  48:  * Structure used for manipulating linger option.
  49:  */
  50: struct  linger {
  51:     int l_onoff;        /* option on/off */
  52:     int l_linger;       /* linger time */
  53: };
  54: 
  55: /*
  56:  * Level number for (get/set)sockopt() to apply to socket itself.
  57:  */
  58: #define SOL_SOCKET  0xffff      /* options for socket level */
  59: 
  60: /*
  61:  * Address families.
  62:  */
  63: #define AF_UNSPEC   0       /* unspecified */
  64: #define AF_UNIX     1       /* local to host (pipes, portals) */
  65: #define AF_INET     2       /* internetwork: UDP, TCP, etc. */
  66: #define AF_IMPLINK  3       /* arpanet imp addresses */
  67: #define AF_PUP      4       /* pup protocols: e.g. BSP */
  68: #define AF_CHAOS    5       /* mit CHAOS protocols */
  69: #define AF_NS       6       /* XEROX NS protocols */
  70: #define AF_NBS      7       /* nbs protocols */
  71: #define AF_ECMA     8       /* european computer manufacturers */
  72: #define AF_DATAKIT  9       /* datakit protocols */
  73: #define AF_CCITT    10      /* CCITT protocols, X.25 etc */
  74: #define AF_SNA      11      /* IBM SNA */
  75: #define AF_DECnet   12      /* DECnet */
  76: #define AF_DLI      13      /* Direct data link interface */
  77: #define AF_LAT      14      /* LAT */
  78: #define AF_HYLINK   15      /* NSC Hyperchannel */
  79: #define AF_APPLETALK    16      /* Apple Talk */
  80: 
  81: #define AF_MAX      17
  82: 
  83: /*
  84:  * Structure used by kernel to store most
  85:  * addresses.
  86:  */
  87: struct sockaddr {
  88:     u_short sa_family;      /* address family */
  89:     char    sa_data[14];        /* up to 14 bytes of direct address */
  90: };
  91: 
  92: /*
  93:  * Structure used by kernel to pass protocol
  94:  * information in raw sockets.
  95:  */
  96: struct sockproto {
  97:     u_short sp_family;      /* address family */
  98:     u_short sp_protocol;        /* protocol */
  99: };
 100: 
 101: /*
 102:  * Protocol families, same as address families for now.
 103:  */
 104: #define PF_UNSPEC   AF_UNSPEC
 105: #define PF_UNIX     AF_UNIX
 106: #define PF_INET     AF_INET
 107: #define PF_IMPLINK  AF_IMPLINK
 108: #define PF_PUP      AF_PUP
 109: #define PF_CHAOS    AF_CHAOS
 110: #define PF_NS       AF_NS
 111: #define PF_NBS      AF_NBS
 112: #define PF_ECMA     AF_ECMA
 113: #define PF_DATAKIT  AF_DATAKIT
 114: #define PF_CCITT    AF_CCITT
 115: #define PF_SNA      AF_SNA
 116: #define PF_DECnet   AF_DECnet
 117: #define PF_DLI      AF_DLI
 118: #define PF_LAT      AF_LAT
 119: #define PF_HYLINK   AF_HYLINK
 120: #define PF_APPLETALK    AF_APPLETALK
 121: 
 122: #define PF_MAX      AF_MAX
 123: 
 124: /*
 125:  * Maximum queue length specifiable by listen.
 126:  */
 127: #define SOMAXCONN   5
 128: 
 129: /*
 130:  * Message header for recvmsg and sendmsg calls.
 131:  */
 132: struct msghdr {
 133:     caddr_t msg_name;       /* optional address */
 134:     int msg_namelen;        /* size of address */
 135:     struct  iovec *msg_iov;     /* scatter/gather array */
 136:     int msg_iovlen;     /* # elements in msg_iov */
 137:     caddr_t msg_accrights;      /* access rights sent/received */
 138:     int msg_accrightslen;
 139: };
 140: 
 141: #define MSG_OOB     0x1     /* process out-of-band data */
 142: #define MSG_PEEK    0x2     /* peek at incoming message */
 143: #define MSG_DONTROUTE   0x4     /* send without using routing tables */
 144: 
 145: #define MSG_MAXIOVLEN   16

Defined struct's

linger defined in line 50; used 10 times
msghdr defined in line 132; used 18 times
sockaddr defined in line 87; used 180 times

Defined macros

AF_APPLETALK defined in line 79; used 1 times
AF_CCITT defined in line 73; used 1 times
AF_CHAOS defined in line 68; used 1 times
AF_DATAKIT defined in line 72; used 1 times
AF_DECnet defined in line 75; used 1 times
AF_DLI defined in line 76; used 1 times
AF_ECMA defined in line 71; used 1 times
AF_HYLINK defined in line 78; used 5 times
AF_LAT defined in line 77; used 1 times
AF_MAX defined in line 81; used 6 times
AF_NBS defined in line 70; used 1 times
AF_PUP defined in line 67; used 1 times
AF_SNA defined in line 74; used 1 times
AF_UNSPEC defined in line 63; used 4 times
MSG_DONTROUTE defined in line 143; used 1 times
MSG_MAXIOVLEN defined in line 145; used 2 times
MSG_OOB defined in line 141; used 3 times
PF_APPLETALK defined in line 120; never used
PF_CCITT defined in line 114; never used
PF_CHAOS defined in line 109; never used
PF_DATAKIT defined in line 113; never used
PF_DECnet defined in line 116; never used
PF_DLI defined in line 117; never used
PF_ECMA defined in line 112; never used
PF_HYLINK defined in line 119; used 1 times
PF_IMPLINK defined in line 107; used 1 times
PF_INET defined in line 106; used 3 times
PF_LAT defined in line 118; never used
PF_MAX defined in line 122; never used
PF_NBS defined in line 111; never used
PF_NS defined in line 110; never used
PF_PUP defined in line 108; never used
PF_SNA defined in line 115; never used
PF_UNIX defined in line 105; never used
PF_UNSPEC defined in line 104; never used
SOCK_RDM defined in line 19; never used
SOCK_SEQPACKET defined in line 20; used 1 times
SOL_SOCKET defined in line 58; used 2 times
SOMAXCONN defined in line 127; used 1 times
SO_ERROR defined in line 44; never used
SO_RCVBUF defined in line 39; never used
SO_RCVLOWAT defined in line 41; never used
SO_RCVTIMEO defined in line 43; never used
SO_REUSEADDR defined in line 27; used 1 times
SO_SNDBUF defined in line 38; used 1 times
SO_SNDLOWAT defined in line 40; never used
SO_SNDTIMEO defined in line 42; never used
SO_TYPE defined in line 45; never used
SO_USELOOPBACK defined in line 31; never used

Usage of this include

socket.h used 62 times
Last modified: 1986-06-05
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2059
Valid CSS Valid XHTML 1.0 Strict