Changes

1,105 bytes added ,  17:19, 22 February 2017
no edit summary
Line 60: Line 60:  
| Unknown
 
| Unknown
 
|}
 
|}
 +
 +
=ReceiveBufferInfo/SendBufferInfo=
 +
(Information below is poorly verified against real hardware. Please help me verify them -- [[User:Wwylele|Wwylele]] ([[User talk:Wwylele|talk]]))
 +
 +
The BufferInfo sections store data validity information for the two buffers
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Relative offset
 +
!  Size
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Start index of valid packages
 +
|-
 +
| 0x4
 +
| 0x4
 +
| End index of valid packages
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Number valid packages
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Unknown
 +
|}
 +
 +
=ReceiveBuffer/SendBuffer=
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Relative offset
 +
!  Size
 +
!  Description
 +
|-
 +
| 0x0
 +
| 0x8 * package_count (specified in Init parameter)
 +
| PackageInfo{u32 offset_to_data_buffer, u32 data_length}
 +
|-
 +
| 0x8 * package_count
 +
| buffer_size - 0x8 * package_count
 +
| Data buffer
 +
|}
 +
 +
The buffers are two circular buffers. A new package is added to the end of previous package in the data buffer, with package info added to PackageInfo[end_index++]. Note that if an added package exceeds the end of the buffer, the exceeding data will be wrapped around to the beginning of the data buffer.
242

edits