linux/include/linux/miscdevice.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_MISCDEVICE_H
#define _LINUX_MISCDEVICE_H
#include <linux/major.h>
#include <linux/list.h>
#include <linux/types.h>
#include <linux/device.h>

/*
 *	These allocations are managed by [email protected]. If you need
 *	an entry that is not assigned here, it can be moved and
 *	reassigned or dynamically set if a fixed value is not justified.
 */

#define PSMOUSE_MINOR
#define MS_BUSMOUSE_MINOR
#define ATIXL_BUSMOUSE_MINOR
/*#define AMIGAMOUSE_MINOR	4	FIXME OBSOLETE */
#define ATARIMOUSE_MINOR
#define SUN_MOUSE_MINOR
#define APOLLO_MOUSE_MINOR
#define PC110PAD_MINOR
/*#define ADB_MOUSE_MINOR	10	FIXME OBSOLETE */
#define WATCHDOG_MINOR
#define TEMP_MINOR
#define APM_MINOR_DEV
#define RTC_MINOR
/*#define EFI_RTC_MINOR		136	was EFI Time services */
#define VHCI_MINOR
#define SUN_OPENPROM_MINOR
#define DMAPI_MINOR
#define NVRAM_MINOR
#define SBUS_FLASH_MINOR
#define SGI_MMTIMER
#define PMU_MINOR
#define STORE_QUEUE_MINOR
#define LCD_MINOR
#define AC_MINOR
#define BUTTON_MINOR
#define NWFLASH_MINOR
#define ENVCTRL_MINOR
#define I2O_MINOR
#define UCTRL_MINOR
#define AGPGART_MINOR
#define TOSH_MINOR_DEV
#define HWRNG_MINOR
/*#define MICROCODE_MINOR	184	unused */
#define KEYPAD_MINOR
#define IRNET_MINOR
#define D7S_MINOR
#define VFIO_MINOR
#define PXA3XX_GCU_MINOR
#define TUN_MINOR
#define CUSE_MINOR
#define MWAVE_MINOR
#define MPT_MINOR
#define MPT2SAS_MINOR
#define MPT3SAS_MINOR
#define UINPUT_MINOR
#define MISC_MCELOG_MINOR
#define HPET_MINOR
#define FUSE_MINOR
#define SNAPSHOT_MINOR
#define KVM_MINOR
#define BTRFS_MINOR
#define AUTOFS_MINOR
#define MAPPER_CTRL_MINOR
#define LOOP_CTRL_MINOR
#define VHOST_NET_MINOR
#define UHID_MINOR
#define USERIO_MINOR
#define VHOST_VSOCK_MINOR
#define RFKILL_MINOR
#define MISC_DYNAMIC_MINOR

struct device;
struct attribute_group;

struct miscdevice  {};

extern int misc_register(struct miscdevice *misc);
extern void misc_deregister(struct miscdevice *misc);

/*
 * Helper macro for drivers that don't do anything special in the initcall.
 * This helps to eliminate boilerplate code.
 */
#define builtin_misc_device(__misc_device)

/*
 * Helper macro for drivers that don't do anything special in module init / exit
 * call. This helps to eliminate boilerplate code.
 */
#define module_misc_device(__misc_device)

#define MODULE_ALIAS_MISCDEV(minor)
#endif