- int i2o_msg_post_wait_complete(struct i2o_controller * c, u32 m, struct i2o_message * msg, u32 context);
- I2O controller which answers
- message id
- pointer to the I2O reply message
- transaction context of request
This function is called in interrupt context only. If the reply reached before the timeout, the i2o_exec_wait struct is filled with the message and the task will be waked up. The task is now responsible for returning the message m back to the controller! If the message reaches us after the timeout clean up the i2o_exec_wait struct (including allocated DMA buffer).
Return 0 on success and if the message m should not be given back to the I2O controller, or >0 on success and if the message should be given back afterwords. Returns negative error code on failure. In this case the message must also be given back to the controller.