~mysql/mysql-server/mysql-6.0

« back to all changes in this revision

Viewing changes to mit-pthreads/machdep/linux-1.0/socket.h

  • Committer: bk at mysql
  • Date: 2000-07-31 19:29:14 UTC
  • Revision ID: sp1r-bk@work.mysql.com-20000731192914-08846
Import changeset

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* ==== socket.h.h ============================================================
 
2
 * Copyright (c) 1994 by Chris Provenzano, proven@athena.mit.edu        
 
3
 *
 
4
 * Description : Correct Linux header file.
 
5
 */
 
6
 
 
7
#ifndef _PTHREAD_SOCKET_H_
 
8
#define _PTHREAD_SOCKET_H_
 
9
 
 
10
/* #include <linux/socket.h> */
 
11
#ifndef _LINUX_SOCKET_H
 
12
#define _LINUX_SOCKET_H
 
13
 
 
14
/* IP options */
 
15
#define IP_TOS                          1
 
16
#define IPTOS_LOWDELAY          0x10
 
17
#define IPTOS_THROUGHPUT        0x08
 
18
#define IPTOS_RELIABILITY       0x04
 
19
#define IP_TTL                          2
 
20
#ifndef IP_HDRINCL
 
21
#define IP_HDRINCL                      3
 
22
#endif
 
23
#ifdef V1_3_WILL_DO_THIS_FUNKY_STUFF
 
24
#define IP_OPTIONS                      4
 
25
#endif
 
26
 
 
27
#endif
 
28
 
 
29
/* #include <asm/socket.h>                              arch-dependent defines  */
 
30
#include <linux/sockios.h>                      /* the SIOCxxx I/O controls     */
 
31
#include <pthread/posix.h>
 
32
 
 
33
struct sockaddr {
 
34
        unsigned short  sa_family;              /* address family, AF_xxx       */
 
35
        char                    sa_data[14];    /* 14 bytes of protocol address */
 
36
};
 
37
 
 
38
struct linger {
 
39
        int                     l_onoff;                /* Linger active                */
 
40
        int                             l_linger;               /* How long to linger for       */
 
41
};
 
42
 
 
43
struct msghdr 
 
44
{
 
45
        void    *               msg_name;               /* Socket name                  */
 
46
        int                             msg_namelen;    /* Length of name               */
 
47
        struct iovec *  msg_iov;                /* Data blocks                  */
 
48
        int                     msg_iovlen;             /* Number of blocks             */
 
49
        void    *               msg_accrights;  /* Per protocol magic (eg BSD file descriptor passing) */
 
50
        int                             msg_accrightslen;/* Length of rights list */
 
51
};
 
52
 
 
53
/* Socket types. */
 
54
#define SOCK_STREAM     1                               /* stream (connection) socket   */
 
55
#define SOCK_DGRAM      2                               /* datagram (conn.less) socket  */
 
56
#define SOCK_RAW        3                               /* raw socket                   */
 
57
#define SOCK_RDM        4                               /* reliably-delivered message   */
 
58
#define SOCK_SEQPACKET  5                       /* sequential packet socket     */
 
59
#define SOCK_PACKET     10                              /* linux specific way of        */
 
60
                                                                        /* getting packets at the dev   */
 
61
                                                                        /* level.  For writing rarp and */
 
62
                                                                        /* other similar things on the  */
 
63
                                                                        /* user level.                  */
 
64
 
 
65
/* Supported address families. */
 
66
#define AF_UNSPEC       0
 
67
#define AF_UNIX         1                               /* Unix domain sockets          */
 
68
#define AF_INET         2                               /* Internet IP Protocol         */
 
69
#define AF_AX25         3                               /* Amateur Radio AX.25          */
 
70
#define AF_IPX          4                               /* Novell IPX                   */
 
71
#define AF_APPLETALK 5                          /* Appletalk DDP                */
 
72
#define AF_NETROM       6                               /* Amateur radio NetROM         */
 
73
#define AF_BRIDGE       7                               /* Multiprotocol bridge         */
 
74
#define AF_AAL5         8                               /* Reserved for Werner's ATM    */
 
75
#define AF_X25          9                               /* Reserved for X.25 project    */
 
76
#define AF_INET6        10                              /* IP version 6                 */
 
77
#define AF_MAX          12                              /* For now.. */
 
78
 
 
79
/* Protocol families, same as address families. */
 
80
#define PF_UNSPEC       AF_UNSPEC
 
81
#define PF_UNIX         AF_UNIX
 
82
#define PF_INET         AF_INET
 
83
#define PF_AX25         AF_AX25
 
84
#define PF_IPX          AF_IPX
 
85
#define PF_APPLETALK AF_APPLETALK
 
86
#define PF_NETROM       AF_NETROM
 
87
#define PF_BRIDGE       AF_BRIDGE
 
88
#define PF_AAL5         AF_AAL5
 
89
#define PF_X25          AF_X25
 
90
#define PF_INET6        AF_INET6
 
91
 
 
92
#define PF_MAX          AF_MAX
 
93
 
 
94
/* Maximum queue length specificable by listen.  */
 
95
#define SOMAXCONN       128
 
96
 
 
97
/* Flags we can use with send/ and recv. */
 
98
#define MSG_OOB         1
 
99
#define MSG_PEEK        2
 
100
#define MSG_DONTROUTE   4
 
101
 
 
102
/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
 
103
#define SOL_SOCKET      1
 
104
#define SOL_IP          0
 
105
#define SOL_IPX         256
 
106
#define SOL_AX25        257
 
107
#define SOL_ATALK       258
 
108
#define SOL_NETROM      259
 
109
#define SOL_TCP         6
 
110
#define SOL_UDP         17
 
111
 
 
112
/* For setsockoptions(2) */
 
113
#define SO_DEBUG        1
 
114
#define SO_REUSEADDR    2
 
115
#define SO_TYPE         3
 
116
#define SO_ERROR        4
 
117
#define SO_DONTROUTE    5
 
118
#define SO_BROADCAST    6
 
119
#define SO_SNDBUF       7
 
120
#define SO_RCVBUF       8
 
121
#define SO_KEEPALIVE    9
 
122
#define SO_OOBINLINE    10
 
123
#define SO_NO_CHECK     11
 
124
#define SO_PRIORITY     12
 
125
#define SO_LINGER       13
 
126
/* To add :#define SO_REUSEPORT 14 */
 
127
 
 
128
 
 
129
#define IP_MULTICAST_IF                 32
 
130
#define IP_MULTICAST_TTL                33
 
131
#define IP_MULTICAST_LOOP               34
 
132
#define IP_ADD_MEMBERSHIP               35
 
133
#define IP_DROP_MEMBERSHIP              36
 
134
 
 
135
 
 
136
/* These need to appear somewhere around here */
 
137
#define IP_DEFAULT_MULTICAST_TTL        1
 
138
#define IP_DEFAULT_MULTICAST_LOOP       1
 
139
#define IP_MAX_MEMBERSHIPS              20
 
140
 
 
141
/* IPX options */
 
142
#define IPX_TYPE        1
 
143
 
 
144
/* TCP options - this way around because someone left a set in the c library includes */
 
145
#define TCP_NODELAY     1
 
146
#define TCP_MAXSEG      2
 
147
 
 
148
/* The various priorities. */
 
149
#define SOPRI_INTERACTIVE       0
 
150
#define SOPRI_NORMAL            1
 
151
#define SOPRI_BACKGROUND        2
 
152
 
 
153
/* 
 
154
 * Functions
 
155
 */
 
156
 
 
157
__BEGIN_DECLS
 
158
 
 
159
int                     accept                  __P_((int, struct sockaddr *, int *));
 
160
int                     bind                    __P_((int, const struct sockaddr *, int));
 
161
int                     connect                 __P_((int, const struct sockaddr *, int));
 
162
int                     listen                  __P_((int, int));
 
163
int                     socket                  __P_((int, int, int));
 
164
 
 
165
int getsockopt __P_((int __s, int __level, int __optname,
 
166
                void *__optval, int *__optlen));
 
167
int setsockopt __P_((int __s, int __level, int __optname,
 
168
                __const void *__optval, int optlen));
 
169
int getsockname __P_((int __sockfd, struct sockaddr *__addr,
 
170
                int *__paddrlen));
 
171
int getpeername __P_((int __sockfd, struct sockaddr *__peer,
 
172
                int *__paddrlen));
 
173
ssize_t send __P_((int __sockfd, __const void *__buff, size_t __len, int __flags));
 
174
ssize_t recv __P_((int __sockfd, void *__buff, size_t __len, int __flags));
 
175
ssize_t sendto __P_((int __sockfd, __const void *__buff, size_t __len,
 
176
                 int __flags, __const struct sockaddr *__to,
 
177
                 int __tolen));
 
178
ssize_t recvfrom __P_((int __sockfd, void *__buff, size_t __len,
 
179
                 int __flags, struct sockaddr *__from,
 
180
                 int *__fromlen));
 
181
extern ssize_t sendmsg __P_((int __fd, __const struct msghdr *__message,
 
182
                        int __flags));
 
183
extern ssize_t recvmsg __P_((int __fd, struct msghdr *__message,
 
184
                        int __flags));
 
185
int shutdown __P_((int __sockfd, int __how));
 
186
 
 
187
__END_DECLS
 
188
 
 
189
#endif
 
190
 
 
191
 
 
192
 
 
193