mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-11-03 23:28:48 +00:00 
			
		
		
		
	code: Cleanup and warning fixes from the Vulkan PR (#6163)
Co-authored-by: emufan4568 <geoster3d@gmail.com> Co-authored-by: Kyle Kienapfel <Docteh@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									aa84022704
								
							
						
					
					
						commit
						1ddea27ac8
					
				
					 72 changed files with 895 additions and 626 deletions
				
			
		| 
						 | 
				
			
			@ -17,12 +17,9 @@
 | 
			
		|||
#include "core/file_sys/errors.h"
 | 
			
		||||
#include "core/file_sys/ncch_container.h"
 | 
			
		||||
#include "core/file_sys/title_metadata.h"
 | 
			
		||||
#include "core/hle/ipc.h"
 | 
			
		||||
#include "core/hle/ipc_helpers.h"
 | 
			
		||||
#include "core/hle/kernel/client_port.h"
 | 
			
		||||
#include "core/hle/kernel/client_session.h"
 | 
			
		||||
#include "core/hle/kernel/errors.h"
 | 
			
		||||
#include "core/hle/kernel/handle_table.h"
 | 
			
		||||
#include "core/hle/kernel/server_session.h"
 | 
			
		||||
#include "core/hle/kernel/session.h"
 | 
			
		||||
#include "core/hle/service/am/am.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -610,7 +607,6 @@ void Module::Interface::FindDLCContentInfos(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
 | 
			
		||||
    std::string tmd_path = GetTitleMetadataPath(media_type, title_id);
 | 
			
		||||
 | 
			
		||||
    u32 content_read = 0;
 | 
			
		||||
    FileSys::TitleMetadata tmd;
 | 
			
		||||
    if (tmd.Load(tmd_path) == Loader::ResultStatus::Success) {
 | 
			
		||||
        std::size_t write_offset = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -642,7 +638,6 @@ void Module::Interface::FindDLCContentInfos(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
 | 
			
		||||
            content_info_out.Write(&content_info, write_offset, sizeof(ContentInfo));
 | 
			
		||||
            write_offset += sizeof(ContentInfo);
 | 
			
		||||
            content_read++;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,6 @@
 | 
			
		|||
// Licensed under GPLv2 or any later version
 | 
			
		||||
// Refer to the license.txt file included.
 | 
			
		||||
 | 
			
		||||
#include "common/common_paths.h"
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
#include "core/hle/applets/applet.h"
 | 
			
		||||
#include "core/hle/service/apt/applet_manager.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -27,47 +26,66 @@ struct AppletTitleData {
 | 
			
		|||
 | 
			
		||||
static constexpr std::size_t NumApplets = 29;
 | 
			
		||||
static constexpr std::array<AppletTitleData, NumApplets> applet_titleids = {{
 | 
			
		||||
    {AppletId::HomeMenu, AppletId::None, 0x4003000008202, 0x4003000008F02, 0x4003000009802,
 | 
			
		||||
     0x4003000008202, 0x400300000A102, 0x400300000A902, 0x400300000B102},
 | 
			
		||||
    {AppletId::AlternateMenu, AppletId::None, 0x4003000008102, 0x4003000008102, 0x4003000008102,
 | 
			
		||||
     0x4003000008102, 0x4003000008102, 0x4003000008102, 0x4003000008102},
 | 
			
		||||
    {AppletId::Camera, AppletId::None, 0x4003000008402, 0x4003000009002, 0x4003000009902,
 | 
			
		||||
     0x4003000008402, 0x400300000A202, 0x400300000AA02, 0x400300000B202},
 | 
			
		||||
    {AppletId::FriendList, AppletId::None, 0x4003000008D02, 0x4003000009602, 0x4003000009F02,
 | 
			
		||||
     0x4003000008D02, 0x400300000A702, 0x400300000AF02, 0x400300000B702},
 | 
			
		||||
    {AppletId::GameNotes, AppletId::None, 0x4003000008702, 0x4003000009302, 0x4003000009C02,
 | 
			
		||||
     0x4003000008702, 0x400300000A502, 0x400300000AD02, 0x400300000B502},
 | 
			
		||||
    {AppletId::InternetBrowser, AppletId::None, 0x4003000008802, 0x4003000009402, 0x4003000009D02,
 | 
			
		||||
     0x4003000008802, 0x400300000A602, 0x400300000AE02, 0x400300000B602},
 | 
			
		||||
    {AppletId::InstructionManual, AppletId::None, 0x4003000008602, 0x4003000009202, 0x4003000009B02,
 | 
			
		||||
     0x4003000008602, 0x400300000A402, 0x400300000AC02, 0x400300000B402},
 | 
			
		||||
    {AppletId::Notifications, AppletId::None, 0x4003000008E02, 0x4003000009702, 0x400300000A002,
 | 
			
		||||
     0x4003000008E02, 0x400300000A802, 0x400300000B002, 0x400300000B802},
 | 
			
		||||
    {AppletId::Miiverse, AppletId::None, 0x400300000BC02, 0x400300000BD02, 0x400300000BE02,
 | 
			
		||||
     0x400300000BC02, 0x4003000009E02, 0x4003000009502, 0x400300000B902},
 | 
			
		||||
    {{AppletId::HomeMenu, AppletId::None},
 | 
			
		||||
     {0x4003000008202, 0x4003000008F02, 0x4003000009802, 0x4003000008202, 0x400300000A102,
 | 
			
		||||
      0x400300000A902, 0x400300000B102}},
 | 
			
		||||
    {{AppletId::AlternateMenu, AppletId::None},
 | 
			
		||||
     {0x4003000008102, 0x4003000008102, 0x4003000008102, 0x4003000008102, 0x4003000008102,
 | 
			
		||||
      0x4003000008102, 0x4003000008102}},
 | 
			
		||||
    {{AppletId::Camera, AppletId::None},
 | 
			
		||||
     {0x4003000008402, 0x4003000009002, 0x4003000009902, 0x4003000008402, 0x400300000A202,
 | 
			
		||||
      0x400300000AA02, 0x400300000B202}},
 | 
			
		||||
    {{AppletId::FriendList, AppletId::None},
 | 
			
		||||
     {0x4003000008D02, 0x4003000009602, 0x4003000009F02, 0x4003000008D02, 0x400300000A702,
 | 
			
		||||
      0x400300000AF02, 0x400300000B702}},
 | 
			
		||||
    {{AppletId::GameNotes, AppletId::None},
 | 
			
		||||
     {0x4003000008702, 0x4003000009302, 0x4003000009C02, 0x4003000008702, 0x400300000A502,
 | 
			
		||||
      0x400300000AD02, 0x400300000B502}},
 | 
			
		||||
    {{AppletId::InternetBrowser, AppletId::None},
 | 
			
		||||
     {0x4003000008802, 0x4003000009402, 0x4003000009D02, 0x4003000008802, 0x400300000A602,
 | 
			
		||||
      0x400300000AE02, 0x400300000B602}},
 | 
			
		||||
    {{AppletId::InstructionManual, AppletId::None},
 | 
			
		||||
     {0x4003000008602, 0x4003000009202, 0x4003000009B02, 0x4003000008602, 0x400300000A402,
 | 
			
		||||
      0x400300000AC02, 0x400300000B402}},
 | 
			
		||||
    {{AppletId::Notifications, AppletId::None},
 | 
			
		||||
     {0x4003000008E02, 0x4003000009702, 0x400300000A002, 0x4003000008E02, 0x400300000A802,
 | 
			
		||||
      0x400300000B002, 0x400300000B802}},
 | 
			
		||||
    {{AppletId::Miiverse, AppletId::None},
 | 
			
		||||
     {0x400300000BC02, 0x400300000BD02, 0x400300000BE02, 0x400300000BC02, 0x4003000009E02,
 | 
			
		||||
      0x4003000009502, 0x400300000B902}},
 | 
			
		||||
    // These values obtained from an older NS dump firmware 4.5
 | 
			
		||||
    {AppletId::MiiversePost, AppletId::None, 0x400300000BA02, 0x400300000BA02, 0x400300000BA02,
 | 
			
		||||
     0x400300000BA02, 0x400300000BA02, 0x400300000BA02, 0x400300000BA02},
 | 
			
		||||
    {{AppletId::MiiversePost, AppletId::None},
 | 
			
		||||
     {0x400300000BA02, 0x400300000BA02, 0x400300000BA02, 0x400300000BA02, 0x400300000BA02,
 | 
			
		||||
      0x400300000BA02, 0x400300000BA02}},
 | 
			
		||||
    // {AppletId::MiiversePost, AppletId::None, 0x4003000008302, 0x4003000008B02, 0x400300000BA02,
 | 
			
		||||
    //  0x4003000008302, 0x0, 0x0, 0x0},
 | 
			
		||||
    {AppletId::AmiiboSettings, AppletId::None, 0x4003000009502, 0x4003000009E02, 0x400300000B902,
 | 
			
		||||
     0x4003000009502, 0x0, 0x4003000008C02, 0x400300000BF02},
 | 
			
		||||
    {AppletId::SoftwareKeyboard1, AppletId::SoftwareKeyboard2, 0x400300000C002, 0x400300000C802,
 | 
			
		||||
     0x400300000D002, 0x400300000C002, 0x400300000D802, 0x400300000DE02, 0x400300000E402},
 | 
			
		||||
    {AppletId::Ed1, AppletId::Ed2, 0x400300000C102, 0x400300000C902, 0x400300000D102,
 | 
			
		||||
     0x400300000C102, 0x400300000D902, 0x400300000DF02, 0x400300000E502},
 | 
			
		||||
    {AppletId::PnoteApp, AppletId::PnoteApp2, 0x400300000C302, 0x400300000CB02, 0x400300000D302,
 | 
			
		||||
     0x400300000C302, 0x400300000DB02, 0x400300000E102, 0x400300000E702},
 | 
			
		||||
    {AppletId::SnoteApp, AppletId::SnoteApp2, 0x400300000C402, 0x400300000CC02, 0x400300000D402,
 | 
			
		||||
     0x400300000C402, 0x400300000DC02, 0x400300000E202, 0x400300000E802},
 | 
			
		||||
    {AppletId::Error, AppletId::Error2, 0x400300000C502, 0x400300000C502, 0x400300000C502,
 | 
			
		||||
     0x400300000C502, 0x400300000CF02, 0x400300000CF02, 0x400300000CF02},
 | 
			
		||||
    {AppletId::Mint, AppletId::Mint2, 0x400300000C602, 0x400300000CE02, 0x400300000D602,
 | 
			
		||||
     0x400300000C602, 0x400300000DD02, 0x400300000E302, 0x400300000E902},
 | 
			
		||||
    {AppletId::Extrapad, AppletId::Extrapad2, 0x400300000CD02, 0x400300000CD02, 0x400300000CD02,
 | 
			
		||||
     0x400300000CD02, 0x400300000D502, 0x400300000D502, 0x400300000D502},
 | 
			
		||||
    {AppletId::Memolib, AppletId::Memolib2, 0x400300000F602, 0x400300000F602, 0x400300000F602,
 | 
			
		||||
     0x400300000F602, 0x400300000F602, 0x400300000F602, 0x400300000F602},
 | 
			
		||||
    {{AppletId::AmiiboSettings, AppletId::None},
 | 
			
		||||
     {0x4003000009502, 0x4003000009E02, 0x400300000B902, 0x4003000009502, 0x0, 0x4003000008C02,
 | 
			
		||||
      0x400300000BF02}},
 | 
			
		||||
    {{AppletId::SoftwareKeyboard1, AppletId::SoftwareKeyboard2},
 | 
			
		||||
     {0x400300000C002, 0x400300000C802, 0x400300000D002, 0x400300000C002, 0x400300000D802,
 | 
			
		||||
      0x400300000DE02, 0x400300000E402}},
 | 
			
		||||
    {{AppletId::Ed1, AppletId::Ed2},
 | 
			
		||||
     {0x400300000C102, 0x400300000C902, 0x400300000D102, 0x400300000C102, 0x400300000D902,
 | 
			
		||||
      0x400300000DF02, 0x400300000E502}},
 | 
			
		||||
    {{AppletId::PnoteApp, AppletId::PnoteApp2},
 | 
			
		||||
     {0x400300000C302, 0x400300000CB02, 0x400300000D302, 0x400300000C302, 0x400300000DB02,
 | 
			
		||||
      0x400300000E102, 0x400300000E702}},
 | 
			
		||||
    {{AppletId::SnoteApp, AppletId::SnoteApp2},
 | 
			
		||||
     {0x400300000C402, 0x400300000CC02, 0x400300000D402, 0x400300000C402, 0x400300000DC02,
 | 
			
		||||
      0x400300000E202, 0x400300000E802}},
 | 
			
		||||
    {{AppletId::Error, AppletId::Error2},
 | 
			
		||||
     {0x400300000C502, 0x400300000C502, 0x400300000C502, 0x400300000C502, 0x400300000CF02,
 | 
			
		||||
      0x400300000CF02, 0x400300000CF02}},
 | 
			
		||||
    {{AppletId::Mint, AppletId::Mint2},
 | 
			
		||||
     {0x400300000C602, 0x400300000CE02, 0x400300000D602, 0x400300000C602, 0x400300000DD02,
 | 
			
		||||
      0x400300000E302, 0x400300000E902}},
 | 
			
		||||
    {{AppletId::Extrapad, AppletId::Extrapad2},
 | 
			
		||||
     {0x400300000CD02, 0x400300000CD02, 0x400300000CD02, 0x400300000CD02, 0x400300000D502,
 | 
			
		||||
      0x400300000D502, 0x400300000D502}},
 | 
			
		||||
    {{AppletId::Memolib, AppletId::Memolib2},
 | 
			
		||||
     {0x400300000F602, 0x400300000F602, 0x400300000F602, 0x400300000F602, 0x400300000F602,
 | 
			
		||||
      0x400300000F602, 0x400300000F602}},
 | 
			
		||||
    // TODO(Subv): Fill in the rest of the titleids
 | 
			
		||||
}};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,6 @@
 | 
			
		|||
#include <cryptopp/osrng.h>
 | 
			
		||||
#include <cryptopp/sha.h>
 | 
			
		||||
#include "common/archives.h"
 | 
			
		||||
#include "common/common_paths.h"
 | 
			
		||||
#include "common/file_util.h"
 | 
			
		||||
#include "common/logging/log.h"
 | 
			
		||||
#include "common/string_util.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -107,7 +106,7 @@ static_assert(sizeof(ConsoleCountryInfo) == 4, "ConsoleCountryInfo must be exact
 | 
			
		|||
 | 
			
		||||
constexpr EULAVersion MAX_EULA_VERSION{0x7F, 0x7F};
 | 
			
		||||
constexpr ConsoleModelInfo CONSOLE_MODEL_OLD{NINTENDO_3DS_XL, {0, 0, 0}};
 | 
			
		||||
constexpr ConsoleModelInfo CONSOLE_MODEL_NEW{NEW_NINTENDO_3DS_XL, {0, 0, 0}};
 | 
			
		||||
[[maybe_unused]] constexpr ConsoleModelInfo CONSOLE_MODEL_NEW{NEW_NINTENDO_3DS_XL, {0, 0, 0}};
 | 
			
		||||
constexpr u8 CONSOLE_LANGUAGE = LANGUAGE_EN;
 | 
			
		||||
constexpr UsernameBlock CONSOLE_USERNAME_BLOCK{u"CITRA", 0, 0};
 | 
			
		||||
constexpr BirthdayBlock PROFILE_BIRTHDAY{3, 25}; // March 25th, 2014
 | 
			
		||||
| 
						 | 
				
			
			@ -269,7 +268,7 @@ void Module::Interface::GetSystemModel(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
void Module::Interface::GetModelNintendo2DS(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::RequestParser rp(ctx, 0x06, 0, 0);
 | 
			
		||||
    IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
 | 
			
		||||
    u32 data;
 | 
			
		||||
    u32 data{};
 | 
			
		||||
 | 
			
		||||
    // TODO(Subv): Find out the correct error codes
 | 
			
		||||
    rb.Push(cfg->GetConfigInfoBlock(ConsoleModelBlockID, 4, 0x8, reinterpret_cast<u8*>(&data)));
 | 
			
		||||
| 
						 | 
				
			
			@ -370,7 +369,7 @@ ResultVal<void*> Module::GetConfigInfoBlockPointer(u32 block_id, u32 size, u32 f
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
ResultCode Module::GetConfigInfoBlock(u32 block_id, u32 size, u32 flag, void* output) {
 | 
			
		||||
    void* pointer;
 | 
			
		||||
    void* pointer = nullptr;
 | 
			
		||||
    CASCADE_RESULT(pointer, GetConfigInfoBlockPointer(block_id, size, flag));
 | 
			
		||||
    memcpy(output, pointer, size);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -378,7 +377,7 @@ ResultCode Module::GetConfigInfoBlock(u32 block_id, u32 size, u32 flag, void* ou
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
ResultCode Module::SetConfigInfoBlock(u32 block_id, u32 size, u32 flag, const void* input) {
 | 
			
		||||
    void* pointer;
 | 
			
		||||
    void* pointer = nullptr;
 | 
			
		||||
    CASCADE_RESULT(pointer, GetConfigInfoBlockPointer(block_id, size, flag));
 | 
			
		||||
    memcpy(pointer, input, size);
 | 
			
		||||
    return RESULT_SUCCESS;
 | 
			
		||||
| 
						 | 
				
			
			@ -701,7 +700,7 @@ void Module::SetSystemLanguage(SystemLanguage language) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
SystemLanguage Module::GetSystemLanguage() {
 | 
			
		||||
    u8 block;
 | 
			
		||||
    u8 block{};
 | 
			
		||||
    GetConfigInfoBlock(LanguageBlockID, sizeof(block), 8, &block);
 | 
			
		||||
    return static_cast<SystemLanguage>(block);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -712,7 +711,7 @@ void Module::SetSoundOutputMode(SoundOutputMode mode) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
SoundOutputMode Module::GetSoundOutputMode() {
 | 
			
		||||
    u8 block;
 | 
			
		||||
    u8 block{};
 | 
			
		||||
    GetConfigInfoBlock(SoundOutputModeBlockID, sizeof(block), 8, &block);
 | 
			
		||||
    return static_cast<SoundOutputMode>(block);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -723,7 +722,7 @@ void Module::SetCountryCode(u8 country_code) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
u8 Module::GetCountryCode() {
 | 
			
		||||
    ConsoleCountryInfo block;
 | 
			
		||||
    ConsoleCountryInfo block{};
 | 
			
		||||
    GetConfigInfoBlock(CountryInfoBlockID, sizeof(block), 8, &block);
 | 
			
		||||
    return block.country_code;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -734,7 +733,7 @@ void Module::SetCountryInfo(u8 country_code, u8 state_code) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
u8 Module::GetStateCode() {
 | 
			
		||||
    ConsoleCountryInfo block;
 | 
			
		||||
    ConsoleCountryInfo block{};
 | 
			
		||||
    GetConfigInfoBlock(CountryInfoBlockID, sizeof(block), 8, &block);
 | 
			
		||||
    return block.state_code;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -192,7 +192,7 @@ static_assert(sizeof(CaptureState) == 0x8, "CaptureState structure size is wrong
 | 
			
		|||
 | 
			
		||||
void CSND_SND::Initialize(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
    IPC::RequestParser rp(ctx, 0x01, 5, 0);
 | 
			
		||||
    const u32 size = Common::AlignUp(rp.Pop<u32>(), Memory::PAGE_SIZE);
 | 
			
		||||
    const u32 size = Common::AlignUp(rp.Pop<u32>(), Memory::CITRA_PAGE_SIZE);
 | 
			
		||||
    master_state_offset = rp.Pop<u32>();
 | 
			
		||||
    channel_state_offset = rp.Pop<u32>();
 | 
			
		||||
    capture_state_offset = rp.Pop<u32>();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -95,6 +95,9 @@ void DSP_DSP::WriteProcessPipe(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
        buffer[6] = 0;
 | 
			
		||||
        buffer[7] = 0;
 | 
			
		||||
        break;
 | 
			
		||||
    default:
 | 
			
		||||
        LOG_ERROR(Service_DSP, "Unknown pipe {}", pipe);
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    system.DSP().PipeWrite(pipe, buffer);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -884,6 +884,8 @@ ResultVal<u16> FS_USER::GetSpecialContentIndexFromTMD(MediaType media_type, u64
 | 
			
		|||
    default:
 | 
			
		||||
        ASSERT(false);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return ResultCode(-1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
FS_USER::FS_USER(Core::System& system)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,9 +8,7 @@
 | 
			
		|||
#include "common/microprofile.h"
 | 
			
		||||
#include "common/swap.h"
 | 
			
		||||
#include "core/core.h"
 | 
			
		||||
#include "core/hle/ipc.h"
 | 
			
		||||
#include "core/hle/ipc_helpers.h"
 | 
			
		||||
#include "core/hle/kernel/handle_table.h"
 | 
			
		||||
#include "core/hle/kernel/shared_memory.h"
 | 
			
		||||
#include "core/hle/kernel/shared_page.h"
 | 
			
		||||
#include "core/hle/result.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -83,7 +81,9 @@ u32 GSP_GPU::GetUnusedThreadId() const {
 | 
			
		|||
        if (!used_thread_ids[id])
 | 
			
		||||
            return id;
 | 
			
		||||
    }
 | 
			
		||||
    ASSERT_MSG(false, "All GSP threads are in use");
 | 
			
		||||
 | 
			
		||||
    UNREACHABLE_MSG("All GSP threads are in use");
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Gets a pointer to a thread command buffer in GSP shared memory
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1502,7 +1502,7 @@ u32 CROHelper::Fix(u32 fix_level) {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fix_end = Common::AlignUp(fix_end, Memory::PAGE_SIZE);
 | 
			
		||||
    fix_end = Common::AlignUp(fix_end, Memory::CITRA_PAGE_SIZE);
 | 
			
		||||
 | 
			
		||||
    u32 fixed_size = fix_end - module_address;
 | 
			
		||||
    SetField(FixedSize, fixed_size);
 | 
			
		||||
| 
						 | 
				
			
			@ -1525,8 +1525,8 @@ std::tuple<VAddr, u32> CROHelper::GetExecutablePages() const {
 | 
			
		|||
        SegmentEntry entry;
 | 
			
		||||
        GetEntry(system.Memory(), i, entry);
 | 
			
		||||
        if (entry.type == SegmentType::Code && entry.size != 0) {
 | 
			
		||||
            VAddr begin = Common::AlignDown(entry.offset, Memory::PAGE_SIZE);
 | 
			
		||||
            VAddr end = Common::AlignUp(entry.offset + entry.size, Memory::PAGE_SIZE);
 | 
			
		||||
            VAddr begin = Common::AlignDown(entry.offset, Memory::CITRA_PAGE_SIZE);
 | 
			
		||||
            VAddr end = Common::AlignUp(entry.offset + entry.size, Memory::CITRA_PAGE_SIZE);
 | 
			
		||||
            return std::make_tuple(begin, end - begin);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -87,19 +87,19 @@ void RO::Initialize(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (crs_buffer_ptr & Memory::PAGE_MASK) {
 | 
			
		||||
    if (crs_buffer_ptr & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRS original address is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_ADDRESS);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (crs_address & Memory::PAGE_MASK) {
 | 
			
		||||
    if (crs_address & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRS mapping address is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_ADDRESS);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (crs_size & Memory::PAGE_MASK) {
 | 
			
		||||
    if (crs_size & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRS size is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_SIZE);
 | 
			
		||||
        return;
 | 
			
		||||
| 
						 | 
				
			
			@ -207,21 +207,21 @@ void RO::LoadCRO(Kernel::HLERequestContext& ctx, bool link_on_load_bug_fix) {
 | 
			
		|||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (cro_buffer_ptr & Memory::PAGE_MASK) {
 | 
			
		||||
    if (cro_buffer_ptr & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRO original address is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_ADDRESS);
 | 
			
		||||
        rb.Push<u32>(0);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (cro_address & Memory::PAGE_MASK) {
 | 
			
		||||
    if (cro_address & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRO mapping address is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_ADDRESS);
 | 
			
		||||
        rb.Push<u32>(0);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (cro_size & Memory::PAGE_MASK) {
 | 
			
		||||
    if (cro_size & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRO size is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_SIZE);
 | 
			
		||||
        rb.Push<u32>(0);
 | 
			
		||||
| 
						 | 
				
			
			@ -354,7 +354,7 @@ void RO::UnloadCRO(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (cro_address & Memory::PAGE_MASK) {
 | 
			
		||||
    if (cro_address & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRO address is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_ADDRESS);
 | 
			
		||||
        return;
 | 
			
		||||
| 
						 | 
				
			
			@ -421,7 +421,7 @@ void RO::LinkCRO(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (cro_address & Memory::PAGE_MASK) {
 | 
			
		||||
    if (cro_address & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRO address is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_ADDRESS);
 | 
			
		||||
        return;
 | 
			
		||||
| 
						 | 
				
			
			@ -461,7 +461,7 @@ void RO::UnlinkCRO(Kernel::HLERequestContext& ctx) {
 | 
			
		|||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (cro_address & Memory::PAGE_MASK) {
 | 
			
		||||
    if (cro_address & Memory::CITRA_PAGE_MASK) {
 | 
			
		||||
        LOG_ERROR(Service_LDR, "CRO address is not aligned");
 | 
			
		||||
        rb.Push(ERROR_MISALIGNED_ADDRESS);
 | 
			
		||||
        return;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,7 +92,8 @@ u16 NWM_UDS::GetNextAvailableNodeId() {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    // Any connection attempts to an already full network should have been refused.
 | 
			
		||||
    ASSERT_MSG(false, "No available connection slots in the network");
 | 
			
		||||
    UNREACHABLE_MSG("No available connection slots in the network");
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void NWM_UDS::BroadcastNodeMap() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,9 +15,6 @@
 | 
			
		|||
 | 
			
		||||
namespace Service::NWM {
 | 
			
		||||
 | 
			
		||||
// 802.11 broadcast MAC address
 | 
			
		||||
constexpr MacAddress BroadcastMac = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
 | 
			
		||||
 | 
			
		||||
constexpr u64 DefaultNetworkUptime = 900000000; // 15 minutes in microseconds.
 | 
			
		||||
 | 
			
		||||
// Note: These values were taken from a packet capture of an o3DS XL
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -178,15 +178,6 @@ static const std::unordered_map<int, int> sockopt_map = {{
 | 
			
		|||
    {0x1009, SO_ERROR},
 | 
			
		||||
}};
 | 
			
		||||
 | 
			
		||||
/// Converts a socket option from 3ds-specific to platform-specific
 | 
			
		||||
static int TranslateSockOpt(int console_opt_name) {
 | 
			
		||||
    auto found = sockopt_map.find(console_opt_name);
 | 
			
		||||
    if (found != sockopt_map.end()) {
 | 
			
		||||
        return found->second;
 | 
			
		||||
    }
 | 
			
		||||
    return console_opt_name;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Structure to represent the 3ds' pollfd structure, which is different than most implementations
 | 
			
		||||
struct CTRPollFD {
 | 
			
		||||
    u32 fd; ///< Socket handle
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue