From db8076fd093addd332a1da5dc4cce2ab9e7e1cb7 Mon Sep 17 00:00:00 2001 From: Adubbz Date: Thu, 26 Sep 2019 05:30:50 +1000 Subject: [PATCH] More fixes --- nx/include/switch/services/ncm.h | 4 ++-- nx/source/services/ncm.c | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/nx/include/switch/services/ncm.h b/nx/include/switch/services/ncm.h index 81f6b4b5..d2f7b060 100644 --- a/nx/include/switch/services/ncm.h +++ b/nx/include/switch/services/ncm.h @@ -144,6 +144,7 @@ Result ncmActivateContentMetaDatabase(FsStorageId storage_id); ///< [2.0.0+] Result ncmInactivateContentMetaDatabase(FsStorageId storage_id); ///< [2.0.0+] Result ncmInvalidateRightsIdCache(void); ///< [9.0.0+] +void ncmContentStorageClose(NcmContentStorage* cs); Result ncmContentStorageGeneratePlaceHolderId(NcmContentStorage* cs, NcmNcaId* out_id); Result ncmContentStorageCreatePlaceHolder(NcmContentStorage* cs, const NcmNcaId* content_id, const NcmNcaId* placeholder_id, u64 size); Result ncmContentStorageDeletePlaceHolder(NcmContentStorage* cs, const NcmNcaId* placeholder_id); @@ -172,8 +173,8 @@ Result ncmContentStorageFlushPlaceHolder(NcmContentStorage* cs); ///< [3.0.0+] Result ncmContentStorageGetSizeFromPlaceHolderId(NcmContentStorage* cs, u64* out_size, const NcmNcaId* placeholder_id); ///< [4.0.0+] Result ncmContentStorageRepairInvalidFileAttribute(NcmContentStorage* cs); ///< [4.0.0+] Result ncmContentStorageGetRightsIdFromPlaceHolderIdWithCache(NcmContentStorage* cs, FsRightsId* out_rights_id, u32* out_key_generation, const NcmNcaId* placeholder_id, const NcmNcaId* cache_content_id); ///< [8.0.0+] -void ncmContentStorageClose(NcmContentStorage* cs); +void ncmContentMetaDatabaseClose(NcmContentMetaDatabase* db); Result ncmContentMetaDatabaseSet(NcmContentMetaDatabase* db, const NcmContentMetaKey* key, const void* data, u64 data_size); Result ncmContentMetaDatabaseGet(NcmContentMetaDatabase* db, const NcmContentMetaKey* key, u64* out_size, void* out_data, u64 out_data_size); Result ncmContentMetaDatabaseRemove(NcmContentMetaDatabase* db, const NcmContentMetaKey *key); @@ -195,4 +196,3 @@ Result ncmContentMetaDatabaseListContentMetaInfo(NcmContentMetaDatabase* db, u32 Result ncmContentMetaDatabaseGetAttributes(NcmContentMetaDatabase* db, const NcmContentMetaKey* key, u8* out); Result ncmContentMetaDatabaseGetRequiredApplicationVersion(NcmContentMetaDatabase* db, u64* out_version, const NcmContentMetaKey* key); ///< [2.0.0+] Result ncmContentMetaDatabaseGetContentIdByTypeAndIdOffset(NcmContentMetaDatabase* db, NcmNcaId* out_content_id, const NcmContentMetaKey* key, NcmContentType type, u8 id_offset); ///< [5.0.0+] -void ncmContentMetaDatabaseClose(NcmContentMetaDatabase* db); \ No newline at end of file diff --git a/nx/source/services/ncm.c b/nx/source/services/ncm.c index b6c7d22c..7fdd9af3 100644 --- a/nx/source/services/ncm.c +++ b/nx/source/services/ncm.c @@ -27,6 +27,10 @@ static Result _ncmGetInterfaceInU8(Service* srv_out, u32 cmd_id, u8 inval) { ); } +static Result _ncmCmdNoIo(Service* srv, u32 cmd_id) { + return serviceDispatch(srv, cmd_id); +} + static Result _ncmCmdInU8(Service* srv, u32 cmd_id, u8 inval) { return serviceDispatchIn(srv, cmd_id, inval); } @@ -48,11 +52,11 @@ Result ncmVerifyContentMetaDatabase(FsStorageId storage_id) { } Result ncmOpenContentStorage(NcmContentStorage* out_content_storage, FsStorageId storage_id) { - return serviceDispatchIn(&g_ncmSrv, 4, storage_id); + return _ncmGetInterfaceInU8(&out_content_storage->s, 4, storage_id); } Result ncmOpenContentMetaDatabase(NcmContentMetaDatabase* out_content_meta_database, FsStorageId storage_id) { - return _ncmGetInterfaceInU8(&g_ncmSrv, 5, storage_id); + return _ncmGetInterfaceInU8(&out_content_meta_database->s, 5, storage_id); } Result ncmCloseContentStorageForcibly(FsStorageId storage_id) { @@ -91,7 +95,7 @@ Result ncmInactivateContentMetaDatabase(FsStorageId storage_id) { Result ncmInvalidateRightsIdCache(void) { if (hosversionBefore(9,0,0)) return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); - return serviceDispatch(&g_ncmSrv, 13); + return _ncmCmdNoIo(&g_ncmSrv, 13); } Result ncmContentStorageGeneratePlaceHolderId(NcmContentStorage* cs, NcmNcaId* out_id) {