Difference between revisions of "BOSSU:GetNsDataIdList"

From 3dbrew
Jump to navigation Jump to search
Line 3: Line 3:
 
{{#vardefine:ipc_offset|0}}
 
{{#vardefine:ipc_offset|0}}
 
{{IPC/RequestEntry|Header code [0x00100102]}}
 
{{IPC/RequestEntry|Header code [0x00100102]}}
{{IPC/RequestEntry|Unknown, usually 0xffffffff.}}
+
{{IPC/RequestEntry|u32 filter}}
 
{{IPC/RequestEntry|Buffer size in words(max entries).}}
 
{{IPC/RequestEntry|Buffer size in words(max entries).}}
 
{{IPC/RequestEntry|u16, unknown.}}
 
{{IPC/RequestEntry|u16, unknown.}}
Line 18: Line 18:
 
{{IPC/RequestEntry|u16 Unknown}}
 
{{IPC/RequestEntry|u16 Unknown}}
 
{{IPC/RequestEnd}}
 
{{IPC/RequestEnd}}
 +
 +
=Filter=
 +
Content filtering is enabled when this word isn't 0xffffffff. This is only used for the following: <code>if(filterword_u16high!=contententryword_u16high || (filterword_u16low & contententryword_u16low) == 0)continue;</code> The contententryword is separate from NsDataId. The NsDataId for the content entry is only written to the output when these checks pass.
  
 
=Description=
 
=Description=

Revision as of 07:56, 28 December 2016

Request

Index Word Description
0 Header code [0x00100102]
1 u32 filter
2 Buffer size in words(max entries).
3 u16, unknown.
4 u32, unknown.
5 Descriptor for mapping a write-only buffer in the target process
6 Destination pointer

Response

Index Word Description
0 Header code
1 Result code
2 u16 Actual number of output entries.
3 u16 Unknown

Filter

Content filtering is enabled when this word isn't 0xffffffff. This is only used for the following: if(filterword_u16high!=contententryword_u16high || (filterword_u16low & contententryword_u16low) == 0)continue; The contententryword is separate from NsDataId. The NsDataId for the content entry is only written to the output when these checks pass.

Description

This writes an array of u32 entries(NsDataId) to the output buffer, for the current programID.

This eventually calls a function with the following type parameters: 0, 1, 1. This function doesn't use the second type parameter. Afterwards another function is called using the programID.