source: svn/newcon3bcm2_21bu/toolchain/mips-linux-uclibc/include/linux/mtd/blktrans.h @ 22

Last change on this file since 22 was 22, checked in by phkim, 11 years ago
  1. phkim
  2. newcon3sk 를 kctv 로 브랜치 함
  • Property svn:executable set to *
File size: 1.8 KB
Line 
1/*
2 *
3 * (C) 2003 David Woodhouse <dwmw2@infradead.org>
4 *
5 * Interface to Linux block layer for MTD 'translation layers'.
6 *
7 */
8
9#ifndef __MTD_TRANS_H__
10#define __MTD_TRANS_H__
11
12#include <asm/semaphore.h>
13
14struct hd_geometry;
15struct mtd_info;
16struct mtd_blktrans_ops;
17struct file;
18struct inode;
19
20struct mtd_blktrans_dev {
21        struct mtd_blktrans_ops *tr;
22        struct list_head list;
23        struct mtd_info *mtd;
24        struct semaphore sem;
25        int devnum;
26        int blksize;
27        unsigned long size;
28        int readonly;
29        void *blkcore_priv; /* gendisk in 2.5, devfs_handle in 2.4 */
30};
31
32struct blkcore_priv; /* Differs for 2.4 and 2.5 kernels; private */
33
34struct mtd_blktrans_ops {
35        char *name;
36        int major;
37        int part_bits;
38
39        /* Access functions */
40        int (*readsect)(struct mtd_blktrans_dev *dev,
41                    unsigned long block, char *buffer);
42        int (*writesect)(struct mtd_blktrans_dev *dev,
43                     unsigned long block, char *buffer);
44
45        /* Block layer ioctls */
46        int (*getgeo)(struct mtd_blktrans_dev *dev, struct hd_geometry *geo);
47        int (*flush)(struct mtd_blktrans_dev *dev);
48
49        /* Called with mtd_table_mutex held; no race with add/remove */
50        int (*open)(struct mtd_blktrans_dev *dev);
51        int (*release)(struct mtd_blktrans_dev *dev);
52
53        /* Called on {de,}registration and on subsequent addition/removal
54           of devices, with mtd_table_mutex held. */
55        void (*add_mtd)(struct mtd_blktrans_ops *tr, struct mtd_info *mtd);
56        void (*remove_dev)(struct mtd_blktrans_dev *dev);
57
58        struct list_head devs;
59        struct list_head list;
60        struct module *owner;
61
62        struct mtd_blkcore_priv *blkcore_priv;
63};
64
65extern int register_mtd_blktrans(struct mtd_blktrans_ops *tr);
66extern int deregister_mtd_blktrans(struct mtd_blktrans_ops *tr);
67extern int add_mtd_blktrans_dev(struct mtd_blktrans_dev *dev);
68extern int del_mtd_blktrans_dev(struct mtd_blktrans_dev *dev);
69                                 
70
71#endif /* __MTD_TRANS_H__ */
Note: See TracBrowser for help on using the repository browser.