diff options
Diffstat (limited to 'src/core/hle')
-rw-r--r-- | src/core/hle/kernel/k_capabilities.cpp | 1 | ||||
-rw-r--r-- | src/core/hle/service/am/am.cpp | 8 | ||||
-rw-r--r-- | src/core/hle/service/es/es.cpp | 10 | ||||
-rw-r--r-- | src/core/hle/service/mii/mii_manager.cpp | 2 | ||||
-rw-r--r-- | src/core/hle/service/mii/raw_data.cpp | 104 | ||||
-rw-r--r-- | src/core/hle/service/mii/raw_data.h | 2 | ||||
-rw-r--r-- | src/core/hle/service/nvdrv/core/nvmap.cpp | 4 | ||||
-rw-r--r-- | src/core/hle/service/ssl/ssl_backend_schannel.cpp | 3 |
8 files changed, 17 insertions, 117 deletions
diff --git a/src/core/hle/kernel/k_capabilities.cpp b/src/core/hle/kernel/k_capabilities.cpp index 90e4e8fb0..e7da7a21d 100644 --- a/src/core/hle/kernel/k_capabilities.cpp +++ b/src/core/hle/kernel/k_capabilities.cpp @@ -156,7 +156,6 @@ Result KCapabilities::MapIoPage_(const u32 cap, KPageTable* page_table) { const u64 phys_addr = MapIoPage{cap}.address.Value() * PageSize; const size_t num_pages = 1; const size_t size = num_pages * PageSize; - R_UNLESS(num_pages != 0, ResultInvalidSize); R_UNLESS(phys_addr < phys_addr + size, ResultInvalidAddress); R_UNLESS(((phys_addr + size - 1) & ~PhysicalMapAllowedMask) == 0, ResultInvalidAddress); diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp index da33f0e44..e92f400de 100644 --- a/src/core/hle/service/am/am.cpp +++ b/src/core/hle/service/am/am.cpp @@ -341,7 +341,7 @@ void ISelfController::Exit(HLERequestContext& ctx) { void ISelfController::LockExit(HLERequestContext& ctx) { LOG_DEBUG(Service_AM, "called"); - system.SetExitLock(true); + system.SetExitLocked(true); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(ResultSuccess); @@ -350,10 +350,14 @@ void ISelfController::LockExit(HLERequestContext& ctx) { void ISelfController::UnlockExit(HLERequestContext& ctx) { LOG_DEBUG(Service_AM, "called"); - system.SetExitLock(false); + system.SetExitLocked(false); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(ResultSuccess); + + if (system.GetExitRequested()) { + system.Exit(); + } } void ISelfController::EnterFatalSection(HLERequestContext& ctx) { diff --git a/src/core/hle/service/es/es.cpp b/src/core/hle/service/es/es.cpp index 446f46b3c..9eaae4c4b 100644 --- a/src/core/hle/service/es/es.cpp +++ b/src/core/hle/service/es/es.cpp @@ -122,20 +122,18 @@ private: } void ImportTicket(HLERequestContext& ctx) { - const auto ticket = ctx.ReadBuffer(); + const auto raw_ticket = ctx.ReadBuffer(); [[maybe_unused]] const auto cert = ctx.ReadBuffer(1); - if (ticket.size() < sizeof(Core::Crypto::Ticket)) { + if (raw_ticket.size() < sizeof(Core::Crypto::Ticket)) { LOG_ERROR(Service_ETicket, "The input buffer is not large enough!"); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(ERROR_INVALID_ARGUMENT); return; } - Core::Crypto::Ticket raw{}; - std::memcpy(&raw, ticket.data(), sizeof(Core::Crypto::Ticket)); - - if (!keys.AddTicketPersonalized(raw)) { + Core::Crypto::Ticket ticket = Core::Crypto::Ticket::Read(raw_ticket); + if (!keys.AddTicket(ticket)) { LOG_ERROR(Service_ETicket, "The ticket could not be imported!"); IPC::ResponseBuilder rb{ctx, 2}; rb.Push(ERROR_INVALID_ARGUMENT); diff --git a/src/core/hle/service/mii/mii_manager.cpp b/src/core/hle/service/mii/mii_manager.cpp index 46125d473..6b966f20d 100644 --- a/src/core/hle/service/mii/mii_manager.cpp +++ b/src/core/hle/service/mii/mii_manager.cpp @@ -21,7 +21,7 @@ constexpr Result ERROR_CANNOT_FIND_ENTRY{ErrorModule::Mii, 4}; constexpr std::size_t BaseMiiCount{2}; constexpr std::size_t DefaultMiiCount{RawData::DefaultMii.size()}; -constexpr MiiStoreData::Name DefaultMiiName{u'y', u'u', u'z', u'u'}; +constexpr MiiStoreData::Name DefaultMiiName{u'n', u'o', u' ', u'n', u'a', u'm', u'e'}; constexpr std::array<u8, 8> HairColorLookup{8, 1, 2, 3, 4, 5, 6, 7}; constexpr std::array<u8, 6> EyeColorLookup{8, 9, 10, 11, 12, 13}; constexpr std::array<u8, 5> MouthColorLookup{19, 20, 21, 22, 23}; diff --git a/src/core/hle/service/mii/raw_data.cpp b/src/core/hle/service/mii/raw_data.cpp index 1442280c8..80369cdb0 100644 --- a/src/core/hle/service/mii/raw_data.cpp +++ b/src/core/hle/service/mii/raw_data.cpp @@ -5,109 +5,7 @@ namespace Service::Mii::RawData { -const std::array<Service::Mii::DefaultMii, 8> DefaultMii{ - Service::Mii::DefaultMii{ - .face_type = 0, - .face_color = 0, - .face_wrinkle = 0, - .face_makeup = 0, - .hair_type = 33, - .hair_color = 1, - .hair_flip = 0, - .eye_type = 2, - .eye_color = 0, - .eye_scale = 4, - .eye_aspect = 3, - .eye_rotate = 4, - .eye_x = 2, - .eye_y = 12, - .eyebrow_type = 6, - .eyebrow_color = 1, - .eyebrow_scale = 4, - .eyebrow_aspect = 3, - .eyebrow_rotate = 6, - .eyebrow_x = 2, - .eyebrow_y = 10, - .nose_type = 1, - .nose_scale = 4, - .nose_y = 9, - .mouth_type = 23, - .mouth_color = 0, - .mouth_scale = 4, - .mouth_aspect = 3, - .mouth_y = 13, - .mustache_type = 0, - .beard_type = 0, - .beard_color = 0, - .mustache_scale = 4, - .mustache_y = 10, - .glasses_type = 0, - .glasses_color = 0, - .glasses_scale = 4, - .glasses_y = 10, - .mole_type = 0, - .mole_scale = 4, - .mole_x = 2, - .mole_y = 20, - .height = 64, - .weight = 64, - .gender = Gender::Male, - .favorite_color = 0, - .region = 0, - .font_region = FontRegion::Standard, - .type = 0, - }, - Service::Mii::DefaultMii{ - .face_type = 0, - .face_color = 0, - .face_wrinkle = 0, - .face_makeup = 0, - .hair_type = 12, - .hair_color = 1, - .hair_flip = 0, - .eye_type = 4, - .eye_color = 0, - .eye_scale = 4, - .eye_aspect = 3, - .eye_rotate = 3, - .eye_x = 2, - .eye_y = 12, - .eyebrow_type = 0, - .eyebrow_color = 1, - .eyebrow_scale = 4, - .eyebrow_aspect = 3, - .eyebrow_rotate = 6, - .eyebrow_x = 2, - .eyebrow_y = 10, - .nose_type = 1, - .nose_scale = 4, - .nose_y = 9, - .mouth_type = 23, - .mouth_color = 0, - .mouth_scale = 4, - .mouth_aspect = 3, - .mouth_y = 13, - .mustache_type = 0, - .beard_type = 0, - .beard_color = 0, - .mustache_scale = 4, - .mustache_y = 10, - .glasses_type = 0, - .glasses_color = 0, - .glasses_scale = 4, - .glasses_y = 10, - .mole_type = 0, - .mole_scale = 4, - .mole_x = 2, - .mole_y = 20, - .height = 64, - .weight = 64, - .gender = Gender::Female, - .favorite_color = 0, - .region = 0, - .font_region = FontRegion::Standard, - .type = 0, - }, +const std::array<Service::Mii::DefaultMii, 6> DefaultMii{ Service::Mii::DefaultMii{ .face_type = 0, .face_color = 4, diff --git a/src/core/hle/service/mii/raw_data.h b/src/core/hle/service/mii/raw_data.h index c2bec68d4..5b81b013b 100644 --- a/src/core/hle/service/mii/raw_data.h +++ b/src/core/hle/service/mii/raw_data.h @@ -9,7 +9,7 @@ namespace Service::Mii::RawData { -extern const std::array<Service::Mii::DefaultMii, 8> DefaultMii; +extern const std::array<Service::Mii::DefaultMii, 6> DefaultMii; extern const std::array<Service::Mii::RandomMiiData4, 18> RandomMiiFaceline; extern const std::array<Service::Mii::RandomMiiData3, 6> RandomMiiFacelineColor; extern const std::array<Service::Mii::RandomMiiData4, 18> RandomMiiFacelineWrinkle; diff --git a/src/core/hle/service/nvdrv/core/nvmap.cpp b/src/core/hle/service/nvdrv/core/nvmap.cpp index a51ca5444..0ca05257e 100644 --- a/src/core/hle/service/nvdrv/core/nvmap.cpp +++ b/src/core/hle/service/nvdrv/core/nvmap.cpp @@ -160,8 +160,8 @@ u32 NvMap::PinHandle(NvMap::Handle::Id handle) { u32 address{}; auto& smmu_allocator = host1x.Allocator(); auto& smmu_memory_manager = host1x.MemoryManager(); - while (!(address = - smmu_allocator.Allocate(static_cast<u32>(handle_description->aligned_size)))) { + while ((address = smmu_allocator.Allocate( + static_cast<u32>(handle_description->aligned_size))) == 0) { // Free handles until the allocation succeeds std::scoped_lock queueLock(unmap_queue_lock); if (auto freeHandleDesc{unmap_queue.front()}) { diff --git a/src/core/hle/service/ssl/ssl_backend_schannel.cpp b/src/core/hle/service/ssl/ssl_backend_schannel.cpp index d834a0c1f..212057cfc 100644 --- a/src/core/hle/service/ssl/ssl_backend_schannel.cpp +++ b/src/core/hle/service/ssl/ssl_backend_schannel.cpp @@ -477,7 +477,8 @@ public: return ResultInternalError; } PCCERT_CONTEXT some_cert = nullptr; - while ((some_cert = CertEnumCertificatesInStore(returned_cert->hCertStore, some_cert))) { + while ((some_cert = CertEnumCertificatesInStore(returned_cert->hCertStore, some_cert)) != + nullptr) { out_certs->emplace_back(static_cast<u8*>(some_cert->pbCertEncoded), static_cast<u8*>(some_cert->pbCertEncoded) + some_cert->cbCertEncoded); |