⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket.h

📁 vxworks 6.x 的全部头文件
💻 H
📖 第 1 页 / 共 2 页
字号:
/* socket.h - public socket structures and definitions *//* * Copyright (c) 2001-2005 Wind River Systems, Inc. * * The right to copy, distribute, modify or otherwise make use * of this software may be licensed only pursuant to the terms * of an applicable Wind River license agreement. *//* * Copyright (c) 1982, 1985, 1986, 1988, 1993, 1994 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * *	@(#)socket.h	8.4 (Berkeley) 2/21/94 * $FreeBSD: src/sys/sys/socket.h,v 1.39.2.7 2001/07/03 11:02:01 ume Exp $ *//*modification history--------------------02b,15sep05,kch  Added priority_tagged boolean to sovlan structure for                 priority-tagged frames support (SPR #112513).02a,29aug05,kch  Added on/off option to sovlan structure. Corrected                 SO_VLAN define to use value that falls in the range                 for socket option that is kept in so_options (SPR #112068).01z,09aug05,kch  Added SO_VLAN socket level option and sovlan structure                 definition for socket-based vlan support.01y,12jul05,vvv  merged MSG_NOTIFICATION from kame-20050404-freebsd41101x,16may05,kch  Added MOBILITY address & protocol family.01x,12may05,als  Add AF_TIPC support01w,05mar05,dlk  Move SO_VSNUM and SO_VSID out of so_options flags.		 Add SO_LINGERRESET option.01v,07feb05,vvv  _KERNEL cleanup01u,12jan05,vvv  osdep.h cleanup01t,14oct04,nee  include osdep.h and machdep.h when _KERNEL is defined                 (SPR #102593)01s,23aug04,rp   merged from COMP_WN_IPV6_BASE6_ITER5_TO_UNIFIED_PRE_MERGE01r,19jul04,spm  enabled socket operations from different virtual stacks01q,15jun04,nee  adding the SOCKADDR typedef01p,12jan04,bwa  turned-on MSG_EXP option01o,02jan04,vvv  added socket option SO_CONNTIMEO01n,21nov03,bwa  added COMP protocol-specific socket flags and options01m,20nov03,niq  Remove copyright_wrs.h file inclusion01l,05nov03,cdw  Removal of unnecessary _KERNEL guards.01k,04nov03,rlm  Ran batch header path update for header re-org.01j,03nov03,rlm  Removed wrn/coreip/ prefix from #includes for header re-org.01i,27sep03,vvv  made SOCKADDR_STORAGE_T definition consistent between		 kernel and non-kernel builds01h,06aug03,nee  Accordion Base6 merge from ACCORDION_BASE6_MERGE_BASELINE                 label01g,10jun03,vvv  include netVersion.h01f,09may03,vvv  included vxWorks.h01e,06sep02,hsh  add c++ protection01d,03feb02,ham  changes for tornado build.01c,13sep01,ann  enabling the cmsg defines01b,14aug01,ann  correcting the header file inclusions01a,02aug01,ann  performed the initial-port from FreeBSD 4.3 v 1.39.2.7 */#ifndef _SYS_SOCKET_H_#define	_SYS_SOCKET_H_#ifdef __cplusplus extern "C" {#endif#include <vxWorks.h>#include <netVersion.h>     /* * Definitions related to sockets: types, address families, options. *//* * Data types. */typedef u_char		sa_family_t;typedef	unsigned int socklen_t; /* * Types */#define	SOCK_STREAM	1		/* stream socket */#define	SOCK_DGRAM	2		/* datagram socket */#define	SOCK_RAW	3		/* raw-protocol interface */#define	SOCK_RDM	4		/* reliably-delivered message */#define	SOCK_SEQPACKET	5		/* sequenced packet stream *//* * Option flags per-socket. */#define	SO_DEBUG	0x0001		/* turn on debugging info recording */#define	SO_ACCEPTCONN	0x0002		/* socket has had listen() */#define	SO_REUSEADDR	0x0004		/* allow local address reuse */#define	SO_KEEPALIVE	0x0008		/* keep connections alive */#define	SO_DONTROUTE	0x0010		/* just use interface addresses */#define	SO_BROADCAST	0x0020		/* permit sending of broadcast msgs */#define	SO_USELOOPBACK	0x0040		/* bypass hardware when possible */#define	SO_LINGER	0x0080		/* linger on close if data present */#define	SO_OOBINLINE	0x0100		/* leave received OOB data in line */#define	SO_REUSEPORT	0x0200		/* allow local address & port reuse */#define	SO_TIMESTAMP	0x0400		/* timestamp received dgram traffic */#if 0 /* presently unsupported */#define	SO_ACCEPTFILTER	0x1000		/* there is an accept filter */#endif#define SO_LINGERRESET  0x2000		/* when linger fails, reset conn. */#define SO_VSLOCK       0x4000          /* restrict calls to creation stack */#define SO_VLAN         0x8000      /* get/set VLAN ID and user priority */#define SO_PRIVBUF      0x0             /* COMP-only: socket uses private pool*//* * Additional options, not kept in so_options. */#define SO_SNDBUF	0x1001		/* send buffer size */#define SO_RCVBUF	0x1002		/* receive buffer size */#define SO_SNDLOWAT	0x1003		/* send low-water mark */#define SO_RCVLOWAT	0x1004		/* receive low-water mark */#define SO_SNDTIMEO	0x1005		/* send timeout */#define SO_RCVTIMEO	0x1006		/* receive timeout */#define	SO_ERROR	0x1007		/* get error status and clear */#define	SO_TYPE		0x1008		/* get socket type *//*#define	SO_PRIVSTATE	0x1009		   get/deny privileged state */#define SO_CONNTIMEO    0x100a          /* connection timeout for */					/* connectWithTimeout in RTP space *//* * VxWorks-specific socket options not in so_options: use 0x0fff downward. * Note that this convention, like the one above, avoids the single-bit * option flags in so_options, and also hopefully avoids any new BSD options. */#define SO_VSNUM        0x0fff          /* get only: virtual stack number */#define SO_VSID         0x0ffe          /* get only: virtual stack ID *//* * Structure used for manipulating linger option. */struct	linger {	int	l_onoff;		/* option on/off */	int	l_linger;		/* linger time */};/*  * VxWorks-specific socket structure for manipulating SO_VLAN option */struct sovlan {    /*     * If so_onff is set, the vlan id and/or user priority will be copied     * to the socket structure and SO_VLAN so_option will be set. If so_onff     * is not set, the SO_VLAN so_option for the given socket will be cleared.     */    int	vlan_onoff;		/* option on/off */    /*      * The priority_tagged boolean must be set to true if application using     * socket-based vlan requires to egress 802.1P priority-tagged frame     * (i.e. the value of vid is zero). Defaults to false. If set to true,     * the value specified by the vid will be ignored.     */    BOOL priority_tagged;     unsigned short vid;  /* VLAN ID, valid vid: 1..4094 */    unsigned short upriority;   /* User Priority, valid priority: 0..7 */};#if 0    /* Clarinet */struct	accept_filter_arg {	char	af_name[16];	char	af_arg[256-16];};#endif    /* # if 0 *//* * Level number for (get/set)sockopt() to apply to socket itself. */#define	SOL_SOCKET	0xffff		/* options for socket level *//* * Address families. */#define	AF_UNSPEC	0		/* unspecified */#define	AF_LOCAL	1		/* local to host (pipes, portals) */#define	AF_UNIX		AF_LOCAL	/* backward compatibility */#define	AF_INET		2		/* internetwork: UDP, TCP, etc. */#define	AF_IMPLINK	3		/* arpanet imp addresses */#define	AF_PUP		4		/* pup protocols: e.g. BSP */#define	AF_CHAOS	5		/* mit CHAOS protocols */#define	AF_NS		6		/* XEROX NS protocols */#define	AF_ISO		7		/* ISO protocols */#define	AF_OSI		AF_ISO#define	AF_ECMA		8		/* European computer manufacturers */#define	AF_DATAKIT	9		/* datakit protocols */#define	AF_CCITT	10		/* CCITT protocols, X.25 etc */#define	AF_SNA		11		/* IBM SNA */#define AF_DECnet	12		/* DECnet */#define AF_DLI		13		/* DEC Direct data link interface */#define AF_LAT		14		/* LAT */#define	AF_HYLINK	15		/* NSC Hyperchannel */#define	AF_APPLETALK	16		/* Apple Talk */#define	AF_ROUTE	17		/* Internal Routing Protocol */#define	AF_LINK		18		/* Link layer interface */#define	pseudo_AF_XTP	19		/* eXpress Transfer Protocol (no AF) */#define	AF_COIP		20		/* connection-oriented IP, aka ST II */#define	AF_CNT		21		/* Computer Network Technology */#define pseudo_AF_RTIP	22		/* Help Identify RTIP packets */#define	AF_IPX		23		/* Novell Internet Protocol */#define	AF_SIP		24		/* Simple Internet Protocol */#define	pseudo_AF_PIP	25		/* Help Identify PIP packets */#define	AF_ISDN		26		/* Integrated Services Digital Network*/#define	AF_E164		AF_ISDN		/* CCITT E.164 recommendation */#define	pseudo_AF_KEY	27		/* Internal key-management function */#define	AF_INET6	28		/* IPv6 */#define	AF_NATM		29		/* native ATM access */#define	AF_ATM		30		/* ATM */#define pseudo_AF_HDRCMPLT 31		/* Used by BPF to not rewrite headers					 * in interface output routine					 */#define	AF_NETGRAPH	32		/* Netgraph sockets */#define AF_TIPC		33		/* Tranparent Inter-Process Communic. */#define AF_MOBILITY	34#define	AF_MAX		35/* * Structure used by kernel to store most * addresses. */struct sockaddr {	u_char		sa_len;		/* total length */	sa_family_t	sa_family;	/* address family */	char		sa_data[14];	/* actually longer; address value */};#define	SOCK_MAXADDRLEN	255		/* longest possible addresses */typedef struct sockaddr SOCKADDR;/* * Structure used by kernel to pass protocol * information in raw sockets. */struct sockproto {	u_short	sp_family;		/* address family */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -