Line 456:
Line 456:
|<code>int IOS_Ioctl(int fd, uint32_t request, void *input_buf, uint32_t input_buf_len, void *output_buf, uint32_t output_buf_len)</code>
|<code>int IOS_Ioctl(int fd, uint32_t request, void *input_buf, uint32_t input_buf_len, void *output_buf, uint32_t output_buf_len)</code>
|Sends an ioctl request to an IOS device node fd; input_buf contains the input data for the request, output_buf cointains what the request returns
|Sends an ioctl request to an IOS device node fd; input_buf contains the input data for the request, output_buf cointains what the request returns
+
|}
+
+
===MCP===
+
{| class="wikitable"
+
!Name
+
!Prototype
+
!Description
+
|-
+
|MCP_Open
+
|int MCP_Open()
+
|Opens an handle to the MCP IOS node
+
|-
+
|MCP_Close
+
|int MCP_Close(int handle)
+
|Closes an handle to the MCP IOS node
+
|-
+
|MCP_DeviceList
+
|int MCP_DeviceList(int handle, int *numDevices, MCPDeviceList *outDevices, uint32_t outBufferSize)
+
|Gets a list of available devices
+
|-
+
|MCP_FullDeviceList
+
|int MCP_FullDeviceList(int handle, int *numDevices, MCPDeviceList *outDevices, uint32_t outBufferSize)
+
|Gets the full list of available devices
+
|-
+
|MCP_InstallSetTargetDevice
+
|int MCP_InstallSetTargetDevice(int handle, MCPInstallTarget device)
+
|Sets the the target device for title installation
+
|-
+
|MCP_InstallGetTargetDevice
+
|int MCP_InstallGetTargetDevice(int handle, MCPInstallTarget *deviceOut)
+
|Gets the target device for title installation
+
|-
+
|MCP_InstallSetTargetUsb
+
|int MCP_InstallSetTargetUsb(int handle, int usb)
+
|Sets the target USB device for installation
+
|-
+
|MCP_InstallGetInfo
+
|int MCP_InstallGetInfo(int handle, char *path, MCPInstallInfo *out)
+
|Gets informations about the install operation
+
|-
+
|MCP_InstallTitleAsync
+
|int MCP_InstallTitleAsync(int handle, char *path, MCPInstallInfo *out)
+
|Installs a title
+
|-
+
|MCP_InstallGetProgress
+
|int MCP_InstallGetProgress(int handle, MCPInstallProgress *installProgressOut)
+
|Gets installation progress
+
|-
+
|MCP_InstallTitleAbort
+
|int MCP_InstallTitleAbort(int handle)
+
|Aborts the installation of a title
+
|-
+
|MCP_UninstallTitleAsync
+
|int MCP_UninstallTitleAsync(int handle, char *path, MCPInstallInfo *out)
+
|Uninstalls a title
|}
|}
Line 970:
Line 1,025:
|The buffer number for the first Gamepad
|The buffer number for the first Gamepad
|}
|}
+
+
=== MCP ===
+
<syntaxhighlight lang="C">
+
typedef enum MCPInstallTarget {
+
MCP_INSTALL_TARGET_MLC = 0,
+
MCP_INSTALL_TARGET_USB = 1,
+
} MCPInstallTarget;
+
+
typedef struct MCPInstallProgress {
+
uint32_t inProgress;
+
uint64_t tid;
+
uint64_t sizeTotal;
+
uint64_t sizeProgress;
+
uint32_t contentsTotal;
+
uint32_t contentsProgress;
+
} MCPInstallProgress;
+
+
typedef struct MCPInstallInfo {
+
char unknown[0x27F];
+
} MCPInstallInfo;
+
+
typedef struct MCPDevice {
+
char name[0x31B];
+
} MCPDevice;
+
+
typedef struct MCPDeviceList {
+
MCPDevice devices[32];
+
} MCPDeviceList;
+
</syntaxhighlight>