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