Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
iproute2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
iproute2
Commits
80100495
Commit
80100495
authored
Jun 02, 2004
by
osdl.org!shemminger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Delete: include-glibc/socketbits.h
}(Logical change 1.6)
parent
85cf6d64
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
270 deletions
+0
-270
include-glibc/socketbits.h
include-glibc/socketbits.h
+0
-270
No files found.
include-glibc/socketbits.h
deleted
100644 → 0
View file @
85cf6d64
/* System-specific socket constants and types. Linux version.
Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _SOCKETBITS_H
#define _SOCKETBITS_H 1
#include <features.h>
#define __need_size_t
#define __need_NULL
#include <stddef.h>
__BEGIN_DECLS
/* Type for length arguments in socket calls. */
#ifndef __socklen_t_defined
typedef
unsigned
int
socklen_t
;
# define __socklen_t_defined
#endif
/* Types of sockets. */
enum
__socket_type
{
SOCK_STREAM
=
1
,
/* Sequenced, reliable, connection-based
byte streams. */
#define SOCK_STREAM SOCK_STREAM
SOCK_DGRAM
=
2
,
/* Connectionless, unreliable datagrams
of fixed maximum length. */
#define SOCK_DGRAM SOCK_DGRAM
SOCK_RAW
=
3
,
/* Raw protocol interface. */
#define SOCK_RAW SOCK_RAW
SOCK_RDM
=
4
,
/* Reliably-delivered messages. */
#define SOCK_RDM SOCK_RDM
SOCK_SEQPACKET
=
5
,
/* Sequenced, reliable, connection-based,
datagrams of fixed maximum length. */
#define SOCK_SEQPACKET SOCK_SEQPACKET
SOCK_PACKET
=
10
/* Linux specific way of getting packets
at the dev level. For writing rarp and
other similar things on the user level. */
#define SOCK_PACKET SOCK_PACKET
};
/* Protocol families. */
#define PF_UNSPEC 0
/* Unspecified. */
#define PF_LOCAL 1
/* Local to host (pipes and file-domain). */
#define PF_UNIX PF_LOCAL
/* Old BSD name for PF_LOCAL. */
#define PF_FILE PF_LOCAL
/* POSIX name for PF_LOCAL. */
#define PF_INET 2
/* IP protocol family. */
#define PF_AX25 3
/* Amateur Radio AX.25. */
#define PF_IPX 4
/* Novell Internet Protocol. */
#define PF_APPLETALK 5
/* Don't use this. */
#define PF_NETROM 6
/* Amateur radio NetROM. */
#define PF_BRIDGE 7
/* Multiprotocol bridge. */
#define PF_AAL5 8
/* Reserved for Werner's ATM. */
#define PF_X25 9
/* Reserved for X.25 project. */
#define PF_INET6 10
/* IP version 6. */
#define PF_ROSE 11
/* Amateur Radio X.25 PLP */
#define PF_DECnet 12
/* Reserved for DECnet project */
#define PF_NETBEUI 13
/* Reserved for 802.2LLC project*/
#define PF_SECURITY 14
/* Security callback pseudo AF */
#define PF_KEY 15
/* PF_KEY key management API */
#define PF_NETLINK 16
#define PF_ROUTE PF_NETLINK
/* Alias to emulate 4.4BSD */
#define PF_PACKET 17
/* Packet family */
#define PF_MAX 32
/* For now.. */
/* Address families. */
#define AF_UNSPEC PF_UNSPEC
#define AF_LOCAL PF_LOCAL
#define AF_UNIX PF_UNIX
#define AF_FILE PF_FILE
#define AF_INET PF_INET
#define AF_AX25 PF_AX25
#define AF_IPX PF_IPX
#define AF_APPLETALK PF_APPLETALK
#define AF_NETROM PF_NETROM
#define AF_BRIDGE PF_BRIDGE
#define AF_AAL5 PF_AAL5
#define AF_X25 PF_X25
#define AF_INET6 PF_INET6
#define AF_ROSE PF_ROSE
#define AF_DECnet PF_DECnet
#define AF_NETBEUI PF_NETBEUI
#define AF_SECURITY PF_SECURITY
#define pseudo_AF_KEY pseudo_PF_KEY
#define AF_NETLINK PF_NETLINK
#define AF_ROUTE PF_ROUTE
#define AF_PACKET PF_PACKET
#define AF_MAX PF_MAX
/* Socket level values. Others are defined in the appropriate headers.
XXX These definitions also should go into the appropriate headers as
far as they are available. */
#define SOL_IPV6 41
#define SOL_ICMPV6 58
#define SOL_RAW 255
#define SOL_AX25 257
#define SOL_ATALK 258
#define SOL_NETROM 259
#define SOL_ROSE 260
#define SOL_DECNET 261
#define SOL_X25 262
/* Maximum queue length specifiable by listen. */
#define SOMAXCONN 128
/* Get the definition of the macro to define the common sockaddr members. */
#if __GLIBC_MINOR__ >= 1
#include <bits/sockaddr.h>
#else
#include <sockaddrcom.h>
#endif
/* Structure describing a generic socket address. */
struct
sockaddr
{
__SOCKADDR_COMMON
(
sa_
);
/* Common data: address family and length. */
char
sa_data
[
14
];
/* Address data. */
};
/* Bits in the FLAGS argument to `send', `recv', et al. */
enum
{
MSG_OOB
=
0x01
,
/* Process out-of-band data. */
#define MSG_OOB MSG_OOB
MSG_PEEK
=
0x02
,
/* Peek at incoming messages. */
#define MSG_PEEK MSG_PEEK
MSG_DONTROUTE
=
0x04
,
/* Don't use local routing. */
#define MSG_DONTROUTE MSG_DONTROUTE
MSG_CTRUNC
=
0x08
,
/* Control data lost before delivery. */
#define MSG_CTRUNC MSG_CTRUNC
MSG_PROXY
=
0x10
,
/* Supply or ask second address. */
#define MSG_PROXY MSG_PROXY
MSG_TRUNC
=
0x20
,
#define MSG_TRUNC MSG_TRUNC
MSG_DONTWAIT
=
0x40
,
#define MSG_DONTWAIT MSG_DONTWAIT
MSG_WAITALL
=
0x100
,
#define MSG_WAITALL MSG_WAITALL
MSG_ERRQUEUE
=
0x2000
,
#define MSG_ERRQUEUE MSG_ERRQUEUE
MSG_NOSIGNAL
=
0x4000
,
#define MSG_NOSIGNAL MSG_NOSIGNAL
};
/* Structure describing messages sent by
`sendmsg' and received by `recvmsg'. */
struct
msghdr
{
__ptr_t
msg_name
;
/* Address to send to/receive from. */
socklen_t
msg_namelen
;
/* Length of address data. */
struct
iovec
*
msg_iov
;
/* Vector of data to send/receive into. */
size_t
msg_iovlen
;
/* Number of elements in the vector. */
__ptr_t
msg_control
;
/* Ancillary data (eg BSD filedesc passing). */
size_t
msg_controllen
;
/* Ancillary data buffer length. */
int
msg_flags
;
/* Flags on received message. */
};
/* Structure used for storage of ancillary data object information. */
struct
cmsghdr
{
size_t
cmsg_len
;
/* Length of data in cmsg_data plus length
of cmsghdr structure. */
int
cmsg_level
;
/* Originating protocol. */
int
cmsg_type
;
/* Protocol specific type. */
#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
unsigned
char
__cmsg_data
[
0
];
/* Ancillary data. */
#endif
};
/* Ancillary data object manipulation macros. */
#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
#else
# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
#endif
#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
#define CMSG_FIRSTHDR(mhdr) \
((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
#define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
#define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
#define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
#ifndef _EXTERN_INLINE
# define _EXTERN_INLINE extern __inline
#endif
extern
struct
cmsghdr
*
__cmsg_nxthdr
__P
((
struct
msghdr
*
__mhdr
,
struct
cmsghdr
*
__cmsg
));
_EXTERN_INLINE
struct
cmsghdr
*
__cmsg_nxthdr
(
struct
msghdr
*
__mhdr
,
struct
cmsghdr
*
__cmsg
)
{
if
((
size_t
)
__cmsg
->
cmsg_len
<
sizeof
(
struct
cmsghdr
))
/* The kernel header does this so there may be a reason. */
return
NULL
;
__cmsg
=
(
struct
cmsghdr
*
)
((
unsigned
char
*
)
__cmsg
+
CMSG_ALIGN
(
__cmsg
->
cmsg_len
));
if
(
(
unsigned
char
*
)
(
__cmsg
+
1
)
>=
(
unsigned
char
*
)
__mhdr
->
msg_control
+
__mhdr
->
msg_controllen
)
/* No more entries. */
return
NULL
;
return
__cmsg
;
}
/* Socket level message types. This must match the definitions in
<linux/socket.h>. */
enum
{
SCM_RIGHTS
=
0x01
,
/* Data array contains access rights. */
#define SCM_RIGHTS SCM_RIGHTS
SCM_CREDENTIALS
=
0x02
,
/* Data array is `struct ucred'. */
#define SCM_CREDENTIALS SCM_CREDENTIALS
};
/* Get socket manipulation related informations from kernel headers. */
#ifdef THIS_IS_CRAP
#ifndef _LINUX_TYPES_H
# define _LINUX_TYPES_H
#endif
#endif
#include <asm/socket.h>
#include <asm/types.h>
struct
ucred
{
__u32
pid
;
__u32
uid
;
__u32
gid
;
};
/* Structure used to manipulate the SO_LINGER option. */
struct
linger
{
int
l_onoff
;
/* Nonzero to linger on close. */
int
l_linger
;
/* Time to linger. */
};
__END_DECLS
#endif
/* socketbits.h */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment