]> git.wh0rd.org Git - ICEs.git/blob - 152840/ice.i.2
initial import
[ICEs.git] / 152840 / ice.i.2
1 typedef struct {
2 } spinlock_t;
3 extern struct page *mem_map;
4 typedef struct pm_message {
5 } pm_message_t;
6 struct device_driver {
7         const char *name;
8 };
9 struct page {
10         unsigned long flags;
11 };
12 struct scatterlist {
13         struct page *page;
14         unsigned int offset;
15 };
16 struct request {
17         unsigned int cmd_flags;
18 };
19 inline __attribute__ ((always_inline))
20 void sg_set_buf(struct scatterlist *sg, const void *buf, unsigned int buflen)
21 {
22         sg->page =
23             (mem_map +
24              ((((unsigned long)(buf) - 0x80000000) >> 12) -
25               ((0x0C000000 >> 12))));
26         sg->offset = ((unsigned long)(buf) & ~(~((1UL << 12) - 1)));
27 }
28 inline __attribute__ ((always_inline))
29 void sg_init_one(struct scatterlist *sg, const void *buf, unsigned int buflen)
30 {
31         memset(sg, 0, sizeof(*sg));
32         sg_set_buf(sg, buf, buflen);
33 };
34 struct mmc_card {
35         unsigned int state;
36 };
37 struct mmc_driver {
38         struct device_driver drv;
39         int (*probe) (struct mmc_card *);
40         void (*remove) (struct mmc_card *);
41         int (*suspend) (struct mmc_card *, pm_message_t);
42         int (*resume) (struct mmc_card *);
43 };
44 struct mmc_queue {
45         struct mmc_card *card;
46         int (*issue_fn) (struct mmc_queue *, struct request *);
47         void *data;
48 };
49 struct mmc_blk_data {
50         struct mmc_queue queue;
51 };
52 static 
53 unsigned int mmc_sd_num_wr_blocks(struct mmc_card *card)
54 {
55         unsigned int blocks;
56         struct scatterlist sg;
57         sg_init_one(&sg, &blocks, 4);
58 }
59 int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
60 {
61         struct mmc_blk_data *md = mq->data;
62         struct mmc_card *card = md->queue.card;
63         if (((req)->cmd_flags & 1) != 0 && ((card)->state & (1 << 3))) {
64                 unsigned int blocks;
65                 blocks = mmc_sd_num_wr_blocks(card);
66                 if (blocks != (unsigned int) - 1) {
67                         do {
68                                 local_irq_disable();
69                         }
70                         while (0);
71                 }
72         }
73 }
74 struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
75 {
76         struct mmc_blk_data *md;
77         md->queue.issue_fn = mmc_blk_issue_rq;
78 }
79 int mmc_blk_probe(struct mmc_card *card)
80 {
81         struct mmc_blk_data *md;
82         md = mmc_blk_alloc(card);
83 }
84 static void mmc_blk_remove(struct mmc_card *card)
85 {
86 }
87 static struct mmc_driver mmc_driver = {
88 .probe = mmc_blk_probe
89 };
90 void 
91 __attribute__ ((__used__))
92 mmc_blk_exit(void)
93 {
94         mmc_unregister_driver(&mmc_driver);
95 }