blob: 18fd13028ba1aab8207a1baa9c5b1527435d3a01 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _LINUX_MISCDEVICE_H
2#define _LINUX_MISCDEVICE_H
3#include <linux/module.h>
4#include <linux/major.h>
5
Alan Cox79907d82010-06-09 09:39:49 +01006/*
7 * These allocations are managed by device@lanana.org. If you use an
8 * entry that is not in assigned your entry may well be moved and
9 * reassigned, or set dynamic if a fixed value is not justified.
10 */
11
Tejun Heo193da602008-11-26 12:03:54 +010012#define PSMOUSE_MINOR 1
13#define MS_BUSMOUSE_MINOR 2
14#define ATIXL_BUSMOUSE_MINOR 3
15/*#define AMIGAMOUSE_MINOR 4 FIXME OBSOLETE */
16#define ATARIMOUSE_MINOR 5
17#define SUN_MOUSE_MINOR 6
18#define APOLLO_MOUSE_MINOR 7
19#define PC110PAD_MINOR 9
20/*#define ADB_MOUSE_MINOR 10 FIXME OBSOLETE */
Linus Torvalds1da177e2005-04-16 15:20:36 -070021#define WATCHDOG_MINOR 130 /* Watchdog timer */
22#define TEMP_MINOR 131 /* Temperature Sensor */
Tejun Heo193da602008-11-26 12:03:54 +010023#define RTC_MINOR 135
Linus Torvalds1da177e2005-04-16 15:20:36 -070024#define EFI_RTC_MINOR 136 /* EFI Time services */
Tejun Heo193da602008-11-26 12:03:54 +010025#define SUN_OPENPROM_MINOR 139
Linus Torvalds1da177e2005-04-16 15:20:36 -070026#define DMAPI_MINOR 140 /* DMAPI */
Tejun Heo193da602008-11-26 12:03:54 +010027#define NVRAM_MINOR 144
28#define SGI_MMTIMER 153
Linus Torvalds1da177e2005-04-16 15:20:36 -070029#define STORE_QUEUE_MINOR 155
Tejun Heo193da602008-11-26 12:03:54 +010030#define I2O_MINOR 166
Linus Torvalds1da177e2005-04-16 15:20:36 -070031#define MICROCODE_MINOR 184
Tejun Heo193da602008-11-26 12:03:54 +010032#define TUN_MINOR 200
33#define MWAVE_MINOR 219 /* ACP/Mwave Modem */
34#define MPT_MINOR 220
Eric Mooredec3f952009-03-09 01:27:49 -060035#define MPT2SAS_MINOR 221
Kay Sievers8905aaa2010-08-19 09:52:28 -070036#define UINPUT_MINOR 223
Tejun Heo193da602008-11-26 12:03:54 +010037#define HPET_MINOR 228
38#define FUSE_MINOR 229
39#define KVM_MINOR 232
Kay Sievers578454f2010-05-20 18:07:20 +020040#define BTRFS_MINOR 234
41#define AUTOFS_MINOR 235
Peter Rajnoha7e507eb2010-08-12 04:14:05 +010042#define MAPPER_CTRL_MINOR 236
Tejun Heo193da602008-11-26 12:03:54 +010043#define MISC_DYNAMIC_MINOR 255
Linus Torvalds1da177e2005-04-16 15:20:36 -070044
45struct device;
Linus Torvalds1da177e2005-04-16 15:20:36 -070046
47struct miscdevice {
48 int minor;
49 const char *name;
Arjan van de Ven99ac48f2006-03-28 01:56:41 -080050 const struct file_operations *fops;
Linus Torvalds1da177e2005-04-16 15:20:36 -070051 struct list_head list;
Greg Kroah-Hartman94fbcde2006-07-27 16:16:04 -070052 struct device *parent;
53 struct device *this_device;
Kay Sieverse454cea2009-09-18 23:01:12 +020054 const char *nodename;
55 mode_t mode;
Linus Torvalds1da177e2005-04-16 15:20:36 -070056};
57
58extern int misc_register(struct miscdevice * misc);
Rafael J. Wysockib844eba2008-03-23 20:28:24 +010059extern int misc_deregister(struct miscdevice *misc);
Linus Torvalds1da177e2005-04-16 15:20:36 -070060
61#define MODULE_ALIAS_MISCDEV(minor) \
62 MODULE_ALIAS("char-major-" __stringify(MISC_MAJOR) \
63 "-" __stringify(minor))
64#endif