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 */