1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef __MTD_TRANS_H__
13#define __MTD_TRANS_H__
14
15#include <linux/mutex.h>
16
17struct hd_geometry;
18struct mtd_info;
19struct mtd_blktrans_ops;
20struct file;
21struct inode;
22
23struct mtd_blktrans_dev {
24 struct mtd_blktrans_ops *tr;
25 struct list_head list;
26 struct mtd_info *mtd;
27 struct mutex lock;
28 int devnum;
29 int blksize;
30 unsigned long size;
31 int readonly;
32 void *blkcore_priv;
33};
34
35struct blkcore_priv;
36
37struct mtd_blktrans_ops {
38 char *name;
39 int major;
40 int part_bits;
41
42 int (*readsect)(struct mtd_blktrans_dev *dev,
43 unsigned long block, char *buffer);
44 int (*writesect)(struct mtd_blktrans_dev *dev,
45 unsigned long block, char *buffer);
46
47 int (*getgeo)(struct mtd_blktrans_dev *dev, struct hd_geometry *geo);
48 int (*flush)(struct mtd_blktrans_dev *dev);
49
50 int (*open)(struct mtd_blktrans_dev *dev);
51 int (*release)(struct mtd_blktrans_dev *dev);
52
53 void (*add_mtd)(struct mtd_blktrans_ops *tr, struct mtd_info *mtd);
54 void (*remove_dev)(struct mtd_blktrans_dev *dev);
55
56 struct list_head devs;
57 struct list_head list;
58 struct module *owner;
59
60 struct mtd_blkcore_priv *blkcore_priv;
61};
62
63#endif
64