[9] | 1 | /*
|
---|
| 2 | sys/socket.h
|
---|
| 3 | */
|
---|
| 4 |
|
---|
| 5 | #ifndef SYS_SOCKET_H
|
---|
| 6 | #define SYS_SOCKET_H
|
---|
| 7 |
|
---|
| 8 | /* Can we include <stdint.h> here or do we need an additional header that is
|
---|
| 9 | * safe to include?
|
---|
| 10 | */
|
---|
| 11 | #include <stdint.h>
|
---|
| 12 |
|
---|
| 13 | /* Open Group Base Specifications Issue 6 (not complete) */
|
---|
| 14 | #include <net/gen/socket.h>
|
---|
| 15 |
|
---|
| 16 | #define SOCK_STREAM 1
|
---|
| 17 | #define SOCK_DGRAM 2
|
---|
| 18 | #define SOCK_RAW 3
|
---|
| 19 | #define SOCK_RDM 4
|
---|
| 20 | #define SOCK_SEQPACKET 5
|
---|
| 21 |
|
---|
| 22 | #define SOL_SOCKET 0xFFFF
|
---|
| 23 |
|
---|
| 24 | #define SO_DEBUG 0x0001
|
---|
| 25 | #define SO_REUSEADDR 0x0004
|
---|
| 26 | #define SO_KEEPALIVE 0x0008
|
---|
| 27 |
|
---|
| 28 | #define SO_SNDBUF 0x1001 /* send buffer size */
|
---|
| 29 | #define SO_RCVBUF 0x1002 /* receive buffer size */
|
---|
| 30 | #define SO_ERROR 0x1007 /* get and clear error status */
|
---|
| 31 |
|
---|
| 32 | /* The how argument to shutdown */
|
---|
| 33 | #define SHUT_RD 0 /* No further reads */
|
---|
| 34 | #define SHUT_WR 1 /* No further writes */
|
---|
| 35 | #define SHUT_RDWR 2 /* No further reads and writes */
|
---|
| 36 |
|
---|
| 37 | #ifndef _SA_FAMILY_T
|
---|
| 38 | #define _SA_FAMILY_T
|
---|
| 39 | typedef uint8_t sa_family_t;
|
---|
| 40 | #endif /* _SA_FAMILY_T */
|
---|
| 41 |
|
---|
| 42 | typedef int32_t socklen_t;
|
---|
| 43 |
|
---|
| 44 | struct sockaddr
|
---|
| 45 | {
|
---|
| 46 | sa_family_t sa_family;
|
---|
| 47 | char sa_data[8]; /* Big enough for sockaddr_in */
|
---|
| 48 | };
|
---|
| 49 |
|
---|
| 50 | _PROTOTYPE( int accept, (int _socket,
|
---|
| 51 | struct sockaddr *_RESTRICT _address,
|
---|
| 52 | socklen_t *_RESTRICT _address_len) );
|
---|
| 53 | _PROTOTYPE( int bind, (int _socket, const struct sockaddr *_address,
|
---|
| 54 | socklen_t _address_len) );
|
---|
| 55 | _PROTOTYPE( int connect, (int _socket, const struct sockaddr *_address,
|
---|
| 56 | socklen_t _address_len) );
|
---|
| 57 | _PROTOTYPE( int getpeername, (int _socket,
|
---|
| 58 | struct sockaddr *_RESTRICT _address,
|
---|
| 59 | socklen_t *_RESTRICT _address_len) );
|
---|
| 60 | _PROTOTYPE( int getsockname, (int _socket,
|
---|
| 61 | struct sockaddr *_RESTRICT _address,
|
---|
| 62 | socklen_t *_RESTRICT _address_len) );
|
---|
| 63 | _PROTOTYPE( int setsockopt,(int _socket, int _level, int _option_name,
|
---|
| 64 | const void *_option_value, socklen_t _option_len) );
|
---|
| 65 | _PROTOTYPE( int getsockopt, (int _socket, int _level, int _option_name,
|
---|
| 66 | void *_RESTRICT _option_value, socklen_t *_RESTRICT _option_len));
|
---|
| 67 | _PROTOTYPE( int listen, (int _socket, int _backlog) );
|
---|
| 68 | _PROTOTYPE( ssize_t recvfrom, (int _socket, void *_RESTRICT _buffer,
|
---|
| 69 | size_t _length, int _flags, struct sockaddr *_RESTRICT _address,
|
---|
| 70 | socklen_t *_RESTRICT _address_len) );
|
---|
| 71 | _PROTOTYPE( ssize_t sendto, (int _socket, const void *_message,
|
---|
| 72 | size_t _length, int _flags, const struct sockaddr *_dest_addr,
|
---|
| 73 | socklen_t _dest_len) );
|
---|
| 74 | _PROTOTYPE( int shutdown, (int _socket, int _how) );
|
---|
| 75 | _PROTOTYPE( int socket, (int _domain, int _type, int _protocol) );
|
---|
| 76 |
|
---|
| 77 | #endif /* SYS_SOCKET_H */
|
---|