Difference between revisions of "IPC Marshalling"
From Nintendo Switch Brew
| Line 22: | Line 22: | ||
| 1 || Word0 is written here. | | 1 || Word0 is written here. | ||
|- | |- | ||
| − | | 2 || Weird mix.|} | + | | 2 || Weird mix. |
| + | |} | ||
=== Marshall type B === | === Marshall type B === | ||
Revision as of 08:32, 13 April 2017
Contents
Marshall Portion
This is an array of u32's.
| Word | Description |
|---|---|
| 0 | Cmd header part 1 |
| 1 | Cmd header part 2 |
| ... | Marshall descriptors |
Marshall type A
| Word | Description |
|---|---|
| 0 | Word1 is written here. |
| 1 | Word0 is written here. |
| 2 | Weird mix. |
Marshall type B
| Word | Description |
|---|---|
| 0 | Lower 32-bits of addr? |
| 1 | Upper 16bits: Size, Lower 16bits: Rest of addr? |
Marshall type C
| Word | Description |
|---|---|
| 0 | Upper 16bits: Size, Lower 16: ? |
| 1 | ? |
Data Portion
This is an array of u64's placed after the marshall header. But it's always aligned to 8 so sometimes there is a padding word inserted inbetween.
| Word | Description |
|---|---|
| 0 | Magic ("SFCI") |
| 1 | Cmd id |
| ... | Non-marshalled data is placed here |