mikage-dev/source/platform/am.hpp
2024-03-08 10:54:13 +01:00

102 lines
2.7 KiB
C++

#pragma once
#include "ipc.hpp"
namespace Platform {
/**
* Application Manager: Interface used most prominently by the Home Menu to
* get information about installed titles
*/
namespace AM {
// All IPC commands in this module have unique command IDs and hence
// are not put in per-service namespaces
namespace IPC = Platform::IPC;
/**
* Inputs:
* - Media Type
*
* Outputs:
* - Number of title IDs for this media type
*/
struct GetNumPrograms : IPC::IPCCommand<0x1>::add_uint32
::response::add_uint32 {};
/**
* Inputs:
* - Maximum title count
* - Media Type
*
* Outputs:
* - Number of title IDs actually returned
* - Title IDs
*/
struct GetProgramList : IPC::IPCCommand<0x2>::add_uint32::add_uint32::add_buffer_mapping_write
::response::add_uint32::add_buffer_mapping_write {};
/**
* Inputs:
* - Media Type
* - Number of titles to query ProgramInfos for
* - List of title IDs to query ProgramInfos for
*
* Outputs:
* - ProgramInfos for each input title id
*/
struct GetProgramInfos : IPC::IPCCommand<0x3>::add_uint32::add_uint32::add_buffer_mapping_read::add_buffer_mapping_write
::response::add_uint32::add_buffer_mapping_read::add_buffer_mapping_write {};
/**
* Inputs:
* - Media Type
* - Title ID
*
* Outputs:
* - Number of content infos for this title
*/
struct GetDLCContentInfoCount : IPC::IPCCommand<0x1001>::add_uint32::add_uint64
::response::add_uint32 {};
/**
* Inputs:
* - Number of content infos to read
* - Media Type
* - Title ID
* - Offset (index of first content info to read?)
* - Output buffer
*
* Outputs:
* - Number of content infos read
*/
struct ListDLCContentInfos : IPC::IPCCommand<0x1003>::add_uint32::add_uint32::add_uint64::add_uint32::add_buffer_mapping_write
::response::add_uint32::add_buffer_mapping_write {};
/**
* Inputs:
* - Media Type
* - Number of titles in the input list
* - Title IDs to get title infos for
* - Output buffer for title infos
*/
struct GetDLCTitleInfos : IPC::IPCCommand<0x1005>::add_uint32::add_uint32::add_buffer_mapping_read::add_buffer_mapping_write
::response::add_buffer_mapping_read::add_buffer_mapping_write {};
/**
* Inputs:
* - Number of ticket infos to get
* - Title ID
* - Offset (index of first ticket to get?)
* - Output buffer for ticket infos
*
* Outputs:
* - Number of ticket infos read for this title
*/
struct ListDataTitleTicketInfos : IPC::IPCCommand<0x1007>::add_uint32::add_uint64::add_uint32::add_buffer_mapping_write
::response::add_uint32::add_buffer_mapping_write {};
} // namespace AM
} // namespace Platform