Pull out string hash to <linux/stringhash.h>
[linux-2.6-block.git] / include / linux / miscdevice.h
CommitLineData
1da177e4
LT
1#ifndef _LINUX_MISCDEVICE_H
2#define _LINUX_MISCDEVICE_H
1da177e4 3#include <linux/major.h>
1986c93f
PG
4#include <linux/list.h>
5#include <linux/types.h>
1da177e4 6
79907d89
AC
7/*
8 * These allocations are managed by device@lanana.org. If you use an
9 * entry that is not in assigned your entry may well be moved and
10 * reassigned, or set dynamic if a fixed value is not justified.
11 */
12
193da609 13#define PSMOUSE_MINOR 1
3503958c
LDM
14#define MS_BUSMOUSE_MINOR 2 /* unused */
15#define ATIXL_BUSMOUSE_MINOR 3 /* unused */
193da609 16/*#define AMIGAMOUSE_MINOR 4 FIXME OBSOLETE */
3503958c
LDM
17#define ATARIMOUSE_MINOR 5 /* unused */
18#define SUN_MOUSE_MINOR 6 /* unused */
19#define APOLLO_MOUSE_MINOR 7 /* unused */
20#define PC110PAD_MINOR 9 /* unused */
193da609 21/*#define ADB_MOUSE_MINOR 10 FIXME OBSOLETE */
1da177e4
LT
22#define WATCHDOG_MINOR 130 /* Watchdog timer */
23#define TEMP_MINOR 131 /* Temperature Sensor */
193da609 24#define RTC_MINOR 135
1da177e4 25#define EFI_RTC_MINOR 136 /* EFI Time services */
b075dd40 26#define VHCI_MINOR 137
193da609 27#define SUN_OPENPROM_MINOR 139
3503958c 28#define DMAPI_MINOR 140 /* unused */
193da609
TH
29#define NVRAM_MINOR 144
30#define SGI_MMTIMER 153
3503958c 31#define STORE_QUEUE_MINOR 155 /* unused */
193da609 32#define I2O_MINOR 166
1da177e4 33#define MICROCODE_MINOR 184
8dcf94bc 34#define VFIO_MINOR 196
193da609 35#define TUN_MINOR 200
cb2ffb26 36#define CUSE_MINOR 203
193da609
TH
37#define MWAVE_MINOR 219 /* ACP/Mwave Modem */
38#define MPT_MINOR 220
dec3f959 39#define MPT2SAS_MINOR 221
78ad724a 40#define MPT3SAS_MINOR 222
8905aaaf 41#define UINPUT_MINOR 223
cef12ee5 42#define MISC_MCELOG_MINOR 227
193da609
TH
43#define HPET_MINOR 228
44#define FUSE_MINOR 229
45#define KVM_MINOR 232
578454ff
KS
46#define BTRFS_MINOR 234
47#define AUTOFS_MINOR 235
7e507eb6 48#define MAPPER_CTRL_MINOR 236
770fe30a 49#define LOOP_CTRL_MINOR 237
7c7c7f01 50#define VHOST_NET_MINOR 238
19872d20 51#define UHID_MINOR 239
5523662e 52#define USERIO_MINOR 240
193da609 53#define MISC_DYNAMIC_MINOR 255
1da177e4
LT
54
55struct device;
bd735995 56struct attribute_group;
1da177e4
LT
57
58struct miscdevice {
59 int minor;
60 const char *name;
99ac48f5 61 const struct file_operations *fops;
1da177e4 62 struct list_head list;
94fbcded
GKH
63 struct device *parent;
64 struct device *this_device;
bd735995 65 const struct attribute_group **groups;
e454cea2 66 const char *nodename;
a85cfdae 67 umode_t mode;
1da177e4
LT
68};
69
f82dd4b0 70extern int misc_register(struct miscdevice *misc);
f368ed60 71extern void misc_deregister(struct miscdevice *misc);
1da177e4
LT
72
73#define MODULE_ALIAS_MISCDEV(minor) \
74 MODULE_ALIAS("char-major-" __stringify(MISC_MAJOR) \
75 "-" __stringify(minor))
76#endif