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