IOS/ES: Handle contexts properly

This changes the IOS code to handle ES contexts inside of ES, instead
of leaking out implementation details into the IPC request dispatcher.

The intent is to clarify what's shared between every single ES context,
and what is specific to an ES context. (Not much.) This should reduce
the number of static members in the ES class.

The other changes are there just because we now keep track of the
IPC FD inside of ES.

Future plans:

* After the WAD direct launch hack is dropped, the title context
  will be made a class member.

* Have proper function prototypes, instead of having every single one
  of them take ioctlv requests. This will allow reusing IOS code in
  other parts of the Dolphin codebase without having to construct
  ioctlv requests.
This commit is contained in:
Léo Lam 2017-04-27 21:22:04 +02:00
commit c4136d0365
23 changed files with 241 additions and 222 deletions

View file

@ -71,7 +71,7 @@ static Common::Event g_compressAndDumpStateSyncEvent;
static std::thread g_save_thread;
// Don't forget to increase this after doing changes on the savestate system
static const u32 STATE_VERSION = 81; // Last changed in PR 5317
static const u32 STATE_VERSION = 82; // Last changed in PR 5333
// Maps savestate versions to Dolphin versions.
// Versions after 42 don't need to be added to this list,