1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: socket_Types.h 4 Copyright (C)2010 Nintendo Co., Ltd. All rights reserved. 5 These coded instructions, statements, and computer programs contain 6 proprietary information of Nintendo of America Inc. and/or Nintendo 7 Company Ltd., and are protected by Federal copyright law. They may 8 not be disclosed to third parties or copied or duplicated in any form, 9 in whole or in part, without the prior written consent of Nintendo. 10 $Rev: 27867 $ 11 *--------------------------------------------------------------------------- 12 13 14 */ 15 16 #ifndef NN_SOCKET_SOCKET_TYPES_H_ 17 #define NN_SOCKET_SOCKET_TYPES_H_ 18 19 #include <nn/types.h> 20 #include <nn/config.h> 21 22 #pragma push 23 #pragma diag_suppress 1301,2530 24 #include <nn/socket/socket_User.autogen.h> 25 #include <nn/socket/socket_Entry.autogen.h> 26 #pragma diag_default 1301,2530 // Not needed originally 27 #pragma pop 28 29 namespace nn { 30 namespace socket { 31 typedef s32 Bool; 32 typedef s64 Tick; 33 34 namespace detail { 35 /* Please see man pages for details 36 37 38 */ 39 typedef In6Addr InAddrStorage; 40 41 /* Please see man pages for details 42 43 */ 44 struct HostEntExCarrier 45 { 46 s16 addrType; /* Please see man pages for details */ 47 s16 length; /* Please see man pages for details */ 48 s16 addrNum; /* Please see man pages for details */ 49 s16 aliasNum; /* Please see man pages for details */ 50 char8 name[NN_SOCKET_MAXDNAME]; /* Please see man pages for details */ 51 char8 aliases[NN_SOCKET_DNS_RESOLV_ALIASNAME_MAX][NN_SOCKET_MAXDNAME]; /* Please see man pages for details */ 52 InAddrStorage addrList[NN_SOCKET_DNS_RESOLV_ADDRESS_MAX]; /* Please see man pages for details */ 53 }; 54 55 56 /* Please see man pages for details 57 58 */ 59 struct AddrInfoCarrier 60 { 61 s32 flags; /* Please see man pages for details */ 62 s32 family; /* Please see man pages for details */ 63 s32 sockType; /* Please see man pages for details */ 64 s32 protocol; /* Please see man pages for details */ 65 s32 addrLen; /* Please see man pages for details */ 66 char8 canonName[NN_SOCKET_MAXDNAME]; /**< Canonical host name */ 67 SockAddr addr; /* Please see man pages for details */ 68 }; 69 70 } // end of namespace detail 71 72 /* Please see man pages for details 73 74 */ 75 struct Config 76 { 77 // HOST 78 InAddr address; 79 InAddr netmask; 80 InAddr defaultRouter; 81 InAddr nameServer[2]; 82 // DHCP 83 bool useDhcp; 84 bool useDhcpForDns; 85 s8 dhcpRetryCount; 86 bool sendDhcpRelease; 87 88 // PHY 89 s16 mtu; 90 NN_PADDING2; 91 92 // TCP 93 s32 rwin; /* Please see man pages for details */ 94 s32 r2; /* Please see man pages for details */ 95 // UDP 96 s32 udpRecvBuff; /* Please see man pages for details */ 97 }; 98 99 } // end of namespace socket 100 } // end of namespace nn 101 102 #endif // ifndef NN_SOCKET_SOCKET_TYPES_H_ 103