Leituras assíncronas de arquivo do kernel
A API de AIO do kernel aceita um lote de leituras e devolve um identificador. O PS5PCEM executa o lote no momento do envio, o que a interface permite, e o título recolhe um resultado já terminado.
Notas do repositório até 10 de outubro de 2026
A interface
Motores que transmitem recursos enviam uma lista de leituras e depois perguntam se o lote terminou. Um título feito assim não consegue carregar um arquivo sem a API. O PS5PCEM aceita o lote, executa as leituras quando ele é enviado e guarda os resultados sob o identificador. Uma consulta posterior observa um lote que já foi concluído.
Concluir imediatamente é um desfecho legal da interface. Quem chama é obrigado a tratar um pedido que terminou antes da consulta. O emulador não dorme para imitar a latência do dispositivo e não informa o lote como falho para parecer mais assíncrono.
Como isso difere do APR
O AIO do kernel é o lote no estilo POSIX sobre descritores de arquivo que o título já abriu. O APR é o caminho do acelerador: caminhos viram identificadores, e os comandos vivem num buffer de comandos AMPR com contadores e eventos de conclusão. Um título pode usar qualquer um dos dois, ou ambos.
Os dois caminhos leem a instalação do título como dados que o emulador não produziu. Os limites são verificados. Um buffer curto ou um descritor inválido é um retorno de erro, não uma escrita parcial apresentada como sucesso.
O que está implementado
- Envio em lote, um identificador e uma conclusão que o título pode recolher.
- Leituras feitas contra os arquivos que o título abriu.
- Conclusão imediata, que a API convidada permite.
O que ainda falta
- Não há uma thread de E/S separada imitando a latência do disco.
- O escalonador de prioridade e de banda do console não é modelado.
- Buffers de comando APR são uma API diferente e não são reescritos como AIO do kernel.
Mecanismos relacionados
O que estas páginas descrevem