/*---------------------------------------------------------------------------* Project: Horizon File: fs_IpcFileSystem.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: 26217 $ *---------------------------------------------------------------------------*/ // // このファイルを編集しないでください。 // このファイルは自動生成されます。 // #ifndef NN_FS_FS_IPCFILESYSTEM_H_ #define NN_FS_FS_IPCFILESYSTEM_H_ #include #include #include #include #include #include namespace nn { namespace fs { namespace ipc { class FileSystem { public: enum Tag { TAG_IPC_ERROR, TAG_INITIALIZE, TAG_OPEN_FILE, TAG_OPEN_FILE_DIRECTLY, TAG_DELETE_FILE, TAG_RENAME_FILE, TAG_DELETE_DIRECTORY, TAG_DELETE_DIRECTORY_RECURSIVELY, TAG_CREATE_DIRECTORY, TAG_RENAME_DIRECTORY, TAG_OPEN_DIRECTORY, TAG_OPEN_ARCHIVE, TAG_CONTROL_ARCHIVE, TAG_CLOSE_ARCHIVE, TAG_FORMAT_SAVE_DATA, TAG_GET_FREE_BYTES, TAG_SET_NAND_FATAL_ERROR, TAG_ENABLE_NOTIFICATION_NAND_FATAL_ERROR, TAG_DISABLE_NOTIFICATION_NAND_FATAL_ERROR, TAG_ACTIVATE_CARD_DEVICE, TAG_DEACTIVATE_CARD_DEVICE, TAG_GET_CARD_TYPE, TAG_ACTIVATE_SDMC_DEVICE, TAG_DEACTIVATE_SDMC_DEVICE, TAG_GET_SDMC_ARCHIVE_RESOURCE, TAG_GET_NAND_ARCHIVE_RESOURCE, TAG_GET_SDMC_FATFS_ERROR, TAG_IS_SDMC_DETECTED, TAG_IS_SDMC_WRITABLE, TAG_GET_SDMC_CID, TAG_GET_NAND_CID, TAG_GET_SDMC_SPEED_INFO, TAG_GET_NAND_SPEED_INFO, TAG_GET_SDMC_LOG, TAG_GET_NAND_LOG, TAG_CLEAR_SDMC_LOG, TAG_CLEAR_NAND_LOG, TAG_CARD_SLOT_IS_INSERTED, TAG_CARD_SLOT_POWER_ON, TAG_CARD_SLOT_POWER_OFF, TAG_CARD_SLOT_GET_CARD_IF_POWER_STATUS, TAG_CARD_NOR_DIRECT_COMMAND, TAG_CARD_NOR_DIRECT_COMMAND_WITH_ADDRESS, TAG_CARD_NOR_DIRECT_READ, TAG_CARD_NOR_DIRECT_READ_WITH_ADDRESS, TAG_CARD_NOR_DIRECT_WRITE, TAG_CARD_NOR_DIRECT_WRITE_WITH_ADDRESS, TAG_CARD_NOR_DIRECT_READ_4X_IO, TAG_CARD_NOR_DIRECT_CPU_WRITE_WITHOUT_VERIFY, TAG_CARD_NOR_DIRECT_SECTOR_ERASE_WITHOUT_VERIFY, TAG_GET_PRODUCT_INFO, TAG_GET_PROGRAM_LAUNCH_INFO, TAG_FORMAT_EXT_SAVE_DATA, TAG_FORMAT_SHARED_EXT_SAVE_DATA, TAG_READ_EXT_SAVE_DATA_ICON, TAG_ENUMERATE_EXT_SAVE_DATA, TAG_ENUMERATE_SHARED_EXT_SAVE_DATA, TAG_DELETE_EXT_SAVE_DATA, TAG_DELETE_SHARED_EXT_SAVE_DATA, TAG_SET_CARD_SPI_BAUD_RATE, TAG_SET_CARD_SPI_BUS_MODE, TAG_IPC_END }; private: Handle m_Session; public: FileSystem(Handle session) : m_Session(session) {} public: nn::Result Initialize(); nn::Result OpenFile( nn::Handle* pOut, nn::fs::Transaction transaction, bit64 archiveHandle, bit32 pathType, const bit8 path[], size_t pathLength, bit32 mode, nn::fs::Attributes attributes ); nn::Result OpenFileDirectly( nn::Handle* pOut, nn::fs::Transaction transaction, bit32 archiveType, bit32 archivePathType, const bit8 newPath[], size_t archivePathLength, bit32 pathType, const bit8 path[], size_t pathLength, bit32 mode, nn::fs::Attributes attributes ); nn::Result DeleteFile( nn::fs::Transaction transaction, bit64 archiveHandle, bit32 pathType, const bit8 path[], size_t pathLength ); nn::Result RenameFile( nn::fs::Transaction transaction, bit64 currentArchiveHandle, bit32 currentPathType, const bit8 currentPath[], size_t currentPathLength, bit64 newArchiveHandle, bit32 newPathType, const bit8 newPath[], size_t newPathLength ); nn::Result DeleteDirectory( nn::fs::Transaction transaction, bit64 archiveHandle, bit32 pathType, const bit8 path[], size_t pathLength ); nn::Result DeleteDirectoryRecursively( nn::fs::Transaction transaction, bit64 archiveHandle, bit32 pathType, const bit8 path[], size_t pathLength ); nn::Result CreateDirectory( nn::fs::Transaction transaction, bit64 archiveHandle, bit32 pathType, const bit8 path[], size_t pathLength, nn::fs::Attributes attributes ); nn::Result RenameDirectory( nn::fs::Transaction transaction, bit64 currentArchiveHandle, bit32 currentPathType, const bit8 currentPath[], size_t currentPathLength, bit64 newArchiveHandle, bit32 newPathType, const bit8 newPath[], size_t newPathLength ); nn::Result OpenDirectory( nn::Handle* pOut, bit64 archiveHandle, bit32 pathType, const bit8 path[], size_t pathLength ); nn::Result OpenArchive( bit64* archiveHandle, bit32 archiveType, bit32 pathType, const bit8 path[], size_t pathLength ); nn::Result ControlArchive( bit64 archiveHandle, bit32 pathType, const bit8 path[], size_t pathLength ); nn::Result CloseArchive( bit64 archiveHandle ); nn::Result FormatSaveData( u32 sizeBlock, u32 countDirectoryEntry, u32 countFileEntry, u32 countDirectoryEntryBucket, u32 countFileEntryBucket ); nn::Result GetFreeBytes( s64* freeBytes, bit64 archiveHandle ); nn::Result SetNandFatalError(); nn::Result EnableNotificationNandFatalError(); nn::Result DisableNotificationNandFatalError(); nn::Result ActivateCardDevice(); nn::Result DeactivateCardDevice(); nn::Result GetCardType( nn::fs::CardType* pOut ); nn::Result ActivateSdmcDevice(); nn::Result DeactivateSdmcDevice(); nn::Result GetSdmcArchiveResource( nn::fs::ArchiveResource* pOut ); nn::Result GetNandArchiveResource( nn::fs::ArchiveResource* pOut ); nn::Result GetSdmcFatfsError( s32* pOut ); nn::Result IsSdmcDetected( bool* pOut ); nn::Result IsSdmcWritable( bool* pOut ); nn::Result GetSdmcCid( void* pBuffer, size_t size ); nn::Result GetNandCid( void* pBuffer, size_t size ); nn::Result GetSdmcSpeedInfo( nn::fs::SdmcSpeedInfo* pOut ); nn::Result GetNandSpeedInfo( nn::fs::NandSpeedInfo* pOut ); nn::Result GetSdmcLog( void* pBuffer, size_t size ); nn::Result GetNandLog( void* pBuffer, size_t size ); nn::Result ClearSdmcLog(); nn::Result ClearNandLog(); nn::Result CardSlotIsInserted( bool* pOut ); nn::Result CardSlotPowerOn( u8* pOut ); nn::Result CardSlotPowerOff( u8* pOut ); nn::Result CardSlotGetCardIFPowerStatus( u8* pOut ); nn::Result CardNorDirectCommand( u8 command ); nn::Result CardNorDirectCommandWithAddress( u8 command, u32 address ); nn::Result CardNorDirectRead( u8 command, u32 pBuffer[], size_t size ); nn::Result CardNorDirectReadWithAddress( u8 command, u32 address, u32 pBuffer[], size_t size ); nn::Result CardNorDirectWrite( u8 command, const u32 pBuffer[], size_t size ); nn::Result CardNorDirectWriteWithAddress( u8 command, u32 address, const u32 pBuffer[], size_t size ); nn::Result CardNorDirectRead_4xIO( u8 command, u32 address, u32 pBuffer[], size_t size ); nn::Result CardNorDirectCpuWriteWithoutVerify( const u32 pBuffer[], u32 address, size_t size ); nn::Result CardNorDirectSectorEraseWithoutVerify( u32 address ); nn::Result GetProductInfo( nn::ProductInfo* pOut, bit32 processId ); nn::Result GetProgramLaunchInfo( nn::fs::ProgramLaunchInfo* pOut, bit32 processId ); nn::Result FormatExtSaveData( nn::fs::MediaType mediaType, bit64 extSaveDataId, const void* pBuffer, size_t size, u32 entryDirectory, u32 entryFile ); nn::Result FormatSharedExtSaveData( nn::fs::MediaType mediaType, bit64 extSaveDataId, u32 entryDirectory, u32 entryFile, size_t limitSize ); nn::Result ReadExtSaveDataIcon( s32* pOut, nn::fs::MediaType mediaType, bit64 extSaveDataId, void* pBuffer, size_t size ); nn::Result EnumerateExtSaveData( s32* pNumId, bit64 pStorageId[], size_t numBuffer, nn::fs::MediaType mediaType ); nn::Result EnumerateSharedExtSaveData( s32* pNumId, bit64 pStorageId[], size_t numBuffer, nn::fs::MediaType mediaType ); nn::Result DeleteExtSaveData( nn::fs::MediaType mediaType, bit64 extSaveDataId ); nn::Result DeleteSharedExtSaveData( nn::fs::MediaType mediaType, bit32 extSaveDataId ); nn::Result SetCardSpiBaudRate( nn::fs::CardSpiBaudRate baudRate ); nn::Result SetCardSpiBusMode( nn::fs::CardSpiBusMode busMode ); }; } // end of namespace ipc } // end of namespace fs } // end of namespace nn #endif // ifndef NN_FS_FS_IPCFILESYSTEM_H_