es: Implement ETicket CountPersonalizedTicket (10)

Returns the number of personalized (console/user-unique) tickets in the KeyManager.
This commit is contained in:
Zach Hilman 2019-04-10 14:03:08 -04:00
parent 71bc2182c2
commit 11f45e6015
1 changed files with 12 additions and 1 deletions

View File

@ -25,7 +25,7 @@ public:
{7, nullptr, "DeleteAllPersonalizedTicketEx"}, {7, nullptr, "DeleteAllPersonalizedTicketEx"},
{8, &ETicket::GetTitleKey, "GetTitleKey"}, {8, &ETicket::GetTitleKey, "GetTitleKey"},
{9, &ETicket::CountCommonTicket, "CountCommonTicket"}, {9, &ETicket::CountCommonTicket, "CountCommonTicket"},
{10, nullptr, "CountPersonalizedTicket"}, {10, &ETicket::CountPersonalizedTicket, "CountPersonalizedTicket"},
{11, nullptr, "ListCommonTicket"}, {11, nullptr, "ListCommonTicket"},
{12, nullptr, "ListPersonalizedTicket"}, {12, nullptr, "ListPersonalizedTicket"},
{13, nullptr, "ListMissingPersonalizedTicket"}, {13, nullptr, "ListMissingPersonalizedTicket"},
@ -133,6 +133,17 @@ private:
rb.Push<u32>(count); rb.Push<u32>(count);
} }
void CountPersonalizedTicket(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_ETicket, "called");
keys.PopulateTickets();
const auto count = keys.GetPersonalizedTickets().size();
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
rb.Push<u32>(count);
}
}; };
void InstallInterfaces(SM::ServiceManager& service_manager) { void InstallInterfaces(SM::ServiceManager& service_manager) {