es: Implement ETicket CountCommonTicket (9)

Returns the number of common (non-console-unique) tickets in the KeyManager.
This commit is contained in:
Zach Hilman 2019-04-10 14:02:27 -04:00
parent 475a7a4446
commit 71bc2182c2
1 changed files with 12 additions and 1 deletions

View File

@ -24,7 +24,7 @@ public:
{6, nullptr, "DeleteAllPersonalizedTicket"}, {6, nullptr, "DeleteAllPersonalizedTicket"},
{7, nullptr, "DeleteAllPersonalizedTicketEx"}, {7, nullptr, "DeleteAllPersonalizedTicketEx"},
{8, &ETicket::GetTitleKey, "GetTitleKey"}, {8, &ETicket::GetTitleKey, "GetTitleKey"},
{9, nullptr, "CountCommonTicket"}, {9, &ETicket::CountCommonTicket, "CountCommonTicket"},
{10, nullptr, "CountPersonalizedTicket"}, {10, nullptr, "CountPersonalizedTicket"},
{11, nullptr, "ListCommonTicket"}, {11, nullptr, "ListCommonTicket"},
{12, nullptr, "ListPersonalizedTicket"}, {12, nullptr, "ListPersonalizedTicket"},
@ -122,6 +122,17 @@ private:
rb.Push(RESULT_SUCCESS); rb.Push(RESULT_SUCCESS);
} }
void CountCommonTicket(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_ETicket, "called");
keys.PopulateTickets();
const auto count = keys.GetCommonTickets().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) {