SVC: Difference between revisions

Roblabla (talk | contribs)
We were lied to. Based on 5.0.0 info.
Roblabla (talk | contribs)
Add detailed information about svcGetProcessList.
Line 241: Line 241:
|| W0=result
|| W0=result
|-
|-
| 0x65 || svcGetProcessList || X1=pids_out_ptr, W2=max_out || W0=result, W1=num_out  
| 0x65 || [[#svcGetProcessList]] || X1=pids_out_ptr, W2=max_out || W0=result, W1=num_out  
|-
|-
| 0x66 || svcGetThreadList || X1=tids_out_ptr, W2=max_out, W3=debug_handle_or_zero || W0=result, X1=num_out
| 0x66 || svcGetThreadList || X1=tids_out_ptr, W2=max_out, W3=debug_handle_or_zero || W0=result, X1=num_out
Line 1,508: Line 1,508:


'''0xf401:''' Process has debug events queued or is already running.
'''0xf401:''' Process has debug events queued or is already running.
== svcGetProcessList ==
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument64 || Argument32 || Type || Name
|-
| (In) X1 || R1 || u64* || PidBuffer
|-
| (In) X2 || R2 || size_t || PidBufferSize
|-
| (Out) X0 || R0 || [[#Result]] || Ret
|-
| (Out) X1 || R1 || size_t || NumProcesses
|}
</div>
'''Description:''' Fills the provided array with the pids of currently living processes. A process "lives" so long as it is currently running or a handle to it still exists.
It returns the total number of processes currently alive. If this number is bigger than the size of PidBuffer, the user won't have all the pids.
=== Result codes ===
'''0x0:''' Success.
'''0xd401:''' The provided buffer is outside the process address space.
'''0xe601:''' copyToUser failed. The provided buffer is not user-accessible.
'''0xee01:''' The provided buffer size is too big. Max value is 0xFFFFFFF.


== svcGetSystemInfo ==
== svcGetSystemInfo ==