I2C:WriteRegistersBuffer8

From 3dbrew
Revision as of 16:15, 28 May 2026 by TimmSkiller (talk | contribs) (Created page with "=Request= {{IPC/Request}} {{IPC/RequestHeader|0x0011|3|2}} {{IPC/RequestEntry|u8, device ID}} {{IPC/RequestEntry|u8, starting register}} {{IPC/RequestEntry|u32, size}} {{IPC/MapPointerR|Input buffer pointer}} {{IPC/RequestEnd}} =Response= {{IPC/Request}} {{#vardefine:ipc_offset|0}} {{IPC/RequestHeader|0x0011|1|2}} {{IPC/RequestEntry|Result code}} {{IPC/MapPointerR|Input buffer pointer}} {{IPC/RequestEnd}} =Description= Writes the given buffer sequentially to a range...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Request

Index Word Description
0
Header 0x001100C2 Cmd 0x0011 Param 3 Xlat 2
1 u8, device ID
2 u8, starting register
3 u32, size
4 Descriptor for mapping a read-only buffer in the target process
5 Input buffer pointer

Response

Index Word Description
0
Header 0x00110042 Cmd 0x0011 Param 1 Xlat 2
1 Result code
2 Descriptor for mapping a read-only buffer in the target process
3 Input buffer pointer

Description

Writes the given buffer sequentially to a range of 8-bit I2C registers of the specified device.

Similar to I2C:WriteRegisters8, except this version uses a mapped buffer instead of a static buffer.

For example, writing a buffer of consisting of { 0xAA, 0xBB, 0xCC, 0xDD } with starting register 0x5 would do the following:

    reg[0x5] = 0xAA
    reg[0x6] = 0xBB
    reg[0x7] = 0xCC
    reg[0x8] = 0xDD