1 /*---------------------------------------------------------------------------* 2 Project: Horizon 3 File: socket_User.h 4 5 Copyright (C)2009 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: 28664 $ 14 *---------------------------------------------------------------------------*/ 15 16 // 17 // Do not edit this file. 18 // This file is automatically generated. 19 // 20 21 #ifndef NN_SOCKET___SOCKET_USER_H_ 22 #define NN_SOCKET___SOCKET_USER_H_ 23 24 #include <nn/Handle.h> 25 #include <nn/Result.h> 26 #include <nn/types.h> 27 #include <nn/socket/socket_Types.h> 28 29 30 31 namespace nn { 32 namespace socket { 33 namespace detail { 34 35 class User 36 { 37 public: 38 enum Tag 39 { 40 TAG_IPC_ERROR, 41 TAG_ATTACH_PROCESS = 0x0001, 42 TAG_SOCKET = 0x0002, 43 TAG_LISTEN = 0x0003, 44 TAG_ACCEPT = 0x0004, 45 TAG_BIND = 0x0005, 46 TAG_CONNECT = 0x0006, 47 TAG_RECV_FROM = 0x0007, 48 TAG_RECV_FROM_SMALL = 0x0008, 49 TAG_SEND_TO = 0x0009, 50 TAG_SEND_TO_SMALL = 0x000a, 51 TAG_CLOSE = 0x000b, 52 TAG_SHUTDOWN = 0x000c, 53 TAG_GET_HOST_BY_NAME = 0x000d, 54 TAG_GET_HOST_BY_ADDR = 0x000e, 55 TAG_GET_ADDR_INFO = 0x000f, 56 TAG_GET_NAME_INFO = 0x0010, 57 TAG_GET_SOCK_OPT = 0x0011, 58 TAG_SET_SOCK_OPT = 0x0012, 59 TAG_FCNTL = 0x0013, 60 TAG_POLL = 0x0014, 61 TAG_SOCK_AT_MARK = 0x0015, 62 TAG_GET_HOST_ID = 0x0016, 63 TAG_GET_SOCK_NAME = 0x0017, 64 TAG_GET_PEER_NAME = 0x0018, 65 TAG_DETACH_PROCESS = 0x0019, 66 TAG_GET_NETWORK_OPT = 0x001a, 67 TAG_ICMP_SOCKET = 0x001b, 68 TAG_ICMP_PING = 0x001c, 69 TAG_ICMP_CANCEL = 0x001d, 70 TAG_ICMP_CLOSE = 0x001e, 71 TAG_GET_RESOLVER_INFO = 0x001f, 72 TAG_SEND_TO_SMALL_MULTI = 0x0020, 73 TAG_CLOSE_SOCKETS = 0x0021, 74 TAG_SET_MAX_DESCRIPTOR = 0x0022, 75 TAG_ALLOW_OTHER_PROCESS = 0x0023, 76 TAG_IPC_END 77 }; 78 79 private: 80 Handle m_Session; 81 82 public: User(Handle session)83 User(Handle session) : m_Session(session) {} 84 85 public: 86 nn::Result AttachProcess( nn::Handle hSharedMemory, size_t size ); 87 nn::Result Socket( s32* rval, s32 af, s32 type, s32 protocol ); 88 nn::Result Listen( s32* rval, s32 s, s32 backlog ); 89 nn::Result Accept( s32* rval, s32 s, u8 sockAddr[], size_t salen ); 90 nn::Result Bind( s32* rval, s32 s, const u8 sockAddr[], size_t salen ); 91 nn::Result Connect( s32* rval, s32 s, const u8 sockAddr[], size_t salen ); 92 nn::Result RecvFrom( s32* rval, s32 s, u8 buf[], s32 len, s32 flags, u8 sockFrom[], size_t salen ); 93 nn::Result RecvFromSmall( s32* rval, s32 s, u8 buf[], s32* len, s32 flags, u8 sockFrom[], size_t salen ); 94 nn::Result SendTo( s32* rval, s32 s, const u8 buf[], s32 len, s32 flags, const u8 sockTo[], size_t salen ); 95 nn::Result SendToSmall( s32* rval, s32 s, const u8 buf[], s32 len, s32 flags, const u8 sockTo[], size_t salen ); 96 nn::Result Close( s32* rval, s32 s ); 97 nn::Result Shutdown( s32* rval, s32 s, s32 how ); 98 nn::Result GetHostByName( s32* rval, const char8 hname[], size_t hnameLen, u8 hostCarrier[], size_t hostCarrierLen ); 99 nn::Result GetHostByAddr( s32* rval, const u8 addr[], size_t addrLen, s32 type, u8 hostCarrier[], size_t hostCarrierLen ); 100 nn::Result GetAddrInfo( s32* rval, const char8 nodeName[], size_t nodeNameLen, const char8 servName[], size_t servNameLen, const u8 hints[], s32 hintsLen, s32* resAddrNum, u8 ress[], size_t ressLen ); 101 nn::Result GetNameInfo( s32* rval, const u8 sa[], size_t saLen, char8 node[], size_t nodeLen, char8 service[], size_t serviceLen, s32 flag ); 102 nn::Result GetSockOpt( s32* rval, s32 s, s32 level, s32 optname, u8 optval[], s32* optlen ); 103 nn::Result SetSockOpt( s32* rval, s32 s, s32 level, s32 optname, const u8 optval[], s32 optlen ); 104 nn::Result Fcntl( s32* rval, s32 s, s32 cmd, s32 val ); 105 nn::Result Poll( s32* rval, const nn::socket::PollFd fds_in[], nn::socket::PollFd fds_out[], u32 nfds, s32 timeout ); 106 nn::Result SockAtMark( s32* rval, s32 s ); 107 nn::Result GetHostId( u32* hostId ); 108 nn::Result GetSockName( s32* rval, s32 s, u8 sockAddr[], size_t salen ); 109 nn::Result GetPeerName( s32* rval, s32 s, u8 sockAddr[], size_t salen ); 110 nn::Result DetachProcess(); 111 nn::Result GetNetworkOpt( s32* rval, s32 level, s32 optname, u8 optval[], s32* optlen ); 112 nn::Result IcmpSocket( s32* rval, s32 af ); 113 nn::Result IcmpPing( s32* rval, s32 s, const u8 data[], s32 len, const u8 remote[], size_t salen, s32 timeout ); 114 nn::Result IcmpCancel( s32* rval, s32 s ); 115 nn::Result IcmpClose( s32* rval, s32 s ); 116 nn::Result GetResolverInfo( s32* rval, u8 pDnsServerInfo[], size_t len ); 117 nn::Result SendToSmallMulti( s32* rval, s32 s, const u8 bufForMulti[], s32 len, s32 flags, const u8 sockToArray[], size_t salen, size_t satotallen ); 118 nn::Result CloseSockets(); 119 nn::Result SetMaxDescriptor( s32 number ); 120 nn::Result AllowOtherProcess( s32 s ); 121 }; 122 123 } // end of namespace detail 124 } // end of namespace socket 125 } // end of namespace nn 126 127 128 129 #endif // ifndef NN_SOCKET___SOCKET_USER_H_ 130