Hi all,
Now I working on i2c driver for i.mx53 platform. In i2c_session interface I using Rpc_in_buf for transfer data between driver and client:
enum { MAX_BUFFER_SIZE = 256 }; typedef Genode::Rpc_in_buffer<MAX_BUFFER_SIZE> Byte_array;
virtual bool read(Genode::uint8_t address, Genode::uint8_t register, Byte_array &out) = 0;
virtual bool write(Genode::uint8_t address, Genode::uint8_t register, Byte_array const &in) = 0;
GENODE_RPC(Rpc_read, bool, read, Genode::uint8_t, Genode::uint8_t, Byte_array &); GENODE_RPC(Rpc_write, bool, write, Genode::uint8_t, Genode::uint8_t, Byte_array const &);
Write function transfer data to driver normally, but after read rpc call on client side the buffer content does not change.