Difference between revisions of "BOSSU:GetNsDataIdList"
(→Filter) |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
{{IPC/RequestEntry|u32 filter}} | {{IPC/RequestEntry|u32 filter}} | ||
{{IPC/RequestEntry|Buffer size in words(max entries).}} | {{IPC/RequestEntry|Buffer size in words(max entries).}} | ||
− | {{IPC/RequestEntry|u16, | + | {{IPC/RequestEntry|u16, starting word-index in the internal NsDataId list.}} |
− | {{IPC/RequestEntry|u32, | + | {{IPC/RequestEntry|u32, start_NsDataId.}} |
{{IPC/MapPointerW|Destination pointer}} | {{IPC/MapPointerW|Destination pointer}} | ||
{{IPC/RequestEnd}} | {{IPC/RequestEnd}} | ||
Line 16: | Line 16: | ||
{{IPC/RequestEntry|Result code}} | {{IPC/RequestEntry|Result code}} | ||
{{IPC/RequestEntry|u16 Actual number of output entries.}} | {{IPC/RequestEntry|u16 Actual number of output entries.}} | ||
− | {{IPC/RequestEntry|u16 | + | {{IPC/RequestEntry|u16 Last word-index copied to output in the internal NsDataId list.}} |
{{IPC/RequestEnd}} | {{IPC/RequestEnd}} | ||
=Filter= | =Filter= | ||
− | Content filtering is enabled when this word isn't 0xffffffff. This is only used for the following: <code>if(filterword_u16high!= | + | Content filtering is enabled when this word isn't 0xffffffff. This is only used for the following: <code>if(filterword_u16high!=contentdatatype_u16high || (filterword_u16low & contentdatatype_u16low) == 0)continue;</code> Hence, filterword_u16high must match contentdatatype_u16high, and the bitmask specified by filterword_u16low must be non-zero in contentdatatype_u16low. The contentdatatype is extracted from the extdata filename, which originates from the [[SpotPass|BOSS-container]]. The NsDataId for the content entry is only written to the output when processing isn't skipped due to filtering. |
+ | |||
+ | =Start NsDataId= | ||
+ | This field is only used when starting_wordindex is non-zero or when this field is non-zero. | ||
+ | |||
+ | The NsDataId at the specified start-wordindex must match this field, otherwise error 0xD840F846 is returned. It will then skip normal content entry processing for this matching entry(cur_wordindex is field is increased by 0x1 before starting the content entry processing loop). | ||
=Description= | =Description= |
Latest revision as of 21:33, 28 December 2016
Request[edit]
Index Word | Description |
---|---|
0 | Header code [0x00100102] |
1 | u32 filter |
2 | Buffer size in words(max entries). |
3 | u16, starting word-index in the internal NsDataId list. |
4 | u32, start_NsDataId. |
5 | Descriptor for mapping a write-only buffer in the target process |
6 | Destination pointer |
Response[edit]
Index Word | Description |
---|---|
0 | Header code |
1 | Result code |
2 | u16 Actual number of output entries. |
3 | u16 Last word-index copied to output in the internal NsDataId list. |
Filter[edit]
Content filtering is enabled when this word isn't 0xffffffff. This is only used for the following: if(filterword_u16high!=contentdatatype_u16high || (filterword_u16low & contentdatatype_u16low) == 0)continue;
Hence, filterword_u16high must match contentdatatype_u16high, and the bitmask specified by filterword_u16low must be non-zero in contentdatatype_u16low. The contentdatatype is extracted from the extdata filename, which originates from the BOSS-container. The NsDataId for the content entry is only written to the output when processing isn't skipped due to filtering.
Start NsDataId[edit]
This field is only used when starting_wordindex is non-zero or when this field is non-zero.
The NsDataId at the specified start-wordindex must match this field, otherwise error 0xD840F846 is returned. It will then skip normal content entry processing for this matching entry(cur_wordindex is field is increased by 0x1 before starting the content entry processing loop).
Description[edit]
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.