break;
case BUSC_I2C_EXEC:
/* handle request from another driver */
- r = do_i2c_ioctl_exec(m->m_source, m->BUSC_I2C_GRANT);
+ r = do_i2c_ioctl_exec(m->m_source, m->m_li2cdriver_i2c_busc_i2c_exec.grant);
break;
default:
log_warn(&log, "Invalid message type (0x%x)\n", m->m_type);
#define BUSC_I2C_RESERVE (BUSC_RQ_BASE + 64) /* reserve i2c device */
#define BUSC_I2C_EXEC (BUSC_RQ_BASE + 65) /* perform i2c action */
-#define BUSC_I2C_GRANT m2_i1 /* grant for request */
/*===========================================================================*
* Messages for networking layer *
} mess_pm_lexec_exec_new;
_ASSERT_MSG_SIZE(mess_pm_lexec_exec_new);
+typedef struct {
+ cp_grant_id_t grant;
+
+ uint8_t padding[52];
+} mess_li2cdriver_i2c_busc_i2c_exec;
+_ASSERT_MSG_SIZE(mess_li2cdriver_i2c_busc_i2c_exec);
+
+typedef struct {
+ uint8_t padding[56];
+} mess_i2c_li2cdriver_busc_i2c_exec;
+_ASSERT_MSG_SIZE(mess_i2c_li2cdriver_busc_i2c_exec);
+
typedef struct {
uint16_t addr; /* FIXME: strictly speaking this is an i2c_addr_t, but
to get it I would need to include
mess_fs_vfs_readsuper m_fs_vfs_readsuper;
mess_fs_vfs_readwrite m_fs_vfs_readwrite;
+ mess_i2c_li2cdriver_busc_i2c_exec m_i2c_li2cdriver_busc_i2c_exec;
mess_i2c_li2cdriver_busc_i2c_reserve m_i2c_li2cdriver_busc_i2c_reserve;
mess_lc_pm_exec m_lc_pm_exec;
mess_lexec_pm_exec_new m_lexec_pm_exec_new;
+ mess_li2cdriver_i2c_busc_i2c_exec m_li2cdriver_i2c_busc_i2c_exec;
mess_li2cdriver_i2c_busc_i2c_reserve m_li2cdriver_i2c_busc_i2c_reserve;
mess_lsys_krn_schedctl m_lsys_krn_schedctl;
memset(&m, '\0', sizeof(message));
m.m_type = BUSC_I2C_EXEC;
- m.BUSC_I2C_GRANT = grant_nr;
+ m.m_li2cdriver_i2c_busc_i2c_exec.grant = grant_nr;
r = ipc_sendrec(bus_endpoint, &m);
cpf_revoke(grant_nr);