Line 621: |
Line 621: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#Open]] ([1.0.0] [[#SubmitOutRequest]]) | + | | 0 || [[#ReOpen]] ([1.0.0] [[#SubmitOutRequest]]) |
| |- | | |- |
| | 1 || [[#Close]] ([1.0.0] [[#SubmitInRequest]]) | | | 1 || [[#Close]] ([1.0.0] [[#SubmitInRequest]]) |
| |- | | |- |
− | | 2 || ([1.0.0] Reset) | + | | 2 || GetCompletionEvent ([1.0.0] Reset) |
| |- | | |- |
− | | 3 || [[#Populate]] ([1.0.0] [[#Close]]) | + | | 3 || [[#PopulateRing]] ([1.0.0] [[#Close]]) |
| |- | | |- |
| | [2.0.0+] 4 || [[#PostBufferAsync_2|#PostBufferAsync]] | | | [2.0.0+] 4 || [[#PostBufferAsync_2|#PostBufferAsync]] |
Line 633: |
Line 633: |
| | [2.0.0+] 5 || [[#GetXferReport]] | | | [2.0.0+] 5 || [[#GetXferReport]] |
| |- | | |- |
− | | [2.0.0+] 6 || [[#PostBufferMultiAsync]] | + | | [2.0.0+] 6 || [[#BatchBufferAsync]] |
| |- | | |- |
− | | [4.0.0+] 7 || | + | | [4.0.0+] 7 || [[#CreateSmmuSpace]] |
| |- | | |- |
− | | [4.0.0+] 8 || | + | | [4.0.0+] 8 || [[#ShareReportRing]] |
| |} | | |} |
| | | |
Line 654: |
Line 654: |
| Official user-processes uses a buffer where the buffer address/size is page-aligned, where '''size''' is the original size before alignment. The user-process also flushes dcache for this buffer using '''size''', before/after using this command. Official sw passes value 0 for '''unk'''. | | Official user-processes uses a buffer where the buffer address/size is page-aligned, where '''size''' is the original size before alignment. The user-process also flushes dcache for this buffer using '''size''', before/after using this command. Official sw passes value 0 for '''unk'''. |
| | | |
− | ==== Open ==== | + | ==== ReOpen ==== |
| No input/output. | | No input/output. |
| | | |
Line 669: |
Line 669: |
| No input, returns an output handle. Signaled when [[#PostBufferAsync_2|#PostBufferAsync]] finishes. ([1.0.0] [[#Open]]) | | No input, returns an output handle. Signaled when [[#PostBufferAsync_2|#PostBufferAsync]] finishes. ([1.0.0] [[#Open]]) |
| | | |
− | ==== Populate ==== | + | ==== PopulateRing ==== |
| No input/output. | | No input/output. |
| | | |
Line 688: |
Line 688: |
| The buffer contains an array of [[#XferReport]]. | | The buffer contains an array of [[#XferReport]]. |
| | | |
− | ==== PostBufferMultiAsync ==== | + | ==== BatchBufferAsync ==== |
− | Unofficial name.
| |
| | | |
| Takes 3 input u32s ('''urbCount''', '''unk1''', and '''unk2'''), an input u64 '''buffer''' and u64 '''unk''', and a type-0x5 ([3.0.0+] type-0x21) input buffer, returns an output u32 '''xferId'''. | | Takes 3 input u32s ('''urbCount''', '''unk1''', and '''unk2'''), an input u64 '''buffer''' and u64 '''unk''', and a type-0x5 ([3.0.0+] type-0x21) input buffer, returns an output u32 '''xferId'''. |
Line 697: |
Line 696: |
| This uses the same func internally as [[#PostBufferAsync_2|#PostBufferAsync]] except multiple urbs are specified by the user: the input buffer contains an array of u32s for the size of each urb, where '''urbCount''' is the total number of entries in this array. With [[#PostBufferAsync_2|#PostBufferAsync]] the last 2 params passed to the internal func are hard-coded to 0, while with this command it's '''unk1''' and '''unk2'''. | | This uses the same func internally as [[#PostBufferAsync_2|#PostBufferAsync]] except multiple urbs are specified by the user: the input buffer contains an array of u32s for the size of each urb, where '''urbCount''' is the total number of entries in this array. With [[#PostBufferAsync_2|#PostBufferAsync]] the last 2 params passed to the internal func are hard-coded to 0, while with this command it's '''unk1''' and '''unk2'''. |
| | | |
− | ==== Cmd7 ==== | + | ==== CreateSmmuSpace ==== |
| Takes a total of 0x10-bytes of input, no output. | | Takes a total of 0x10-bytes of input, no output. |
| | | |
− | ==== Cmd8 ==== | + | ==== ShareReportRing ==== |
| Takes a total of 0x4-bytes of input and an input handle, no output. | | Takes a total of 0x4-bytes of input and an input handle, no output. |
| | | |