fifo.h (659d495404d20ff8f96644fca82c772455f1226c) | fifo.h (dad67397f2090b29cd1f169e6a4ac6f3532c6858) |
---|---|
1/* 2 * Renesas USB driver 3 * 4 * Copyright (C) 2011 Renesas Solutions Corp. 5 * Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of --- 5 unchanged lines hidden (view full) --- 14 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 15 * 16 */ 17#ifndef RENESAS_USB_FIFO_H 18#define RENESAS_USB_FIFO_H 19 20#include "pipe.h" 21 | 1/* 2 * Renesas USB driver 3 * 4 * Copyright (C) 2011 Renesas Solutions Corp. 5 * Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of --- 5 unchanged lines hidden (view full) --- 14 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 15 * 16 */ 17#ifndef RENESAS_USB_FIFO_H 18#define RENESAS_USB_FIFO_H 19 20#include "pipe.h" 21 |
22struct usbhs_pkt_handle; |
|
22struct usbhs_pkt { 23 struct list_head node; 24 struct usbhs_pipe *pipe; | 23struct usbhs_pkt { 24 struct list_head node; 25 struct usbhs_pipe *pipe; |
26 struct usbhs_pkt_handle *handler; |
|
25 void *buf; 26 int length; 27 int actual; 28 int zero; 29}; 30 | 27 void *buf; 28 int length; 29 int actual; 30 int zero; 31}; 32 |
33struct usbhs_pkt_handle { 34 int (*prepare)(struct usbhs_pkt *pkt); 35 int (*try_run)(struct usbhs_pkt *pkt); 36}; 37 |
|
31/* 32 * fifo 33 */ | 38/* 39 * fifo 40 */ |
34int usbhs_fifo_write(struct usbhs_pkt *pkt); 35int usbhs_fifo_read(struct usbhs_pkt *pkt); 36int usbhs_fifo_prepare_write(struct usbhs_pipe *pipe); 37int usbhs_fifo_prepare_read(struct usbhs_pipe *pipe); | 41void usbhs_fifo_init(struct usbhs_priv *priv); 42void usbhs_fifo_quit(struct usbhs_priv *priv); |
38 39/* 40 * packet info 41 */ | 43 44/* 45 * packet info 46 */ |
47extern struct usbhs_pkt_handle usbhs_fifo_push_handler; 48extern struct usbhs_pkt_handle usbhs_fifo_pop_handler; 49extern struct usbhs_pkt_handle usbhs_ctrl_stage_end_handler; 50 |
|
42void usbhs_pkt_init(struct usbhs_pkt *pkt); 43void usbhs_pkt_push(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt, | 51void usbhs_pkt_init(struct usbhs_pkt *pkt); 52void usbhs_pkt_push(struct usbhs_pipe *pipe, struct usbhs_pkt *pkt, |
53 struct usbhs_pkt_handle *handler, |
|
44 void *buf, int len, int zero); 45void usbhs_pkt_pop(struct usbhs_pkt *pkt); 46struct usbhs_pkt *usbhs_pkt_get(struct usbhs_pipe *pipe); 47 | 54 void *buf, int len, int zero); 55void usbhs_pkt_pop(struct usbhs_pkt *pkt); 56struct usbhs_pkt *usbhs_pkt_get(struct usbhs_pipe *pipe); 57 |
58#define usbhs_pkt_start(p) ((p)->handler->prepare(p)) 59#define usbhs_pkt_run(p) ((p)->handler->try_run(p)) 60 |
|
48#endif /* RENESAS_USB_FIFO_H */ | 61#endif /* RENESAS_USB_FIFO_H */ |