summaryrefslogtreecommitdiffstats
path: root/drivers/mtd/mtd.h
blob: 2a85265f98bd4d3fd0f70650ca7e80007d5a926c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
 * MTD devices registration
 *
 * Copyright (C) 2011 Robert Jarzmik
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

/**
 * mtddev_hook - hook to register additional mtd devices
 * @add_mtd_device: called when a MTD driver calls add_mtd_device()
 * @del_mtd_device: called when a MTD driver calls del_mtd_device()
 *
 * Provide a hook to be called whenether a add_mtd_device() is called.
 * Additionnal devices like mtdoob and mtdraw subscribe to the service.
 */
struct mtddev_hook {
	struct list_head hook;
	int (*add_mtd_device)(struct mtd_info *mtd, const char *devname, void **priv);
	int (*del_mtd_device)(struct mtd_info *mtd, void **priv);
	void *priv;
};
struct cdev;

/**
 * mtdcore_add_hook - add a hook to MTD registration/unregistration
 * @hook: the hook
 *
 * Normally called in a coredevice_initcall() to add another MTD layout (such as
 * mtdraw, ...)
 */
void mtdcore_add_hook(struct mtddev_hook *hook);

int mtd_ioctl(struct cdev *cdev, int request, void *buf);