dolphin/Source/Core
Léo Lam d8b9b3825c IOS HLE: Add resource request structs
This adds well-defined structs that are responsible for parsing
resource requests, instead of duplicating the logic and offsets all
over IOS HLE. Command handler functions are now passed parsed requests
instead of a command address.

This may not seem like a very important change, but it removes the
need to remember all of the struct offsets or copy/paste existing
struct request variables. It also prevents nasty bugs which have
occurred in the past, such as parsing an ioctl as if it were an ioctlv
(that's way too easy to do if you pass command addresses directly);
or writing something to 0x0, which can easily happen by mistake with
a close handler that can be called with invalid command addresses.

Bonus changes:

- The return code is not an obscure Memory::Write_U32 anymore, but an
  explicit, more obvious SetReturnValue() call. (Which correctly takes
  a s32 instead of a u32, since return codes are signed.)

- Open handlers are now only responsible for returning an IOS ret code,
  and Close handlers don't return anything and don't have to worry
  about checking whether the request is a real one anymore.

- DumpAsync was moved to the ioctlv request struct, because it did
  not really make sense to make it part of the IOS device and it only
  works for ioctlvs.
  All current usages have been removed; they will be readded in a
  later commit.

As of this commit, nothing uses the structs yet. Usages will be
migrated progressively.
2017-01-16 23:55:52 +01:00
..
AudioCommon Add Silent Audio Dumping INI Option 2017-01-08 13:53:44 -05:00
Common Merge pull request #4658 from lioncash/bits 2017-01-15 17:23:30 +01:00
Core IOS HLE: Add resource request structs 2017-01-16 23:55:52 +01:00
DiscIO DiscIO: Export GetKeyFromTicket 2017-01-14 17:06:40 +01:00
DolphinQt2 DiscIO: Add GetRegion function and Region enum 2017-01-02 20:57:11 +01:00
DolphinWX MemoryView: Get rid of a type-punning cast from u32 to float 2017-01-15 12:16:41 -05:00
InputCommon macOS: Add missing includes to fix no-PCH build 2017-01-02 11:45:24 +11:00
UICommon Fix missing includes 2016-10-07 23:46:41 +02:00
VideoBackends Merge pull request #4496 from Mystro256/master 2017-01-13 23:13:08 +13:00
VideoCommon Merge pull request #4656 from hthh/cmpr-fixes 2017-01-17 11:05:42 +13:00
CMakeLists.txt