1 /*---------------------------------------------------------------------------*
2 Project: Horizon
3 File: socket_Admin.autogen.h
4
5 Copyright (C)2009-2012 Nintendo Co., Ltd. All rights reserved.
6
7 These coded instructions, statements, and computer programs contain
8 proprietary information of Nintendo of America Inc. and/or Nintendo
9 Company Ltd., and are protected by Federal copyright law. They may
10 not be disclosed to third parties or copied or duplicated in any form,
11 in whole or in part, without the prior written consent of Nintendo.
12
13 $Rev: 46347 $
14 *---------------------------------------------------------------------------*/
15
16 #ifndef NN_SOCKET_SOCKET_ADMIN_AUTOGEN_H_
17 #define NN_SOCKET_SOCKET_ADMIN_AUTOGEN_H_
18
19 #ifndef NN_SOCKET_NO_DEPEND_HEADER
20 #include <nn/types.h> /* for NOSxxxx */
21 #include <nn/net/compatible/nnet/nnet.h> /* for NNETxxxx */
22 #include <nn/socket/socket_User.autogen.h> /* for InAddr, DnsServerInfo */
23 #endif
24
25 namespace nn {
26 namespace socket {
27
28 /*---------------------------------------------------------------------------*
29 * Definitions
30 *---------------------------------------------------------------------------*/
31
32 #define NN_SOCKET_VENDOR_NINTENDO 0x0000 //
33 #define NN_SOCKET_COMMON_CONF_VERSION 0x3100 //
34 #define NN_SOCKET_INS_CONF_VERSION 0x4100 //
35
36 /* Please see man pages for details
37
38 */
39 #define ERROR_BASE 0xffff8000
40 #define ERROR_CODE(code) ((s32)(ERROR_BASE|(code)))
41
42 enum ErrorCode {
43 ERR_PARAM = ERROR_CODE(1), //
44 ERR_INIT = ERROR_CODE(2), //
45 ERR_FINISH = ERROR_CODE(3), //
46 ERR_CONFVER = ERROR_CODE(4), //
47 ERR_STATE = ERROR_CODE(5), //
48 ERR_EXIST = ERROR_CODE(6), //
49 ERR_NOMEM = ERROR_CODE(7), //
50 ERR_NOS = ERROR_CODE(8), //
51 ERR_LOWER = ERROR_CODE(9), //
52 ERR_TIMEOUT = ERROR_CODE(10), //
53 ERR_INS_RESOURCES = ERROR_CODE(11), //
54 ERR_MAXSOCKET = ERROR_CODE(12), //
55 ERR_ABORT = ERROR_CODE(13), //
56
57 ERR_IP_UNREACHABLE = ERROR_CODE(21), //
58 ERR_IP_DATASIZE = ERROR_CODE(22), //
59 ERR_IP_NETDOWN = ERROR_CODE(23), //
60 ERR_IP_INVALID = ERROR_CODE(24), //
61 ERR_IP_REFUSED = ERROR_CODE(25), //
62 ERR_IP_TIMEOUT = ERROR_CODE(26), //
63 ERR_IP_CANCELED = ERROR_CODE(27), //
64 ERR_IP_BUSY = ERROR_CODE(28), //
65 ERR_IP_CLOSING = ERROR_CODE(29), //
66 ERR_IP_EXIST = ERROR_CODE(30), //
67 ERR_IP_RESET = ERROR_CODE(31), //
68 ERR_IP_NOT_EXIST = ERROR_CODE(32), //
69 ERR_IP_INV_SOCKET = ERROR_CODE(33), //
70 ERR_IP_AGAIN = ERROR_CODE(34), //
71 ERR_IP_SOCKET_UNSPECIFIED = ERROR_CODE(35), //
72 ERR_IP_SOURCE_QUENCH = ERROR_CODE(36), //
73 ERR_IP_INV_OPTION = ERROR_CODE(37), //
74 ERR_IP_ADDR_COLLISION = ERROR_CODE(38), //
75 ERR_IP_SHUTDOWN = ERROR_CODE(39), //
76 ERR_IP_INV_HEADER = ERROR_CODE(40), //
77 ERR_IP_INV_ADDR = ERROR_CODE(41), //
78 ERR_IP_INV_DATA = ERROR_CODE(42), //
79
80 ERR_DHCP_EXPIRED = ERROR_CODE(51), //
81 ERR_DHCP_TIMEOUT = ERROR_CODE(52), //
82 ERR_DHCP_NAK = ERROR_CODE(53), //
83
84 ERR_IP6_ADDR_COLLISION = ERROR_CODE(60), //
85
86 ERR_NONE = 0 //
87 };
88
89 /*---------------------------------------------------------------------------*
90 * Types/Declarations
91 *---------------------------------------------------------------------------*/
92 /* Please see man pages for details
93
94 */
95 struct CommonConfig {
96 u16 vendor; //
97 u16 version; //
98
99 s32 timeWaitBuffer; //
100
101 s32 reassembleMtu; //
102
103 // TCP
104 s32 rwin; //
105 s32 r2; //
106
107 // UDP
108 s32 udpRecvBuff; //
109
110 // DHCP
111 const char* hostName; //
112 s32 rdhcp; //
113
114 };
115
116 /*
117 *Flag that sets InstanceConfig flag
118 */
119 enum InstanceConfigFlag {
120 FLAG_DHCP = 0x0001, //
121 FLAG_PPP = 0x0002, //
122 FLAG_IP4 = 0x0004, //
123 FLAG_IP6 = 0x0008, //
124 FLAG_DHCP6 = 0x0010, //
125 FLAG_NORA_DHCP6 = 0x0020, //
126 FLAG_DHCP_REBOOT = 0x0100, //
127 FLAG_DHCP_RELEASE = 0x0200, //
128 FLAG_DNS_AUTO = 0x1000, //
129 FLAG_ZEROCONF = 0x8000 //
130 };
131
132 /* Please see man pages for details
133
134 */
135 struct InstanceConfig {
136 u16 vendor; //
137 u16 version; //
138
139 u32 flag; //
140 InAddr addr; //
141 InAddr netmask; //
142 InAddr router; //
143 s32 mtu; //
144
145 DnsServerInfo dnsserver; //
146
147 #ifdef NN_SOCKET_IP6_ENABLE
148 u8 curHopLimit; /* Hop limit */
149 u32 retransTimer; /* NS retransmission interval (msec) */
150 u32 dadNSTransmits; /* Number of NS transmissions for duplicate address detection */
151 u8 interfaceId[8]; /* Interface ID */
152 #endif /* NN_SOCKET_IP6_ENABLE */
153 };
154
155 /* Please see man pages for details
156
157 */
158 typedef void (* ConfigErrorCallback )(InstancePtr insP, s32 err);
159
160 #ifndef NN_SOCKET_NO_DEPEND_HEADER
161 /* Please see man pages for details
162
163 */
164 typedef Bool (* Filter)(InstancePtr insP, NOSMessageBuf *mbuf);
165
166 /* Please see man pages for details
167
168 */
GetNNETInstance(InstancePtr insP)169 NN_INLINE NNETInstance *GetNNETInstance(InstancePtr insP)
170 {
171 return (NNETInstance *)insP;
172 }
173
174 /* Please see man pages for details
175
176 */
GetInstance(NNETInstance * ins)177 NN_INLINE InstancePtr GetInstance(NNETInstance *ins)
178 {
179 return (InstancePtr)ins;
180 }
181 #endif
182
183 /*---------------------------------------------------------------------------*
184 * Function Prototypes
185 *---------------------------------------------------------------------------*/
186 /* nsoc_main.c */
187
188 /* nsoc_socket.c */
189
190
191
192
193 } // socket
194 } // nn
195 /* NN_SOCKET_SOCKET_ADMIN_AUTOGEN_H_ */
196 #endif
197
198
199