blob: f7eaf2d60083a5c7d216456e631b1f2b56ea7892 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _LINUX_MISCDEVICE_H
2#define _LINUX_MISCDEVICE_H
Linus Torvalds1da177e2005-04-16 15:20:36 -07003#include <linux/major.h>
Paul Gortmaker1986c932011-08-29 15:22:17 -04004#include <linux/list.h>
5#include <linux/types.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07006
Alan Cox79907d82010-06-09 09:39:49 +01007/*
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
Tejun Heo193da602008-11-26 12:03:54 +010013#define PSMOUSE_MINOR 1
14#define MS_BUSMOUSE_MINOR 2
15#define ATIXL_BUSMOUSE_MINOR 3
16/*#define AMIGAMOUSE_MINOR 4 FIXME OBSOLETE */
17#define ATARIMOUSE_MINOR 5
18#define SUN_MOUSE_MINOR 6
19#define APOLLO_MOUSE_MINOR 7
20#define PC110PAD_MINOR 9
21/*#define ADB_MOUSE_MINOR 10 FIXME OBSOLETE */
Linus Torvalds1da177e2005-04-16 15:20:36 -070022#define WATCHDOG_MINOR 130 /* Watchdog timer */
23#define TEMP_MINOR 131 /* Temperature Sensor */
Tejun Heo193da602008-11-26 12:03:54 +010024#define RTC_MINOR 135
Linus Torvalds1da177e2005-04-16 15:20:36 -070025#define EFI_RTC_MINOR 136 /* EFI Time services */
Tejun Heo193da602008-11-26 12:03:54 +010026#define SUN_OPENPROM_MINOR 139
Linus Torvalds1da177e2005-04-16 15:20:36 -070027#define DMAPI_MINOR 140 /* DMAPI */
Tejun Heo193da602008-11-26 12:03:54 +010028#define NVRAM_MINOR 144
29#define SGI_MMTIMER 153
Linus Torvalds1da177e2005-04-16 15:20:36 -070030#define STORE_QUEUE_MINOR 155
Tejun Heo193da602008-11-26 12:03:54 +010031#define I2O_MINOR 166
Linus Torvalds1da177e2005-04-16 15:20:36 -070032#define MICROCODE_MINOR 184
Tejun Heo193da602008-11-26 12:03:54 +010033#define TUN_MINOR 200
Tom Gundersencb2ffb22013-09-09 20:18:27 +020034#define CUSE_MINOR 203
Tejun Heo193da602008-11-26 12:03:54 +010035#define MWAVE_MINOR 219 /* ACP/Mwave Modem */
36#define MPT_MINOR 220
Eric Mooredec3f952009-03-09 01:27:49 -060037#define MPT2SAS_MINOR 221
Sreekanth Reddy78ad7242012-11-30 07:58:10 +053038#define MPT3SAS_MINOR 222
Kay Sievers8905aaa2010-08-19 09:52:28 -070039#define UINPUT_MINOR 223
Liu, Jinsongcef12ee2012-06-07 19:56:51 +080040#define MISC_MCELOG_MINOR 227
Tejun Heo193da602008-11-26 12:03:54 +010041#define HPET_MINOR 228
42#define FUSE_MINOR 229
43#define KVM_MINOR 232
Kay Sievers578454f2010-05-20 18:07:20 +020044#define BTRFS_MINOR 234
45#define AUTOFS_MINOR 235
Peter Rajnoha7e507eb2010-08-12 04:14:05 +010046#define MAPPER_CTRL_MINOR 236
Kay Sievers770fe302011-07-31 22:08:04 +020047#define LOOP_CTRL_MINOR 237
stephen hemminger7c7c7f02012-01-11 19:30:38 +000048#define VHOST_NET_MINOR 238
David Herrmann19872d22013-09-09 18:33:54 +020049#define UHID_MINOR 239
Tejun Heo193da602008-11-26 12:03:54 +010050#define MISC_DYNAMIC_MINOR 255
Linus Torvalds1da177e2005-04-16 15:20:36 -070051
52struct device;
Linus Torvalds1da177e2005-04-16 15:20:36 -070053
54struct miscdevice {
55 int minor;
56 const char *name;
Arjan van de Ven99ac48f2006-03-28 01:56:41 -080057 const struct file_operations *fops;
Linus Torvalds1da177e2005-04-16 15:20:36 -070058 struct list_head list;
Greg Kroah-Hartman94fbcde2006-07-27 16:16:04 -070059 struct device *parent;
60 struct device *this_device;
Kay Sieverse454cea2009-09-18 23:01:12 +020061 const char *nodename;
Al Viroa85cfda2011-07-26 04:47:38 -040062 umode_t mode;
Linus Torvalds1da177e2005-04-16 15:20:36 -070063};
64
65extern int misc_register(struct miscdevice * misc);
Rafael J. Wysockib844eba2008-03-23 20:28:24 +010066extern int misc_deregister(struct miscdevice *misc);
Linus Torvalds1da177e2005-04-16 15:20:36 -070067
68#define MODULE_ALIAS_MISCDEV(minor) \
69 MODULE_ALIAS("char-major-" __stringify(MISC_MAJOR) \
70 "-" __stringify(minor))
71#endif