Rev 1882 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1882 | Rev 4248 | ||
---|---|---|---|
Line 5... | Line 5... | ||
5 | extern "C" { |
5 | extern "C" { |
6 | #endif |
6 | #endif |
Line 7... | Line 7... | ||
7 | 7 | ||
Line -... | Line 8... | ||
- | 8 | #include |
|
- | 9 | ||
- | 10 | ||
- | 11 | // System functions |
|
- | 12 | #define _SOCKETF 75 |
|
- | 13 | ||
- | 14 | // Socket subfunctions |
|
- | 15 | #define _OPENSF 0 |
|
- | 16 | #define _CLOSESF 1 |
|
- | 17 | #define _BINDSF 2 |
|
- | 18 | #define _LISTENSF 3 |
|
- | 19 | #define _CONNECTSF 4 |
|
- | 20 | #define _ACCEPTSF 5 |
|
- | 21 | #define _SENDSF 6 |
|
- | 22 | #define _RECEIVESF 7 |
|
- | 23 | ||
- | 24 | // Socket types |
|
- | 25 | #define SOCK_STREAM 1 |
|
- | 26 | #define SOCK_DGRAM 2 |
|
- | 27 | #define SOCK_RAW 3 |
|
- | 28 | ||
- | 29 | // Socket options |
|
- | 30 | #define SO_NONBLOCK ((long)(1)) |
|
- | 31 | ||
- | 32 | // IP protocols |
|
- | 33 | #define IPPROTO_IP 0 |
|
- | 34 | #define IPPROTO_ICMP 1 |
|
- | 35 | #define IPPROTO_TCP 6 |
|
- | 36 | #define IPPROTO_UDP 17 |
|
- | 37 | ||
- | 38 | // Address families |
|
- | 39 | #define AF_UNSPEC 0 |
|
- | 40 | #define AF_LOCAL 1 |
|
- | 41 | #define AF_INET 2 // IPv4 |
|
- | 42 | #define AF_INET6 28 // IPv6 (not supported yet) |
|
- | 43 | ||
- | 44 | #define PF_UNSPEC AF_UNSPEC |
|
- | 45 | #define PF_LOCAL AF_LOCAL |
|
- | 46 | #define PF_INET4 AF_INET4 |
|
- | 47 | #define PF_INET6 AF_INET6 |
|
- | 48 | ||
- | 49 | // Flags for addrinfo |
|
- | 50 | #define AI_PASSIVE 1 |
|
- | 51 | #define AI_CANONNAME 2 |
|
- | 52 | #define AI_NUMERICHOST 4 |
|
- | 53 | #define AI_NUMERICSERV 8 |
|
- | 54 | #define AI_ADDRCONFIG 0x400 |
|
- | 55 | ||
- | 56 | // Internal definition |
|
- | 57 | #define AI_SUPPORTED 0x40F |
|
- | 58 | ||
- | 59 | // For system function 76 |
|
- | 60 | #define API_ETH ((int)(0)) |
|
- | 61 | #define API_IPv4 ((int)(1)) |
|
- | 62 | #define API_ICMP ((int)(2)) |
|
- | 63 | #define API_UDP ((int)(3)) |
|
- | 64 | #define API_TCP ((int)(4)) |
|
- | 65 | #define API_ARP ((int)(5)) |
|
- | 66 | #define API_PPPOE ((int)(6)) |
|
- | 67 | ||
- | 68 | // Socket flags for user calls |
|
- | 69 | #define MSG_PEEK 0x02 |
|
- | 70 | #define MSG_DONTWAIT 0x40 |
|
- | 71 | ||
- | 72 | ||
- | 73 | struct in_addr { |
|
- | 74 | unsigned long s_addr; |
|
- | 75 | }; |
|
- | 76 | ||
- | 77 | struct sockaddr { |
|
- | 78 | unsigned short sa_family; // address family, AF_xxx |
|
- | 79 | char sa_data[14]; // 14 bytes of protocol address |
|
- | 80 | }; |
|
- | 81 | ||
- | 82 | struct sockaddr_in { |
|
- | 83 | short sin_family; // sa_family_t |
|
- | 84 | unsigned short sin_port; // in_port_t |
|
- | 85 | struct in_addr sin_addr; |
|
- | 86 | char sin_zero[8]; |
|
- | 87 | }; |
|
- | 88 | ||
- | 89 | struct addrinfo { |
|
- | 90 | int ai_flags; // bitmask of AI_* |
|
- | 91 | int longai_family; // PF_* |
|
- | 92 | int ai_socktype; //SOCK_* |
|
- | 93 | int ai_protocol; // 0 or IPPROTO_* |
|
- | 94 | int ai_addrlen; // length of ai_addr |
|
- | 95 | char *ai_canonname; |
|
- | 96 | struct sockaddr *ai_addr; // struct sockaddr* |
|
- | 97 | struct addrinfo *ai_next; // struct addrinfo* |
|
- | 98 | }; |
|
- | 99 | ||
- | 100 | #define EAI_ADDRFAMILY 1 |
|
- | 101 | #define EAI_AGAIN 2 |
|
- | 102 | #define EAI_BADFLAGS 3 |
|
- | 103 | #define EAI_FAIL 4 |
|
- | 104 | #define EAI_FAMILY 5 |
|
- | 105 | #define EAI_MEMORY 6 |
|
- | 106 | #define EAI_NONAME 8 |
|
- | 107 | #define EAI_SERVICE 9 |
|
- | 108 | #define EAI_SOCKTYPE 10 |
|
- | 109 | #define EAI_BADHINTS 12 |
|
- | 110 | #define EAI_PROTOCOL 13 |
|
- | 111 | #define EAI_OVERFLOW 14 |
|
- | 112 | ||
- | 113 | // Socket error codes |
|
- | 114 | // Error Codes |
|
- | 115 | #define ENOBUFS 1 |
|
- | 116 | #define EINPROGRESS 2 |
|
- | 117 | #define EOPNOTSUPP 4 |
|
- | 118 | #define EWOULDBLOCK 6 |
|
- | 119 | #define ENOTCONN 9 |
|
- | 120 | #define EALREADY 10 |
|
- | 121 | #define EINVAL 11 |
|
- | 122 | #define EMSGSIZE 12 |
|
- | 123 | #define ENOMEM 18 |
|
- | 124 | #define EADDRINUSE 20 |
|
- | 125 | #define ECONNREFUSED 61 |
|
- | 126 | #define ECONNRESET 52 |
|
- | 127 | #define EISCONN 56 |
|
- | 128 | #define ETIMEDOUT 60 |
|
- | 129 | #define ECONNABORTED 53 |
|
- | 130 | ||
- | 131 | ||
- | 132 | unsigned long inet_addr(char *cp); |
|
- | 133 | int socket(int domain, int type, int protocol); |
|
- | 134 | int close_socket(int s); |
|
- | 135 | int bind(int sockfd, struct sockaddr *my_addr, int addrlen); |
|
- | 136 | int listen(int s, int backlog); |
|
- | 137 | int connect(int sockfd, const struct sockaddr *serv_addr, int addrlen); |
|
- | 138 | int accept(int s, struct sockaddr *addr, int *addrlen); |
|
- | 139 | int send(int s, const void *buf, int len, int flags); |
|
- | 140 | int recv(int sockfd, void *buf, int len, int flags); |
|
- | 141 | // Review int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen); |
|
- | 142 | // Review int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen); |
|
- | 143 | // Add socketpair() |
|
- | 144 | ||
- | 145 | ||
8 | #include |
146 | //--------------------------------------------- |
9 | 147 | ||
10 | #define __NET_stack_rd_cfg_word 0 |
148 | #define __NET_stack_rd_cfg_word 0 |
11 | #define __NET_stack_get_ip 1 |
149 | #define __NET_stack_get_ip 1 |