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