|
|
@ -0,0 +1,62 @@ |
|
|
|
|
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project |
|
|
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later |
|
|
|
|
|
|
|
|
|
|
|
#pragma once |
|
|
|
|
|
|
|
|
|
|
|
#include "common/common_funcs.h" |
|
|
|
|
|
|
|
|
|
|
|
namespace Service::NS { |
|
|
|
|
|
|
|
|
|
|
|
enum class ApplicationRecordType : u8 { |
|
|
|
|
|
Installing = 2, |
|
|
|
|
|
Installed = 3, |
|
|
|
|
|
GameCardNotInserted = 5, |
|
|
|
|
|
Archived = 0xB, |
|
|
|
|
|
GameCard = 0x10, |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
struct ApplicationRecord { |
|
|
|
|
|
u64 application_id; |
|
|
|
|
|
ApplicationRecordType type; |
|
|
|
|
|
u8 unknown; |
|
|
|
|
|
INSERT_PADDING_BYTES_NOINIT(0x6); |
|
|
|
|
|
u8 unknown2; |
|
|
|
|
|
INSERT_PADDING_BYTES_NOINIT(0x7); |
|
|
|
|
|
}; |
|
|
|
|
|
static_assert(sizeof(ApplicationRecord) == 0x18, "ApplicationRecord is an invalid size"); |
|
|
|
|
|
|
|
|
|
|
|
/// ApplicationView |
|
|
|
|
|
struct ApplicationView { |
|
|
|
|
|
u64 application_id; ///< ApplicationId. |
|
|
|
|
|
u32 unk; ///< Unknown. |
|
|
|
|
|
u32 flags; ///< Flags. |
|
|
|
|
|
u8 unk_x10[0x10]; ///< Unknown. |
|
|
|
|
|
u32 unk_x20; ///< Unknown. |
|
|
|
|
|
u16 unk_x24; ///< Unknown. |
|
|
|
|
|
u8 unk_x26[0x2]; ///< Unknown. |
|
|
|
|
|
u8 unk_x28[0x8]; ///< Unknown. |
|
|
|
|
|
u8 unk_x30[0x10]; ///< Unknown. |
|
|
|
|
|
u32 unk_x40; ///< Unknown. |
|
|
|
|
|
u8 unk_x44; ///< Unknown. |
|
|
|
|
|
u8 unk_x45[0xb]; ///< Unknown. |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/// NsPromotionInfo |
|
|
|
|
|
struct PromotionInfo { |
|
|
|
|
|
u64 start_timestamp; ///< POSIX timestamp for the promotion start. |
|
|
|
|
|
u64 end_timestamp; ///< POSIX timestamp for the promotion end. |
|
|
|
|
|
s64 remaining_time; ///< Remaining time until the promotion ends, in nanoseconds |
|
|
|
|
|
///< ({end_timestamp - current_time} converted to nanoseconds). |
|
|
|
|
|
INSERT_PADDING_BYTES_NOINIT(0x4); |
|
|
|
|
|
u8 flags; ///< Flags. Bit0: whether the PromotionInfo is valid (including bit1). Bit1 clear: |
|
|
|
|
|
///< remaining_time is set. |
|
|
|
|
|
INSERT_PADDING_BYTES_NOINIT(0x3); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/// NsApplicationViewWithPromotionInfo |
|
|
|
|
|
struct ApplicationViewWithPromotionInfo { |
|
|
|
|
|
ApplicationView view; ///< \ref NsApplicationView |
|
|
|
|
|
PromotionInfo promotion; ///< \ref NsPromotionInfo |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
} // namespace Service::NS |