~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to drivers/mmc/card/queue.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef MMC_QUEUE_H
 
2
#define MMC_QUEUE_H
 
3
 
 
4
struct request;
 
5
struct task_struct;
 
6
 
 
7
struct mmc_blk_request {
 
8
        struct mmc_request      mrq;
 
9
        struct mmc_command      sbc;
 
10
        struct mmc_command      cmd;
 
11
        struct mmc_command      stop;
 
12
        struct mmc_data         data;
 
13
};
 
14
 
 
15
struct mmc_queue_req {
 
16
        struct request          *req;
 
17
        struct mmc_blk_request  brq;
 
18
        struct scatterlist      *sg;
 
19
        char                    *bounce_buf;
 
20
        struct scatterlist      *bounce_sg;
 
21
        unsigned int            bounce_sg_len;
 
22
        struct mmc_async_req    mmc_active;
 
23
};
 
24
 
 
25
struct mmc_queue {
 
26
        struct mmc_card         *card;
 
27
        struct task_struct      *thread;
 
28
        struct semaphore        thread_sem;
 
29
        unsigned int            flags;
 
30
        int                     (*issue_fn)(struct mmc_queue *, struct request *);
 
31
        void                    *data;
 
32
        struct request_queue    *queue;
 
33
        struct mmc_queue_req    mqrq[2];
 
34
        struct mmc_queue_req    *mqrq_cur;
 
35
        struct mmc_queue_req    *mqrq_prev;
 
36
};
 
37
 
 
38
extern int mmc_init_queue(struct mmc_queue *, struct mmc_card *, spinlock_t *,
 
39
                          const char *);
 
40
extern void mmc_cleanup_queue(struct mmc_queue *);
 
41
extern void mmc_queue_suspend(struct mmc_queue *);
 
42
extern void mmc_queue_resume(struct mmc_queue *);
 
43
 
 
44
extern unsigned int mmc_queue_map_sg(struct mmc_queue *,
 
45
                                     struct mmc_queue_req *);
 
46
extern void mmc_queue_bounce_pre(struct mmc_queue_req *);
 
47
extern void mmc_queue_bounce_post(struct mmc_queue_req *);
 
48
 
 
49
#endif