ipc: low-level IPC functions to communicate with IOS while keeping track of timing information. libogc functions are not used to be able to measure ack, reply and interrupt timing separately and because libogc itself introduces some overhead since it uses a complex queue system.
ipc_timing: The IPC timing tests for ACKs and replies from the kernel in various cases.
Other tests for IOS services will be added in the future and will make use of the (currently) unused functions.
This adds the IOS IPC timing tests that were used for https://github.com/dolphin-emu/dolphin/pull/6409.
There are two parts to the PR:
ipc
: low-level IPC functions to communicate with IOS while keeping track of timing information. libogc functions are not used to be able to measure ack, reply and interrupt timing separately and because libogc itself introduces some overhead since it uses a complex queue system.ipc_timing
: The IPC timing tests for ACKs and replies from the kernel in various cases.Other tests for IOS services will be added in the future and will make use of the (currently) unused functions.