/*---------------------------------------------------------------------------* Project: Horizon File: applet_Ipc.h Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 26040 $ *---------------------------------------------------------------------------*/ // // このファイルを編集しないでください。 // このファイルは自動生成されます。 // #ifndef NN_APPLET_CTR_APPLET_IPC_H_ #define NN_APPLET_CTR_APPLET_IPC_H_ #include #include #include #include namespace nn { namespace applet { namespace CTR { namespace detail { class APPLET { public: enum Tag { TAG_IPC_ERROR, TAG_GET_LOCK_HANDLE, TAG_INITIALIZE, TAG_FINALIZE, TAG_GET_HOME_MENU_APPLET_ID, TAG_GET_LAST_SIGNALED_APPLET_ID, TAG_COUNT_REGISTERED_APPLET, TAG_IS_REGISTERED, TAG_GET_ATTRIBUTE, TAG_INQUIRE_NOTIFICATION, TAG_SEND_PARAMETER, TAG_RECEIVE_PARAMETER, TAG_GLANCE_PARAMETER, TAG_CANCEL_PARAMETER, TAG_DEBUG_FUNC, TAG_ARRANGE_APPLET_MANAGER_FOR_DEBUG, TAG_MAP_PROGRAM_ID_FOR_DEBUG, TAG_GET_PREPARATION_STATE, TAG_SET_PREPARATION_STATE, TAG_PREPARE_TO_START_APPLICATION, TAG_PRELOAD_LIBRARY_APPLET, TAG_FINISH_PRELOADING_LIBRARY_APPLET, TAG_PREPARE_TO_START_LIBRARY_APPLET, TAG_PREPARE_TO_START_SYSTEM_APPLET, TAG_PREPARE_TO_START_SYSTEM_LIBRARY_APPLET, TAG_START_APPLICATION, TAG_START_LIBRARY_APPLET, TAG_START_SYSTEM_APPLET, TAG_START_SYSTEM_LIBRARY_APPLET, TAG_ORDER_TO_CLOSE_APPLICATION, TAG_PREPARE_TO_CLOSE_APPLICATION, TAG_PREPARE_TO_CLOSE_LIBRARY_APPLET, TAG_PREPARE_TO_CLOSE_SYSTEM_LIBRARY_APPLET, TAG_CLOSE_APPLICATION, TAG_CLOSE_LIBRARY_APPLET, TAG_CLOSE_SYSTEM_LIBRARY_APPLET, TAG_PREPARE_TO_JUMP_TO_HOME_MENU, TAG_JUMP_TO_HOME_MENU, TAG_PREPARE_TO_LEAVE_HOME_MENU, TAG_LEAVE_HOME_MENU, TAG_PREPARE_TO_LEAVE_RESIDENT_APPLET, TAG_LEAVE_RESIDENT_APPLET, TAG_PREPARE_TO_JUMP_SHORT_CUT, TAG_JUMP_SHORT_CUT, TAG_JUMP_TO_OTHER_APPLICATION, TAG_RECEIVE_DELIVER_ARG, TAG_PRELOAD_RESIDENT_APPLET, TAG_PREPARE_TO_START_RESIDENT_APPLET, TAG_START_RESIDENT_APPLET, TAG_CANCEL_LIBRARY_APPLET, TAG_SEND_DSP_SLEEP, TAG_SEND_DSP_WAKE_UP, TAG_REPLY_SLEEP_QUERY, TAG_SEND_CAPTURE_BUFFER_INFO, TAG_RECEIVE_CAPTURE_BUFFER_INFO, TAG_IPC_END }; public: static Handle s_Session; public: APPLET() {} public: static nn::Result GetLockHandle( nn::Handle* pMutexHandle ); static nn::Result Initialize( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletAttr appletAttr, nn::Handle* pEventHandle_mesg, nn::Handle* pEventHandle_cont ); static nn::Result Finalize( nn::applet::CTR::AppletId appletId ); static nn::Result GetHomeMenuAppletId( nn::applet::CTR::AppletId* appletId ); static nn::Result GetLastSignaledAppletId( nn::applet::CTR::AppletId* appletId ); static nn::Result CountRegisteredApplet( bit32* pCount ); static nn::Result IsRegistered( nn::applet::CTR::AppletId appletId, bool* pRegistered ); static nn::Result GetAttribute( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletAttr* pAppletAttr ); static nn::Result InquireNotification( nn::applet::CTR::AppletId appletId, nn::applet::CTR::AppletNotification* notification ); 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 ); 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 ); 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 ); static nn::Result CancelParameter( bool isSenderCheck, nn::applet::CTR::AppletId senderId, bool isReceiverCheck, nn::applet::CTR::AppletId receiverId, bool* pIdCanceled ); static nn::Result DebugFunc( u32 id, u8 pParam[], size_t paramSize, s32* pReadLen ); static nn::Result ArrangeAppletManagerForDebug( nn::ProgramId programId ); static nn::Result MapProgramIdForDebug( nn::applet::CTR::AppletId id, nn::ProgramId programId ); static nn::Result GetPreparationState( nn::applet::CTR::AppletPreparationState* pState ); static nn::Result SetPreparationState( nn::applet::CTR::AppletPreparationState state ); static nn::Result PrepareToStartApplication( nn::ProgramId id ); static nn::Result PreloadLibraryApplet( nn::applet::CTR::AppletId id ); static nn::Result FinishPreloadingLibraryApplet( nn::applet::CTR::AppletId id ); static nn::Result PrepareToStartLibraryApplet( nn::applet::CTR::AppletId id ); static nn::Result PrepareToStartSystemApplet( nn::applet::CTR::AppletId id ); static nn::Result PrepareToStartSystemLibraryApplet( nn::applet::CTR::AppletId id ); static nn::Result StartApplication( const u8 pParam[], size_t paramSize, const u8 pHmacBuf[], size_t hmacBufSize ); static nn::Result StartLibraryApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result StartSystemApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result StartSystemLibraryApplet( nn::applet::CTR::AppletId id, const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result OrderToCloseApplication(); static nn::Result PrepareToCloseApplication(); static nn::Result PrepareToCloseLibraryApplet( bool isAppletEnd, bool isApplicationEnd ); static nn::Result PrepareToCloseSystemLibraryApplet(); static nn::Result CloseApplication( const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result CloseLibraryApplet( const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result CloseSystemLibraryApplet( const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result PrepareToJumpToHomeMenu(); static nn::Result JumpToHomeMenu( const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result PrepareToLeaveHomeMenu(); static nn::Result LeaveHomeMenu( const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result PrepareToLeaveResidentApplet(); static nn::Result LeaveResidentApplet( const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result PrepareToJumpShortCut(); static nn::Result JumpShortCut( const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result JumpToOtherApplication( nn::ProgramId id, const u8 pParam[], size_t paramSize, const u8 pHmacBuf[], size_t hmacBufSize ); static nn::Result ReceiveDeliverArg( u8 pParam[], size_t paramSize, u8 pHmacBuf[], size_t hmacBufSize, bool* isValid ); static nn::Result PreloadResidentApplet( nn::applet::CTR::AppletId id ); static nn::Result PrepareToStartResidentApplet( nn::applet::CTR::AppletId id ); static nn::Result StartResidentApplet( const u8 pParam[], size_t paramSize, nn::Handle handle ); static nn::Result CancelLibraryApplet(); static nn::Result SendDspSleep( nn::applet::CTR::AppletId id, nn::Handle handle ); static nn::Result SendDspWakeUp( nn::applet::CTR::AppletId id, nn::Handle handle ); static nn::Result ReplySleepQuery( nn::applet::CTR::AppletId id, nn::applet::CTR::AppletQueryReply reply ); static nn::Result SendCaptureBufferInfo( const u8 pParam[], size_t paramSize ); static nn::Result ReceiveCaptureBufferInfo( u8 pParam[], size_t paramSize, s32* pReadLen ); }; } // end of namespace detail } // end of namespace CTR } // end of namespace applet } // end of namespace nn #endif // ifndef NN_APPLET_CTR_APPLET_IPC_H_