1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     applet_Ipc.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: 26040 $
14  *---------------------------------------------------------------------------*/
15 
16 //
17 // このファイルを編集しないでください。
18 // このファイルは自動生成されます。
19 //
20 
21 #ifndef NN_APPLET_CTR_APPLET_IPC_H_
22 #define NN_APPLET_CTR_APPLET_IPC_H_
23 
24 #include <nn/Handle.h>
25 #include <nn/Result.h>
26 #include <nn/types.h>
27 #include <nn/applet/CTR/applet_Parameters.h>
28 
29 
30 
31 namespace nn {
32 namespace applet {
33 namespace CTR {
34 namespace detail {
35 
36     class APPLET
37     {
38     public:
39         enum Tag
40         {
41             TAG_IPC_ERROR,
42             TAG_GET_LOCK_HANDLE,
43             TAG_INITIALIZE,
44             TAG_FINALIZE,
45             TAG_GET_HOME_MENU_APPLET_ID,
46             TAG_GET_LAST_SIGNALED_APPLET_ID,
47             TAG_COUNT_REGISTERED_APPLET,
48             TAG_IS_REGISTERED,
49             TAG_GET_ATTRIBUTE,
50             TAG_INQUIRE_NOTIFICATION,
51             TAG_SEND_PARAMETER,
52             TAG_RECEIVE_PARAMETER,
53             TAG_GLANCE_PARAMETER,
54             TAG_CANCEL_PARAMETER,
55             TAG_DEBUG_FUNC,
56             TAG_ARRANGE_APPLET_MANAGER_FOR_DEBUG,
57             TAG_MAP_PROGRAM_ID_FOR_DEBUG,
58             TAG_GET_PREPARATION_STATE,
59             TAG_SET_PREPARATION_STATE,
60             TAG_PREPARE_TO_START_APPLICATION,
61             TAG_PRELOAD_LIBRARY_APPLET,
62             TAG_FINISH_PRELOADING_LIBRARY_APPLET,
63             TAG_PREPARE_TO_START_LIBRARY_APPLET,
64             TAG_PREPARE_TO_START_SYSTEM_APPLET,
65             TAG_PREPARE_TO_START_SYSTEM_LIBRARY_APPLET,
66             TAG_START_APPLICATION,
67             TAG_START_LIBRARY_APPLET,
68             TAG_START_SYSTEM_APPLET,
69             TAG_START_SYSTEM_LIBRARY_APPLET,
70             TAG_ORDER_TO_CLOSE_APPLICATION,
71             TAG_PREPARE_TO_CLOSE_APPLICATION,
72             TAG_PREPARE_TO_CLOSE_LIBRARY_APPLET,
73             TAG_PREPARE_TO_CLOSE_SYSTEM_LIBRARY_APPLET,
74             TAG_CLOSE_APPLICATION,
75             TAG_CLOSE_LIBRARY_APPLET,
76             TAG_CLOSE_SYSTEM_LIBRARY_APPLET,
77             TAG_PREPARE_TO_JUMP_TO_HOME_MENU,
78             TAG_JUMP_TO_HOME_MENU,
79             TAG_PREPARE_TO_LEAVE_HOME_MENU,
80             TAG_LEAVE_HOME_MENU,
81             TAG_PREPARE_TO_LEAVE_RESIDENT_APPLET,
82             TAG_LEAVE_RESIDENT_APPLET,
83             TAG_PREPARE_TO_JUMP_SHORT_CUT,
84             TAG_JUMP_SHORT_CUT,
85             TAG_JUMP_TO_OTHER_APPLICATION,
86             TAG_RECEIVE_DELIVER_ARG,
87             TAG_PRELOAD_RESIDENT_APPLET,
88             TAG_PREPARE_TO_START_RESIDENT_APPLET,
89             TAG_START_RESIDENT_APPLET,
90             TAG_CANCEL_LIBRARY_APPLET,
91             TAG_SEND_DSP_SLEEP,
92             TAG_SEND_DSP_WAKE_UP,
93             TAG_REPLY_SLEEP_QUERY,
94             TAG_SEND_CAPTURE_BUFFER_INFO,
95             TAG_RECEIVE_CAPTURE_BUFFER_INFO,
96             TAG_IPC_END
97         };
98 
99     public:
100         static Handle s_Session;
101 
102     public:
APPLET()103         APPLET() {}
104 
105     public:
106         static nn::Result GetLockHandle( nn::Handle* pMutexHandle );
107         static nn::Result Initialize( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletAttr appletAttr, nn::Handle* pEventHandle_mesg, nn::Handle* pEventHandle_cont );
108         static nn::Result Finalize( nn::applet::CTR::AppletId appletId );
109         static nn::Result GetHomeMenuAppletId( nn::applet::CTR::AppletId* appletId );
110         static nn::Result GetLastSignaledAppletId( nn::applet::CTR::AppletId* appletId );
111         static nn::Result CountRegisteredApplet( bit32* pCount );
112         static nn::Result IsRegistered( nn::applet::CTR::AppletId appletId, bool* pRegistered );
113         static nn::Result GetAttribute( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletAttr* pAppletAttr );
114         static nn::Result InquireNotification( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletNotification* notification );
115         static nn::Result SendParameter( nn::applet::CTR::AppletId senderId, nn::applet::CTR::AppletId receiverId, u32 command, const u8 pParam[], size_t paramSize, nn::Handle pHandle );
116         static nn::Result ReceiveParameter( nn::applet::CTR::AppletId* pSenderId, nn::applet::CTR::AppletId receiverId, u32* pCommand, u8 pParam[], size_t paramSize, s32* pReadLen, nn::Handle* pHandle );
117         static nn::Result GlanceParameter( nn::applet::CTR::AppletId* pSenderId, nn::applet::CTR::AppletId receiverId, u32* pCommand, u8 pParam[], size_t paramSize, s32* pReadLen, nn::Handle* pHandle );
118         static nn::Result CancelParameter( bool isSenderCheck, nn::applet::CTR::AppletId senderId, bool isReceiverCheck, nn::applet::CTR::AppletId receiverId, bool* pIdCanceled );
119         static nn::Result DebugFunc( u32 id, u8 pParam[], size_t paramSize, s32* pReadLen );
120         static nn::Result ArrangeAppletManagerForDebug( nn::ProgramId programId );
121         static nn::Result MapProgramIdForDebug( nn::applet::CTR::AppletId id, nn::ProgramId programId );
122         static nn::Result GetPreparationState( nn::applet::CTR::AppletPreparationState* pState );
123         static nn::Result SetPreparationState( nn::applet::CTR::AppletPreparationState state );
124         static nn::Result PrepareToStartApplication( nn::ProgramId id );
125         static nn::Result PreloadLibraryApplet( nn::applet::CTR::AppletId id );
126         static nn::Result FinishPreloadingLibraryApplet( nn::applet::CTR::AppletId id );
127         static nn::Result PrepareToStartLibraryApplet( nn::applet::CTR::AppletId id );
128         static nn::Result PrepareToStartSystemApplet( nn::applet::CTR::AppletId id );
129         static nn::Result PrepareToStartSystemLibraryApplet( nn::applet::CTR::AppletId id );
130         static nn::Result StartApplication( const u8 pParam[], size_t paramSize, const u8 pHmacBuf[], size_t hmacBufSize );
131         static nn::Result StartLibraryApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle );
132         static nn::Result StartSystemApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle );
133         static nn::Result StartSystemLibraryApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle );
134         static nn::Result OrderToCloseApplication();
135         static nn::Result PrepareToCloseApplication();
136         static nn::Result PrepareToCloseLibraryApplet( bool isAppletEnd, bool isApplicationEnd );
137         static nn::Result PrepareToCloseSystemLibraryApplet();
138         static nn::Result CloseApplication( const u8 pParam[], size_t paramSize, nn::Handle handle );
139         static nn::Result CloseLibraryApplet( const u8 pParam[], size_t paramSize, nn::Handle handle );
140         static nn::Result CloseSystemLibraryApplet( const u8 pParam[], size_t paramSize, nn::Handle handle );
141         static nn::Result PrepareToJumpToHomeMenu();
142         static nn::Result JumpToHomeMenu( const u8 pParam[], size_t paramSize, nn::Handle handle );
143         static nn::Result PrepareToLeaveHomeMenu();
144         static nn::Result LeaveHomeMenu( const u8 pParam[], size_t paramSize, nn::Handle handle );
145         static nn::Result PrepareToLeaveResidentApplet();
146         static nn::Result LeaveResidentApplet( const u8 pParam[], size_t paramSize, nn::Handle handle );
147         static nn::Result PrepareToJumpShortCut();
148         static nn::Result JumpShortCut( const u8 pParam[], size_t paramSize, nn::Handle handle );
149         static nn::Result JumpToOtherApplication( nn::ProgramId id, const u8 pParam[], size_t paramSize, const u8 pHmacBuf[], size_t hmacBufSize );
150         static nn::Result ReceiveDeliverArg( u8 pParam[], size_t paramSize, u8 pHmacBuf[], size_t hmacBufSize, bool* isValid );
151         static nn::Result PreloadResidentApplet( nn::applet::CTR::AppletId id );
152         static nn::Result PrepareToStartResidentApplet( nn::applet::CTR::AppletId id );
153         static nn::Result StartResidentApplet( const u8 pParam[], size_t paramSize, nn::Handle handle );
154         static nn::Result CancelLibraryApplet();
155         static nn::Result SendDspSleep( nn::applet::CTR::AppletId id, nn::Handle handle );
156         static nn::Result SendDspWakeUp( nn::applet::CTR::AppletId id, nn::Handle handle );
157         static nn::Result ReplySleepQuery( nn::applet::CTR::AppletId id, nn::applet::CTR::AppletQueryReply reply );
158         static nn::Result SendCaptureBufferInfo( const u8 pParam[], size_t paramSize );
159         static nn::Result ReceiveCaptureBufferInfo( u8 pParam[], size_t paramSize, s32* pReadLen );
160     };
161 
162 } // end of namespace detail
163 } // end of namespace CTR
164 } // end of namespace applet
165 } // end of namespace nn
166 
167 
168 
169 #endif  // ifndef NN_APPLET_CTR_APPLET_IPC_H_
170