On 9 May 2013 22:01, Suman Anna <s-a...@ti.com> wrote: > Hi Jassi, > > On 05/06/2013 02:24 AM, Jassi Brar wrote: >> +++ b/include/linux/mailbox_client.h >> @@ -0,0 +1,85 @@ >> +/* >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License version 2 as >> + * published by the Free Software Foundation. >> + */ >> + >> +#ifndef __MAILBOX_CLIENT_H >> +#define __MAILBOX_CLIENT_H >> + >> +#include <linux/mailbox.h> >> + >> +/** >> + * struct ipc_client - User of a mailbox >> + * @chan_name: the "controller:channel" this client wants >> + * @rxcb: atomic callback to provide client the data received >> + * @txcb: atomic callback to tell client of data transmission >> + * @tx_block: if the ipc_send_message should block until data is transmitted >> + * @tx_tout: Max block period in ms before TX is assumed failure >> + * @knows_txdone: if the client could run the TX state machine. Usually if >> + * the client receives some ACK packet for transmission. Unused if the >> + * controller already has TX_Done/RTR IRQ. >> + * @cntlr_data: Optional controller specific parameters during channel >> request >> + */ >> +struct ipc_client { >> + char *chan_name; >> + void (*rxcb)(void *data); >> + void (*txcb)(request_token_t t, enum xfer_result r); > > We have to introduce a callback data pointer, so that the calling > clients can retrieve a context object variable or some other useful > data within the callback functions, just like most normal callback > function declarations and registrations do. > I meant the request_token_t for the purpose. That's how we do with DMAEngine.
Regards, -Jassi -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/