On 18/09/12 15:40, Shubhrajyoti wrote:On Tuesday 18 September 2012 07:21 AM, Ryan Mallon wrote:Actually, I wonder if it is useful to have something like:.Read and write differ only in the flag also it will be a deviation from
what $SUBJECT
would warrant. So could be a separate patch.
Sure, but I think it would help make the code even more readable than
just converting to C99 initialisers (especially since putting the C99
initialiser all on one line is hard to read),
and there is little sense--
in doing one clean up and then replacing it later with a different clean up.
If you are worried about the duplication of code for a single flag
difference you could always do:
#define I2C_OP(_addr, _buf, _len, _flags) \
...
#define I2C_WRITE(addr, buf, len) I2C_OP(addr, buf, len, 0)
#define I2C_READ(addr, buf, len) I2C_OP(addr, buf, len, I2C_M_RD)
~Ryan
#define I2C_WRITE(_addr, _buf, _len) { \
.addr = _addr, \
.buf = _buf, \
.len = _len, \
}
#define I2C_READ(_addr, _buf, _len) { \
.addr = _addr, \
.buf = _buf, \
.len = _len, \
.flags = I2C_M_RD, \
}
and then write this as:
struct i2c_msg msgs[2] = {
I2C_WRITE(client->addr, reg_addr, sizeof(reg_addr)),
I2C_READ(client->addr, buf, len),
};