In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Changes

Jump to navigation Jump to search
no edit summary
Line 443: Line 443:  
| 0x2C || 0x2C || IOSError || IOS_RegisterResourceManager || const char* path, [[#IOSMessageQueueId|IOSMessageQueueId]] id
 
| 0x2C || 0x2C || IOSError || IOS_RegisterResourceManager || const char* path, [[#IOSMessageQueueId|IOSMessageQueueId]] id
 
|-
 
|-
| 0x2D || 0x2D || IOSError || [[#SetResourceManagerPermissionGroup|SetResourceManagerPermissionGroup]] || const char* path, u32 id
+
| 0x2D || 0x2D || IOSError || [[#AssociateResourceManager|AssociateResourceManager]] || const char* path, u32 id
 
|-
 
|-
 
| 0x2E || 0x2E || IOSError || SetResourceManagerFlags || const char* path, u32 flags
 
| 0x2E || 0x2E || IOSError || SetResourceManagerFlags || const char* path, u32 flags
Line 451: Line 451:  
| 0x30 || 0x30 || IOSError || ClearClientCapabilities || IOSProcessId id
 
| 0x30 || 0x30 || IOSError || ClearClientCapabilities || IOSProcessId id
 
|-
 
|-
| 0x31 || 0x31 || IOSError || QueryClientCapabilities || IOSProcessId id, u32 feature_id, void *out_buffer
+
| 0x31 || 0x31 || IOSError || GetResourceClientCapabilityByFeatureId || IOSProcessId id, u32 feature_id, [[#IOSResourceClientCapability|IOSResourceClientCapability]] *out
 
|-
 
|-
| 0x32 || 0x32 || IOSError || QueryFeatureId || u32 feature_id, int out_count, void *out_buffer
+
| 0x32 || 0x32 || IOSError || GetResourceManagersByFeatureId || u32 feature_id, u32 max_count, [[#IOSResourceManager|IOSResourceManager]] *out
 
|-
 
|-
 
| 0x33 || 0x33 || [[#IOSFd|IOSFd]] || IOS_Open || const char* path, u32 flags
 
| 0x33 || 0x33 || [[#IOSFd|IOSFd]] || IOS_Open || const char* path, u32 flags
Line 575: Line 575:  
| 0x6E || 0x64 || IOSError || GetThreadProfile || IOSThreadId id, [[#IOSThreadProfile|IOSThreadProfile]] *out
 
| 0x6E || 0x64 || IOSError || GetThreadProfile || IOSThreadId id, [[#IOSThreadProfile|IOSThreadProfile]] *out
 
|-
 
|-
| 0x6F || 0x65 || IOSError || GetThreadProfiles || u32 max_profiles, [[#IOSThreadProfile|IOSThreadProfile]] *out
+
| 0x6F || 0x65 || IOSError || GetThreadProfiles || u32 max_count, [[#IOSThreadProfile|IOSThreadProfile]] *out
 
|-
 
|-
 
| 0x70 ||  || IOSError || GetIobContext || u32 id, IOSIobContext *out_buf
 
| 0x70 ||  || IOSError || GetIobContext || u32 id, IOSIobContext *out_buf
Line 587: Line 587:  
| 0x74 || 0x68 || IOSError || GetResourcePerProcessUtilization || [[#IOSResourcePerProcessUtilization|IOSResourcePerProcessUtilization]]* out, IOSProcessId id, bool clear   
 
| 0x74 || 0x68 || IOSError || GetResourcePerProcessUtilization || [[#IOSResourcePerProcessUtilization|IOSResourcePerProcessUtilization]]* out, IOSProcessId id, bool clear   
 
|-
 
|-
| 0x75 || 0x69 || IOSError || IOS_GetTimerUtilization ||
+
| 0x75 || 0x69 || IOSError || IOS_GetTimerUtilization || [[#IOSTimerUtilization|IOSTimerUtilization]] *out
 
|-
 
|-
| 0x76 || 0x6A || IOSError || IOS_GetSemaphoreUtilization ||
+
| 0x76 || 0x6A || IOSError || IOS_GetSemaphoreUtilization || [[#IOSSemaphoreUtilization|IOSSemaphoreUtilization]] *out
 
|-
 
|-
 
| 0x77 || 0x6B || IOSError || GetHeapProfile || IOSHeapId id, [[#IOSHeapProfile|IOSHeapProfile]] *profile
 
| 0x77 || 0x6B || IOSError || GetHeapProfile || IOSHeapId id, [[#IOSHeapProfile|IOSHeapProfile]] *profile
Line 623: Line 623:  
| 0x86 || 0x7A || IOSSecurityLevel || GetSecurityLevel ||
 
| 0x86 || 0x7A || IOSSecurityLevel || GetSecurityLevel ||
 
|-
 
|-
| 0x87 || 0x7B || IOSError || GetOpenResourceHandles || u32 out_count, [[#IOSOpenResourceHandle|IOSOpenResourceHandle]] *out, IOSProcessId id
+
| 0x87 || 0x7B || IOSError || GetResourceOpenHandles || u32 max_count, [[#IOSResourceOpenHandle|IOSResourceOpenHandle]] *out, IOSProcessId id
 
|-
 
|-
 
| 0x88 || 0x7C || IOSError || SetMainTitleSdkVersion || u32 version
 
| 0x88 || 0x7C || IOSError || SetMainTitleSdkVersion || u32 version
Line 629: Line 629:  
| 0x89 || 0x7D || u32 || GetMainTitleSdkVersion ||
 
| 0x89 || 0x7D || u32 || GetMainTitleSdkVersion ||
 
|-
 
|-
| 0x8A || 0x7E || IOSError || GetDynamicHeapAccess ||  
+
| 0x8A || 0x7E || IOSError || IsCrossProcessHeap || void *ptr, u32 size
 
|-
 
|-
 
| 0x8B || 0x7F || IOSError || HandleDebugInterrupt || const char *dbg_sts, u32 dbg_sts_size, [[#IOSMessageQueueId|IOSMessageQueueId]] id, [[#IOSMessage|IOSMessage]] message
 
| 0x8B || 0x7F || IOSError || HandleDebugInterrupt || const char *dbg_sts, u32 dbg_sts_size, [[#IOSMessageQueueId|IOSMessageQueueId]] id, [[#IOSMessage|IOSMessage]] message
Line 637: Line 637:  
| 0x8D || 0x81 || IOSError || ||  
 
| 0x8D || 0x81 || IOSError || ||  
 
|-
 
|-
| 0x8E || 0x82 || IOSError || GetResourceViolations || u32 max_violations, [[#IOSResourceViolation|IOSResourceViolation]] *violations
+
| 0x8E || 0x82 || IOSError || GetViolatingResourceManagers || u32 max_count, [[#IOSResourceManager|IOSResourceManager]] *out
 
|-
 
|-
 
| 0x8F || 0x83 || u32 || GetClientHandles || char *dev_node
 
| 0x8F || 0x83 || u32 || GetClientHandles || char *dev_node
Line 643: Line 643:  
| 0x90 || 0x84 || IOSError || DisableDeviceRegistration || bool disable
 
| 0x90 || 0x84 || IOSError || DisableDeviceRegistration || bool disable
 
|-
 
|-
| 0x91 || 0x85 || IOSError || GetPendingResourceRequests || u32 max_requests, [[#IOSPendingResourceRequest|IOSPendingResourceRequest]] *requests, IOSProcessId id
+
| 0x91 || 0x85 || IOSError || GetPendingResourceRequests || u32 max_count, [[#IOSPendingResourceRequest|IOSPendingResourceRequest]] *requests, IOSProcessId id
 
|-
 
|-
 
| 0x92 || 0x86 || IOSError || [[#InitializeIOS|InitializeIOS]] ||  
 
| 0x92 || 0x86 || IOSError || [[#InitializeIOS|InitializeIOS]] ||  
Line 680: Line 680:  
Read data from the [[#Hardware/eFuse|eFuses]]. This can only be used from the IOS-CRYPTO process.
 
Read data from the [[#Hardware/eFuse|eFuses]]. This can only be used from the IOS-CRYPTO process.
   −
=== SetResourceManagerPermissionGroup ===
+
=== AssociateResourceManager ===
 
Associates a resource manager to the specified group ID. This ID appears to correspond to the cos.xml permissions groupid? This syscall isn't used with devices that don't require any permissions(and are PowerPC-accessible) it seems. It appears when this ID isn't listed in the cos.xml groupids at all, the device is ARM-only.
 
Associates a resource manager to the specified group ID. This ID appears to correspond to the cos.xml permissions groupid? This syscall isn't used with devices that don't require any permissions(and are PowerPC-accessible) it seems. It appears when this ID isn't listed in the cos.xml groupids at all, the device is ARM-only.
   Line 1,104: Line 1,104:  
| 0xC || 0x2 * 14 || PerPidUtilization
 
| 0xC || 0x2 * 14 || PerPidUtilization
 
|}
 
|}
 +
    
== IOSEvent ==
 
== IOSEvent ==
Line 1,130: Line 1,131:  
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 ||
+
| 0x0 || 0x20 || Path
|-
  −
| 0x4 || 0x4 ||
  −
|-
  −
| 0x8 || 0x4 ||
   
|-
 
|-
| 0xC || 0x4 || Owner
+
| 0x20 || 0x4 || Pid
 
|-
 
|-
| 0x10 || 0x4 || OpenHandles
+
| 0x24 || 0x4 || Owner
 
|-
 
|-
| 0x14 || 0x4 || OpenHandlesWaterline
+
| 0x28 || 0x4 || BusyCloseViolations
 
|-
 
|-
| 0x18 || 0x4 || MaxOpenHandles
+
| 0x2C || 0x4 || ActiveTxnCount
 
|-
 
|-
| 0x1C || 0x10 * 96 || [[#IOSResourceHandle|OpenHandles]]
+
| 0x30 || 0x4 || OpenHandles
|-
  −
| 0x61C || 0x4 || ActiveTxns
  −
|-
  −
| 0x620 || 0x4 || ActiveTxnWaterline
  −
|-
  −
| 0x624 || 0x4 || TotalTxnAllocFailures
  −
|-
  −
| 0x628 || 0x4 || MaxActiveTxns
  −
|-
  −
| 0x62C || 0xC * 20 ||
  −
|-
  −
| 0x71C || 0x4 || RegisteredResources
  −
|-
  −
| 0x720 || 0x4 || MaxRegisteredResources
  −
|-
  −
| 0x724 || 0x4 || InvalidResourceReplies
   
|}
 
|}
   Line 1,201: Line 1,182:  
|-
 
|-
 
| 0xC || 0xB4 * 256 || [[#IOSResourceTransaction|Txns]]
 
| 0xC || 0xB4 * 256 || [[#IOSResourceTransaction|Txns]]
 +
|}
 +
 +
== IOSActiveResourceHandleManager ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 ||
 +
|-
 +
| 0x4 || 0x4 ||
 +
|-
 +
| 0x8 || 0x4 ||
 +
|-
 +
| 0xC || 0x4 || Owner
 +
|-
 +
| 0x10 || 0x4 || OpenHandles
 +
|-
 +
| 0x14 || 0x4 || OpenHandlesWaterline
 +
|-
 +
| 0x18 || 0x4 || MaxOpenHandles
 +
|-
 +
| 0x1C || 0x10 * 96 || [[#IOSResourceHandle|Handles]]
 +
|-
 +
| 0x61C || 0x4 || ActiveTxns
 +
|-
 +
| 0x620 || 0x4 || ActiveTxnWaterline
 +
|-
 +
| 0x624 || 0x4 || TotalTxnAllocFailures
 +
|-
 +
| 0x628 || 0x4 || MaxActiveTxns
 +
|-
 +
| 0x62C || 0xC * 20 ||
 +
|-
 +
| 0x71C || 0x4 || RegisteredResources
 +
|-
 +
| 0x720 || 0x4 || MaxRegisteredResources
 +
|-
 +
| 0x724 || 0x4 || InvalidResourceReplies
 
|}
 
|}
   Line 1,323: Line 1,342:  
|}
 
|}
   −
== IOSResourceViolation ==
+
== IOSResourceOpenHandle ==
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x20 || Path
+
| 0x0 || 0x4 || Pid
 
|-
 
|-
| 0x20 || 0x4 || Owner
+
| 0x4 || 0x4 || ClientFd
 
|-
 
|-
| 0x24 || 0x4 || RmOwner
+
| 0x8 || 0x4 || ServerHandle
 
|-
 
|-
| 0x28 || 0x4 ||
+
| 0xC || 0x20 || State
|-
  −
| 0x2C || 0x4 ||
  −
|-
  −
| 0x30 || 0x4 ||  
   
|}
 
|}
   −
== IOSOpenResourceHandle ==
+
== IOSResourceClientCapability ==
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || Pid
+
| 0x0 || 0x4 ||  
 
|-
 
|-
| 0x4 || 0x4 || ClientFd
+
| 0x4 || 0x4 ||  
|-
  −
| 0x8 || 0x4 || ServerHandle
  −
|-
  −
| 0xC || 0x20 || State
   
|}
 
|}
   Line 1,554: Line 1,565:  
|-
 
|-
 
| 0x18 || 0x4 || Microsecond
 
| 0x18 || 0x4 || Microsecond
 +
|}
 +
 +
== IOSTimerUtilization ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || MaxCount
 +
|-
 +
| 0x4 || 0x4 || AllocatedCount
 +
|-
 +
| 0x8 || 0x4 || MaxAllocatedCount
 +
|-
 +
| 0xC || 0x2 * 14 || PerPidUtilization
 +
|}
 +
 +
== IOSSemaphoreUtilization ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || MaxCount
 +
|-
 +
| 0x4 || 0x4 || AllocatedCount
 +
|-
 +
| 0x8 || 0x4 || MaxAllocatedCount
 +
|-
 +
| 0xC || 0x2 * 14 || PerPidUtilization
 
|}
 
|}
  

Navigation menu