interface block_device extends service { /* Establish connection */ ipcarg_t ipc_m_connect_me_to(void); /* Share out data buffer */ ipcarg_t ipc_m_share_out(in ipcarg_t as_area_base, in ipcarg_t as_area_size, in ipcarg_t flags, out ipcarg_t dst_as_area_base); /* Get block size */ ipcarg_t get_block_size(out ipcarg_t block_size); /* Read blocks via shared data buffer */ ipcarg_t read_blocks(in ipcarg_t index_lower, in ipcarg_t index_upper, in ipcarg_t count); /* Write blocks via shared data buffer */ ipcarg_t write_blocks(in ipcarg_t index_lower, in ipcarg_t index_upper, in ipcarg_t count); /* Close connection */ ipcarg_t ipc_m_phone_hungup(void); protocol: [block_device.bp] };