diff --git a/nx/include/switch/services/fs.h b/nx/include/switch/services/fs.h index 8ded6d698..d1e22cf0d 100644 --- a/nx/include/switch/services/fs.h +++ b/nx/include/switch/services/fs.h @@ -265,6 +265,12 @@ typedef struct { u32 value; } FsGameCardHandle; +typedef struct { + u32 version; + u8 pad[0x4]; + u64 id; +} FsGameCardUpdatePartitionInfo; + typedef struct { u32 aes_ctr_key_type; ///< Contains bitflags describing how data is AES encrypted. u32 speed_emulation_type; ///< Contains bitflags describing how data is emulated. @@ -642,6 +648,7 @@ Result fsDeviceOperatorGetAndClearMmcErrorInfo(FsDeviceOperator* d, FsStorageErr Result fsDeviceOperatorGetMmcExtendedCsd(FsDeviceOperator* d, void* dst, size_t dst_size, s64 size); Result fsDeviceOperatorIsGameCardInserted(FsDeviceOperator* d, bool* out); Result fsDeviceOperatorGetGameCardHandle(FsDeviceOperator* d, FsGameCardHandle* out); +Result fsDeviceOperatorGetGameCardUpdatePartitionInfo(FsDeviceOperator* d, const FsGameCardHandle* handle, FsGameCardUpdatePartitionInfo* out); Result fsDeviceOperatorGetGameCardAttribute(FsDeviceOperator* d, const FsGameCardHandle* handle, u8 *out); Result fsDeviceOperatorGetGameCardIdSet(FsDeviceOperator* d, void* dst, size_t dst_size, s64 size); Result fsDeviceOperatorGetGameCardErrorReportInfo(FsDeviceOperator* d, FsGameCardErrorReportInfo* out); diff --git a/nx/source/services/fs.c b/nx/source/services/fs.c index 1545bf8c1..946a5a742 100644 --- a/nx/source/services/fs.c +++ b/nx/source/services/fs.c @@ -1218,6 +1218,10 @@ Result fsDeviceOperatorGetGameCardHandle(FsDeviceOperator* d, FsGameCardHandle* return _fsObjectDispatchOut(&d->s, 202, *out); } +Result fsDeviceOperatorGetGameCardUpdatePartitionInfo(FsDeviceOperator* d, const FsGameCardHandle* handle, FsGameCardUpdatePartitionInfo* out) { + return _fsObjectDispatchInOut(&d->s, 203, *handle, *out); +} + Result fsDeviceOperatorGetGameCardAttribute(FsDeviceOperator* d, const FsGameCardHandle* handle, u8 *out) { return _fsObjectDispatchInOut(&d->s, 205, *handle, *out); }