Identifiants de fichiers et lectures APR
APR résout un fichier de titre une fois, puis transporte un identifiant local au processus dans les tampons de commandes ultérieurs. Les lectures AMPR différées rouvrent ce même fichier /app0 en lecture seule sans conserver un descripteur hôte pour toujours.
Notes du dépôt jusqu’au 10 octobre 2026
Des identifiants plutôt que des chemins
L'API de l'accélérateur ne veut pas un chemin dans chaque commande. Le titre résout un chemin, reçoit un identifiant de fichier compact, et place cet identifiant dans les commandes de lecture qu'il soumet ensuite. PS5PCEM conserve le chemin et la taille du fichier à côté de l'identifiant. La table est locale au processus. Les chemins hôtes ne sont pas rendus à l'invité.
Les fichiers viennent du montage /app0 en lecture seule du titre. Une entrée résolue peut être rouverte quand une lecture différée s'exécute, de sorte que l'émulateur n'a pas à conserver chaque descripteur pendant toute la durée de vie du processus. La table mise en cache contient jusqu'à 64 fichiers.
Tampons de commandes
Une soumission est un tampon de commandes invité, pas un seul appel de lecture. PS5PCEM accepte jusqu'à 32 tampons de commandes vivants. Chaque tampon est borné : 32 lectures, 32 écritures, 32 mappages, 32 enregistrements d'achèvement et 128 opérations. Jusqu'à 64 soumissions peuvent être en vol, et un pool automatique contient huit tampons. Une lecture nomme l'identifiant de fichier, une destination invitée, une taille et un décalage dans le fichier, et elle peut nommer une adresse qui reçoit le nombre d'octets.
Le lecteur rejette un identifiant inconnu, un fichier manquant, un tampon de commandes trop court ou mal aligné, et une requête qui sortirait du fichier ou de la destination. Une lecture unique est plafonnée à 4 GiB, ce qui est la limite de l'interface, pas une promesse qu'un titre émet des lectures de cette taille. Les commandes de mappage utilisent la taille de page AMM de 16 KiB que l'invité attend.
Comment APR rejoint AMPR
APR possède la table des fichiers et la durée de vie des tampons de commandes. AMPR possède les compteurs, les attentes et les événements d'achèvement qui disent au titre que le travail est fini. Un titre peut mettre en file de nombreuses lectures de fichiers, puis attendre un compteur que la commande d'achèvement met à jour. Le premier démarrage de Grand Theft Auto III est le grand cas observé : les lectures passent par ce chemin, et les événements d'achèvement reviennent par la file AMPR.
Les E/S asynchrones du noyau, l'autre API de fichiers, font l'objet d'une page distincte. APR est le flux de commandes de l'accélérateur. L'API de lots du noyau est la liste de requêtes de style POSIX.
Ce qui est en place
- Identifiants de fichiers locaux au processus pour les chemins /app0 en lecture seule, la taille étant conservée pour les lectures ultérieures.
- Tampons de commandes bornés pour les lectures, les écritures, les mappages et les enregistrements d'achèvement.
- Lectures différées qui rouvrent le même fichier de titre.
- Rejet contrôlé des fichiers inconnus, des dépassements et des tampons mal formés.
Ce qui manque encore
- Le chemin est une exécution logicielle du tampon de commandes, pas le moteur DMA de la console.
- Les fichiers de paquet inscriptibles sont en dehors de /app0. Les sauvegardes passent par le montage savedata.
- Un fichier que le résolveur n'a pas vu ne peut pas être inventé à partir d'un identifiant nu.
Mécanismes liés
Ce que ces pages décrivent