int i2o_post_wait_mem (struct i2o_controller * c, u32 * msg, int len, int timeout, void * mem1, void * mem2, dma_addr_t phys1, dma_addr_t phys2, int size1, int size2);
This core API allows an OSM to post a message and then be told whether or not the system received a successful reply.
If the message times out then the value '-ETIMEDOUT' is returned. This is a special case. In this situation the message may (should) complete at an indefinite time in the future. When it completes it will use the memory buffers attached to the request. If -ETIMEDOUT is returned then the memory buffers must not be freed. Instead the event completion will free them for you. In all other cases the buffers are your problem.
Pass NULL for unneeded buffers.