Changes

Jump to navigation Jump to search
912 bytes added ,  23:46, 18 August 2019
CreateDeviceAddressSpace 32-bit regs
Line 19: Line 19:  
|  0x7 || [[#svcExitProcess]] || None ||
 
|  0x7 || [[#svcExitProcess]] || None ||
 
|-
 
|-
|  0x8 || [[#svcCreateThread]] || X1=entry, X2=thread_context, X3=stacktop, W4=prio, W5=processor_id || W0=result, W1=handle
+
|  0x8 || [[#svcCreateThread]] || X1=entry, X2=thread_context, X3=stacktop, W4=prio, W5=processor_id
 +
R0=prio, R1=entry, R2=thread_context, R3=stacktop, R4=processor_id
 +
|| W0=result, W1=handle
 
|-
 
|-
 
|  0x9 || [[#svcStartThread]] || W0=thread_handle || W0=result
 
|  0x9 || [[#svcStartThread]] || W0=thread_handle || W0=result
Line 138: Line 140:  
| 0x3D || [4.0.0+] svcDumpInfoNew || ||
 
| 0x3D || [4.0.0+] svcDumpInfoNew || ||
 
|- style="border-top: double"
 
|- style="border-top: double"
| 0x40 || svcCreateSession || W2=is_light, X3=? || W0=result, W1=server_handle, W2=client_handle
+
| 0x40 || svcCreateSession || W2=is_light, X3=name_ptr || W0=result, W1=server_handle, W2=client_handle
 
|-
 
|-
 
| 0x41 || [[#svcAcceptSession]] || W1=port_handle || W0=result, W1=session_handle
 
| 0x41 || [[#svcAcceptSession]] || W1=port_handle || W0=result, W1=session_handle
Line 144: Line 146:  
| 0x42 || svcReplyAndReceiveLight || W0=light_session_handle || W0=result, W1,W2,W3,W4,W5,W6,W7=out
 
| 0x42 || svcReplyAndReceiveLight || W0=light_session_handle || W0=result, W1,W2,W3,W4,W5,W6,W7=out
 
|-
 
|-
| 0x43 || [[#svcReplyAndReceive]] || X1=ptr_handles, W2=num_handles, X3=replytarget_handle(0=none), X4=timeout || W0=result, W1=handle_idx
+
| 0x43 || [[#svcReplyAndReceive]] || X1=ptr_handles, W2=num_handles, X3=replytarget_handle(0=none), X4=timeout
 +
R0=timeout_lower32, R1=ptr_handles, R2=num_handles, R3=replytarget_handle(0=none), R4=timeout_upper32
 +
|| W0=result, W1=handle_idx
 
|-
 
|-
| 0x44 || svcReplyAndReceiveWithUserBuffer|| X1=buf, X2=sz, X3=ptr_handles, W4=num_handles, X5=replytarget_handle(0=none), X6=timeout || W0=result, W1=handle_idx
+
| 0x44 || svcReplyAndReceiveWithUserBuffer|| X1=buf, X2=sz, X3=ptr_handles, W4=num_handles, X5=replytarget_handle(0=none), X6=timeout
 +
R0=num_handles, R1=buf, R2=sz, R3=ptr_handles, R4=replytarget_handle(0=none), R5=timeout_lower32, R6=timeout_upper32
 +
|| W0=result, W1=handle_idx
 
|-
 
|-
 
| 0x45 || svcCreateEvent || None || W0=result, W1=wevent_handle, W2=revent_handle
 
| 0x45 || svcCreateEvent || None || W0=result, W1=wevent_handle, W2=revent_handle
Line 158: Line 164:  
| 0x4B || [4.0.0+] [[#svcCreateCodeMemory]] || X1=addr, X2=size || W0=result, W1=code_memory_handle
 
| 0x4B || [4.0.0+] [[#svcCreateCodeMemory]] || X1=addr, X2=size || W0=result, W1=code_memory_handle
 
|-
 
|-
| 0x4C || [4.0.0+] [[#svcControlCodeMemory]] || W0=code_memory_handle, W1=[[#CodeMemoryOperation]], X2=dstaddr, X3=size, W4=perm || W0=result
+
| 0x4C || [4.0.0+] [[#svcControlCodeMemory]] || W0=code_memory_handle, W1=[[#CodeMemoryOperation]], X2=dstaddr, X3=size, W4=perm
 +
R0=code_memory_handle, R1=[[#CodeMemoryOperation]], R2=dstaddr_lower32, R3=dstaddr_upper32, R4=size_lower32, R5=size_upper32, R6=perm
 +
|| W0=result
 
|-
 
|-
 
| 0x4D || svcSleepSystem || None || None
 
| 0x4D || svcSleepSystem || None || None
 
|-
 
|-
| 0x4E || [[#svcReadWriteRegister]] || X1=reg_addr, W2=rw_mask, W3=in_val || W0=result, W1=out_val
+
| 0x4E || [[#svcReadWriteRegister]] || X1=reg_addr, W2=rw_mask, W3=in_val
 +
R0=rw_mask, R1=in_val, R2=reg_addr_lower32, R3=reg_addr_upper32
 +
|| W0=result, W1=out_val
 
|-
 
|-
 
| 0x4F || svcSetProcessActivity || W0=process_handle, W1=bool || W0=result
 
| 0x4F || svcSetProcessActivity || W0=process_handle, W1=bool || W0=result
Line 176: Line 186:  
| 0x54 || [[#svcQueryPhysicalAddress]] || X1=addr || W0=result, X1=physaddr, X2=kerneladdr, X3=size
 
| 0x54 || [[#svcQueryPhysicalAddress]] || X1=addr || W0=result, X1=physaddr, X2=kerneladdr, X3=size
 
|-
 
|-
| 0x55 || [[#svcQueryIoMapping]] || X1=physaddr, X2=size || W0=result, X1=virtaddr
+
| 0x55 || [[#svcQueryIoMapping]] || X1=physaddr, X2=size
 +
R0=size, R2=physaddr_lower32, R3=physaddr_upper32
 +
|| W0=result, X1=virtaddr
 
|-
 
|-
| 0x56 || [[#svcCreateDeviceAddressSpace]] || X1=dev_as_start_addr, X2=dev_as_end_addr || W0=result, W1=dev_as_handle
+
| 0x56 || [[#svcCreateDeviceAddressSpace]] || X1=dev_as_start_addr, X2=dev_as_end_addr
 +
R0=dev_as_end_addr_lower32, R1=dev_as_end_addr_upper32, R2=dev_as_start_addr_lower32, R3=dev_as_start_addr_upper32
 +
|| W0=result, W1=dev_as_handle
 
|-
 
|-
 
| 0x57 || [[#svcAttachDeviceAddressSpace]] || W0=device, X1=dev_as_handle || W0=result
 
| 0x57 || [[#svcAttachDeviceAddressSpace]] || W0=device, X1=dev_as_handle || W0=result
Line 442: Line 456:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Argument || Type || Name
+
! Argument64 || Argument32 || Type || Name
 
|-
 
|-
| (In) X1 || void(*)(void*) || Entry
+
| (In) X1 || R1 || void(*)(void*) || Entry
 
|-
 
|-
| (In) X2 || void* || ThreadContext
+
| (In) X2 || R2 || void* || ThreadContext
 
|-
 
|-
| (In) X3 || void* || StackTop
+
| (In) X3 || R3 || void* || StackTop
 
|-
 
|-
| (In) W4 || u32 || Priority
+
| (In) W4 || R0 || u32 || Priority
 
|-
 
|-
| (In) W5 || u32 || ProcessorId
+
| (In) W5 || R4 || u32 || ProcessorId
 
|-
 
|-
| (Out) W0 || [[#Result]] || Ret
+
| (Out) W0 || R0 || [[#Result]] || Ret
 
|-
 
|-
| (Out) W1 || Handle<Thread> || Handle
+
| (Out) W1 || R1 || Handle<Thread> || Handle
 
|}
 
|}
 
</div>
 
</div>
Line 952: Line 966:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Argument || Type || Name
+
! Argument64 || Argument32 || Type || Name
 
|-
 
|-
| (In) W1 || *Handle<Port or ServerSession> || Handles
+
| (In) W1 || R1 || *Handle<Port or ServerSession> || Handles
 
|-
 
|-
| (In) W2 || u32 || NumHandles
+
| (In) W2 || R2 || u32 || NumHandles
 
|-
 
|-
| (In) W3 || Handle<ServerSession> || ReplyTarget
+
| (In) W3 || R3 || Handle<ServerSession> || ReplyTarget
 
|-
 
|-
| (In) X4 || u64 (nanoseconds) || Timeout
+
| (In) X4 || R0, R4 || u64 (nanoseconds) || Timeout
 
|-
 
|-
| (Out) W0 || [[#Result]] || Result
+
| (Out) W0 || R0 || [[#Result]] || Result
 
|-
 
|-
| (Out) W1 || u32 || HandleIndex
+
| (Out) W1 || R1 || u32 || HandleIndex
 
|}
 
|}
 
</div>
 
</div>
Line 1,010: Line 1,024:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Argument || Type || Name
+
! Argument64 || Argument32 || Type || Name
 
|-
 
|-
| (In) X1 || u64 || RegAddr
+
| (In) X1 || R2, R3 || u64 || RegAddr
 
|-
 
|-
| (In) W2 || u64 || RwMask
+
| (In) W2 || R0 || u64 || RwMask
 
|-
 
|-
| (In) W3 || u64 || InValue
+
| (In) W3 || R1 || u64 || InValue
 
|-
 
|-
| (Out) W0 || [[#Result]] || Ret
+
| (Out) W0 || R0 || [[#Result]] || Ret
 
|-
 
|-
| (Out) W1|| u64 || OutValue
+
| (Out) W1 || R1 || u64 || OutValue
 
|}
 
|}
 
</div>
 
</div>
Line 1,175: Line 1,189:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Argument || Type || Name
+
! Argument64 || Argument32 || Type || Name
 
|-
 
|-
| (In) X1 || u64 || PhysAddr
+
| (In) X1 || R2, R3 || u64 || PhysAddr
 
|-
 
|-
| (In) X2 || u64 || Size
+
| (In) X2 || R0 || u64 || Size
 
|-
 
|-
| (Out) W0 || [[#Result]] || Ret
+
| (Out) W0 || R0 || [[#Result]] || Ret
 
|-
 
|-
| (Out) X1 || void* || VirtAddr
+
| (Out) X1 || R1 || void* || VirtAddr
 
|}
 
|}
 
</div>
 
</div>
Line 1,194: Line 1,208:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Argument || Type || Name
+
! Argument64 || Argument32 || Type || Name
 
|-
 
|-
| (In) X1 || u64 || StartAddr
+
| (In) X1 || R2, R3 || u64 || StartAddr
 
|-
 
|-
| (In) X2 || u64 || EndAddr
+
| (In) X2 || R0, R1 || u64 || EndAddr
 
|-
 
|-
| (Out) W0 || [[#Result]] || Ret
+
| (Out) W0 || R0 || [[#Result]] || Ret
 
|-
 
|-
| (Out) W1 || Handle<DeviceAddressSpace> || AddressSpaceHandle
+
| (Out) W1 || R1 || Handle<DeviceAddressSpace> || AddressSpaceHandle
 
|}
 
|}
 
</div>
 
</div>
151

edits

Navigation menu