__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 *  Copyright (c) 1999 Andreas Gal
 *  Copyright (c) 2000-2001 Vojtech Pavlik
 *  Copyright (c) 2006-2007 Jiri Kosina
 */
/*
 *
 * Should you need to contact me, the author, you can do so either by
 * e-mail - mail your message to <[email protected]>, or by paper mail:
 * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
 */
#ifndef __HID_H
#define __HID_H


#include <linux/bitops.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/list.h>
#include <linux/mod_devicetable.h> /* hid_device_id */
#include <linux/timer.h>
#include <linux/workqueue.h>
#include <linux/input.h>
#include <linux/semaphore.h>
#include <linux/mutex.h>
#include <linux/power_supply.h>
#include <uapi/linux/hid.h>
#include <linux/hid_bpf.h>

/*
 * We parse each description item into this structure. Short items data
 * values are expanded to 32-bit signed int, long items contain a pointer
 * into the data area.
 */

struct hid_item {
	unsigned  format;
	__u8      size;
	__u8      type;
	__u8      tag;
	union {
	    __u8   u8;
	    __s8   s8;
	    __u16  u16;
	    __s16  s16;
	    __u32  u32;
	    __s32  s32;
	    const __u8  *longdata;
	} data;
};

/*
 * HID report item format
 */

#define HID_ITEM_FORMAT_SHORT	0
#define HID_ITEM_FORMAT_LONG	1

/*
 * Special tag indicating long items
 */

#define HID_ITEM_TAG_LONG	15

/*
 * HID report descriptor item type (prefix bit 2,3)
 */

#define HID_ITEM_TYPE_MAIN		0
#define HID_ITEM_TYPE_GLOBAL		1
#define HID_ITEM_TYPE_LOCAL		2
#define HID_ITEM_TYPE_RESERVED		3

/*
 * HID report descriptor main item tags
 */

#define HID_MAIN_ITEM_TAG_INPUT			8
#define HID_MAIN_ITEM_TAG_OUTPUT		9
#define HID_MAIN_ITEM_TAG_FEATURE		11
#define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION	10
#define HID_MAIN_ITEM_TAG_END_COLLECTION	12

/*
 * HID report descriptor main item contents
 */

#define HID_MAIN_ITEM_CONSTANT		0x001
#define HID_MAIN_ITEM_VARIABLE		0x002
#define HID_MAIN_ITEM_RELATIVE		0x004
#define HID_MAIN_ITEM_WRAP		0x008
#define HID_MAIN_ITEM_NONLINEAR		0x010
#define HID_MAIN_ITEM_NO_PREFERRED	0x020
#define HID_MAIN_ITEM_NULL_STATE	0x040
#define HID_MAIN_ITEM_VOLATILE		0x080
#define HID_MAIN_ITEM_BUFFERED_BYTE	0x100

/*
 * HID report descriptor collection item types
 */

#define HID_COLLECTION_PHYSICAL		0
#define HID_COLLECTION_APPLICATION	1
#define HID_COLLECTION_LOGICAL		2
#define HID_COLLECTION_NAMED_ARRAY	4

/*
 * HID report descriptor global item tags
 */

#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE		0
#define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM	1
#define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM	2
#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM	3
#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM	4
#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT	5
#define HID_GLOBAL_ITEM_TAG_UNIT		6
#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE		7
#define HID_GLOBAL_ITEM_TAG_REPORT_ID		8
#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT	9
#define HID_GLOBAL_ITEM_TAG_PUSH		10
#define HID_GLOBAL_ITEM_TAG_POP			11

/*
 * HID report descriptor local item tags
 */

#define HID_LOCAL_ITEM_TAG_USAGE		0
#define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM	1
#define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM	2
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX	3
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM	4
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM	5
#define HID_LOCAL_ITEM_TAG_STRING_INDEX		7
#define HID_LOCAL_ITEM_TAG_STRING_MINIMUM	8
#define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM	9
#define HID_LOCAL_ITEM_TAG_DELIMITER		10

/*
 * HID usage tables
 */

#define HID_USAGE_PAGE		0xffff0000

#define HID_UP_UNDEFINED	0x00000000
#define HID_UP_GENDESK		0x00010000
#define HID_UP_SIMULATION	0x00020000
#define HID_UP_GENDEVCTRLS	0x00060000
#define HID_UP_KEYBOARD		0x00070000
#define HID_UP_LED		0x00080000
#define HID_UP_BUTTON		0x00090000
#define HID_UP_ORDINAL		0x000a0000
#define HID_UP_TELEPHONY	0x000b0000
#define HID_UP_CONSUMER		0x000c0000
#define HID_UP_DIGITIZER	0x000d0000
#define HID_UP_PID		0x000f0000
#define HID_UP_BATTERY		0x00850000
#define HID_UP_CAMERA		0x00900000
#define HID_UP_HPVENDOR         0xff7f0000
#define HID_UP_HPVENDOR2        0xff010000
#define HID_UP_MSVENDOR		0xff000000
#define HID_UP_CUSTOM		0x00ff0000
#define HID_UP_LOGIVENDOR	0xffbc0000
#define HID_UP_LOGIVENDOR2   0xff090000
#define HID_UP_LOGIVENDOR3   0xff430000
#define HID_UP_LNVENDOR		0xffa00000
#define HID_UP_SENSOR		0x00200000
#define HID_UP_ASUSVENDOR	0xff310000
#define HID_UP_GOOGLEVENDOR	0xffd10000

#define HID_USAGE		0x0000ffff

#define HID_GD_POINTER		0x00010001
#define HID_GD_MOUSE		0x00010002
#define HID_GD_JOYSTICK		0x00010004
#define HID_GD_GAMEPAD		0x00010005
#define HID_GD_KEYBOARD		0x00010006
#define HID_GD_KEYPAD		0x00010007
#define HID_GD_MULTIAXIS	0x00010008
/*
 * Microsoft Win8 Wireless Radio Controls extensions CA, see:
 * http://www.usb.org/developers/hidpage/HUTRR40RadioHIDUsagesFinal.pdf
 */
#define HID_GD_WIRELESS_RADIO_CTLS	0x0001000c
/*
 * System Multi-Axis, see:
 * http://www.usb.org/developers/hidpage/HUTRR62_-_Generic_Desktop_CA_for_System_Multi-Axis_Controllers.txt
 */
#define HID_GD_SYSTEM_MULTIAXIS	0x0001000e

#define HID_GD_X		0x00010030
#define HID_GD_Y		0x00010031
#define HID_GD_Z		0x00010032
#define HID_GD_RX		0x00010033
#define HID_GD_RY		0x00010034
#define HID_GD_RZ		0x00010035
#define HID_GD_SLIDER		0x00010036
#define HID_GD_DIAL		0x00010037
#define HID_GD_WHEEL		0x00010038
#define HID_GD_HATSWITCH	0x00010039
#define HID_GD_BUFFER		0x0001003a
#define HID_GD_BYTECOUNT	0x0001003b
#define HID_GD_MOTION		0x0001003c
#define HID_GD_START		0x0001003d
#define HID_GD_SELECT		0x0001003e
#define HID_GD_VX		0x00010040
#define HID_GD_VY		0x00010041
#define HID_GD_VZ		0x00010042
#define HID_GD_VBRX		0x00010043
#define HID_GD_VBRY		0x00010044
#define HID_GD_VBRZ		0x00010045
#define HID_GD_VNO		0x00010046
#define HID_GD_FEATURE		0x00010047
#define HID_GD_RESOLUTION_MULTIPLIER	0x00010048
#define HID_GD_SYSTEM_CONTROL	0x00010080
#define HID_GD_UP		0x00010090
#define HID_GD_DOWN		0x00010091
#define HID_GD_RIGHT		0x00010092
#define HID_GD_LEFT		0x00010093
#define HID_GD_DO_NOT_DISTURB	0x0001009b
/* Microsoft Win8 Wireless Radio Controls CA usage codes */
#define HID_GD_RFKILL_BTN	0x000100c6
#define HID_GD_RFKILL_LED	0x000100c7
#define HID_GD_RFKILL_SWITCH	0x000100c8

#define HID_DC_BATTERYSTRENGTH	0x00060020

#define HID_CP_CONSUMER_CONTROL	0x000c0001
#define HID_CP_AC_PAN		0x000c0238

#define HID_DG_DIGITIZER	0x000d0001
#define HID_DG_PEN		0x000d0002
#define HID_DG_LIGHTPEN		0x000d0003
#define HID_DG_TOUCHSCREEN	0x000d0004
#define HID_DG_TOUCHPAD		0x000d0005
#define HID_DG_WHITEBOARD	0x000d0006
#define HID_DG_STYLUS		0x000d0020
#define HID_DG_PUCK		0x000d0021
#define HID_DG_FINGER		0x000d0022
#define HID_DG_TIPPRESSURE	0x000d0030
#define HID_DG_BARRELPRESSURE	0x000d0031
#define HID_DG_INRANGE		0x000d0032
#define HID_DG_TOUCH		0x000d0033
#define HID_DG_UNTOUCH		0x000d0034
#define HID_DG_TAP		0x000d0035
#define HID_DG_TRANSDUCER_INDEX	0x000d0038
#define HID_DG_TABLETFUNCTIONKEY	0x000d0039
#define HID_DG_PROGRAMCHANGEKEY	0x000d003a
#define HID_DG_BATTERYSTRENGTH	0x000d003b
#define HID_DG_INVERT		0x000d003c
#define HID_DG_TILT_X		0x000d003d
#define HID_DG_TILT_Y		0x000d003e
#define HID_DG_TWIST		0x000d0041
#define HID_DG_TIPSWITCH	0x000d0042
#define HID_DG_TIPSWITCH2	0x000d0043
#define HID_DG_BARRELSWITCH	0x000d0044
#define HID_DG_ERASER		0x000d0045
#define HID_DG_TABLETPICK	0x000d0046
#define HID_DG_PEN_COLOR			0x000d005c
#define HID_DG_PEN_LINE_WIDTH			0x000d005e
#define HID_DG_PEN_LINE_STYLE			0x000d0070
#define HID_DG_PEN_LINE_STYLE_INK		0x000d0072
#define HID_DG_PEN_LINE_STYLE_PENCIL		0x000d0073
#define HID_DG_PEN_LINE_STYLE_HIGHLIGHTER	0x000d0074
#define HID_DG_PEN_LINE_STYLE_CHISEL_MARKER	0x000d0075
#define HID_DG_PEN_LINE_STYLE_BRUSH		0x000d0076
#define HID_DG_PEN_LINE_STYLE_NO_PREFERENCE	0x000d0077

#define HID_CP_CONSUMERCONTROL	0x000c0001
#define HID_CP_NUMERICKEYPAD	0x000c0002
#define HID_CP_PROGRAMMABLEBUTTONS	0x000c0003
#define HID_CP_MICROPHONE	0x000c0004
#define HID_CP_HEADPHONE	0x000c0005
#define HID_CP_GRAPHICEQUALIZER	0x000c0006
#define HID_CP_FUNCTIONBUTTONS	0x000c0036
#define HID_CP_SELECTION	0x000c0080
#define HID_CP_MEDIASELECTION	0x000c0087
#define HID_CP_SELECTDISC	0x000c00ba
#define HID_CP_VOLUMEUP		0x000c00e9
#define HID_CP_VOLUMEDOWN	0x000c00ea
#define HID_CP_PLAYBACKSPEED	0x000c00f1
#define HID_CP_PROXIMITY	0x000c0109
#define HID_CP_SPEAKERSYSTEM	0x000c0160
#define HID_CP_CHANNELLEFT	0x000c0161
#define HID_CP_CHANNELRIGHT	0x000c0162
#define HID_CP_CHANNELCENTER	0x000c0163
#define HID_CP_CHANNELFRONT	0x000c0164
#define HID_CP_CHANNELCENTERFRONT	0x000c0165
#define HID_CP_CHANNELSIDE	0x000c0166
#define HID_CP_CHANNELSURROUND	0x000c0167
#define HID_CP_CHANNELLOWFREQUENCYENHANCEMENT	0x000c0168
#define HID_CP_CHANNELTOP	0x000c0169
#define HID_CP_CHANNELUNKNOWN	0x000c016a
#define HID_CP_APPLICATIONLAUNCHBUTTONS	0x000c0180
#define HID_CP_GENERICGUIAPPLICATIONCONTROLS	0x000c0200

#define HID_DG_DEVICECONFIG	0x000d000e
#define HID_DG_DEVICESETTINGS	0x000d0023
#define HID_DG_AZIMUTH		0x000d003f
#define HID_DG_CONFIDENCE	0x000d0047
#define HID_DG_WIDTH		0x000d0048
#define HID_DG_HEIGHT		0x000d0049
#define HID_DG_CONTACTID	0x000d0051
#define HID_DG_INPUTMODE	0x000d0052
#define HID_DG_DEVICEINDEX	0x000d0053
#define HID_DG_CONTACTCOUNT	0x000d0054
#define HID_DG_CONTACTMAX	0x000d0055
#define HID_DG_SCANTIME		0x000d0056
#define HID_DG_SURFACESWITCH	0x000d0057
#define HID_DG_BUTTONSWITCH	0x000d0058
#define HID_DG_BUTTONTYPE	0x000d0059
#define HID_DG_BARRELSWITCH2	0x000d005a
#define HID_DG_TOOLSERIALNUMBER	0x000d005b
#define HID_DG_LATENCYMODE	0x000d0060

#define HID_BAT_ABSOLUTESTATEOFCHARGE	0x00850065
#define HID_BAT_CHARGING		0x00850044

#define HID_VD_ASUS_CUSTOM_MEDIA_KEYS	0xff310076

/*
 * HID connect requests
 */

#define HID_CONNECT_HIDINPUT		BIT(0)
#define HID_CONNECT_HIDINPUT_FORCE	BIT(1)
#define HID_CONNECT_HIDRAW		BIT(2)
#define HID_CONNECT_HIDDEV		BIT(3)
#define HID_CONNECT_HIDDEV_FORCE	BIT(4)
#define HID_CONNECT_FF			BIT(5)
#define HID_CONNECT_DRIVER		BIT(6)
#define HID_CONNECT_DEFAULT	(HID_CONNECT_HIDINPUT|HID_CONNECT_HIDRAW| \
		HID_CONNECT_HIDDEV|HID_CONNECT_FF)

/*
 * HID device quirks.
 */

/*
 * Increase this if you need to configure more HID quirks at module load time
 */
#define MAX_USBHID_BOOT_QUIRKS 4

/**
 * DOC: HID quirks
 * | @HID_QUIRK_NOTOUCH:
 * | @HID_QUIRK_IGNORE: ignore this device
 * | @HID_QUIRK_NOGET:
 * | @HID_QUIRK_HIDDEV_FORCE:
 * | @HID_QUIRK_BADPAD:
 * | @HID_QUIRK_MULTI_INPUT:
 * | @HID_QUIRK_HIDINPUT_FORCE:
 * | @HID_QUIRK_ALWAYS_POLL:
 * | @HID_QUIRK_INPUT_PER_APP:
 * | @HID_QUIRK_X_INVERT:
 * | @HID_QUIRK_Y_INVERT:
 * | @HID_QUIRK_SKIP_OUTPUT_REPORTS:
 * | @HID_QUIRK_SKIP_OUTPUT_REPORT_ID:
 * | @HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP:
 * | @HID_QUIRK_HAVE_SPECIAL_DRIVER:
 * | @HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE:
 * | @HID_QUIRK_IGNORE_SPECIAL_DRIVER
 * | @HID_QUIRK_FULLSPEED_INTERVAL:
 * | @HID_QUIRK_NO_INIT_REPORTS:
 * | @HID_QUIRK_NO_IGNORE:
 * | @HID_QUIRK_NO_INPUT_SYNC:
 */
/* BIT(0) reserved for backward compatibility, was HID_QUIRK_INVERT */
#define HID_QUIRK_NOTOUCH			BIT(1)
#define HID_QUIRK_IGNORE			BIT(2)
#define HID_QUIRK_NOGET				BIT(3)
#define HID_QUIRK_HIDDEV_FORCE			BIT(4)
#define HID_QUIRK_BADPAD			BIT(5)
#define HID_QUIRK_MULTI_INPUT			BIT(6)
#define HID_QUIRK_HIDINPUT_FORCE		BIT(7)
/* BIT(8) reserved for backward compatibility, was HID_QUIRK_NO_EMPTY_INPUT */
/* BIT(9) reserved for backward compatibility, was NO_INIT_INPUT_REPORTS */
#define HID_QUIRK_ALWAYS_POLL			BIT(10)
#define HID_QUIRK_INPUT_PER_APP			BIT(11)
#define HID_QUIRK_X_INVERT			BIT(12)
#define HID_QUIRK_Y_INVERT			BIT(13)
#define HID_QUIRK_SKIP_OUTPUT_REPORTS		BIT(16)
#define HID_QUIRK_SKIP_OUTPUT_REPORT_ID		BIT(17)
#define HID_QUIRK_NO_OUTPUT_REPORTS_ON_INTR_EP	BIT(18)
#define HID_QUIRK_HAVE_SPECIAL_DRIVER		BIT(19)
#define HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE	BIT(20)
#define HID_QUIRK_NOINVERT			BIT(21)
#define HID_QUIRK_IGNORE_SPECIAL_DRIVER		BIT(22)
#define HID_QUIRK_FULLSPEED_INTERVAL		BIT(28)
#define HID_QUIRK_NO_INIT_REPORTS		BIT(29)
#define HID_QUIRK_NO_IGNORE			BIT(30)
#define HID_QUIRK_NO_INPUT_SYNC			BIT(31)

/*
 * HID device groups
 *
 * Note: HID_GROUP_ANY is declared in linux/mod_devicetable.h
 * and has a value of 0x0000
 */
#define HID_GROUP_GENERIC			0x0001
#define HID_GROUP_MULTITOUCH			0x0002
#define HID_GROUP_SENSOR_HUB			0x0003
#define HID_GROUP_MULTITOUCH_WIN_8		0x0004

/*
 * Vendor specific HID device groups
 */
#define HID_GROUP_RMI				0x0100
#define HID_GROUP_WACOM				0x0101
#define HID_GROUP_LOGITECH_DJ_DEVICE		0x0102
#define HID_GROUP_STEAM				0x0103
#define HID_GROUP_LOGITECH_27MHZ_DEVICE		0x0104
#define HID_GROUP_VIVALDI			0x0105

/*
 * HID protocol status
 */
#define HID_REPORT_PROTOCOL	1
#define HID_BOOT_PROTOCOL	0

/*
 * This is the global environment of the parser. This information is
 * persistent for main-items. The global environment can be saved and
 * restored with PUSH/POP statements.
 */

struct hid_global {
	unsigned usage_page;
	__s32    logical_minimum;
	__s32    logical_maximum;
	__s32    physical_minimum;
	__s32    physical_maximum;
	__s32    unit_exponent;
	unsigned unit;
	unsigned report_id;
	unsigned report_size;
	unsigned report_count;
};

/*
 * This is the local environment. It is persistent up the next main-item.
 */

#define HID_MAX_USAGES			12288
#define HID_DEFAULT_NUM_COLLECTIONS	16

struct hid_local {
	unsigned usage[HID_MAX_USAGES]; /* usage array */
	u8 usage_size[HID_MAX_USAGES]; /* usage size array */
	unsigned collection_index[HID_MAX_USAGES]; /* collection index array */
	unsigned usage_index;
	unsigned usage_minimum;
	unsigned delimiter_depth;
	unsigned delimiter_branch;
};

/*
 * This is the collection stack. We climb up the stack to determine
 * application and function of each field.
 */

struct hid_collection {
	int parent_idx; /* device->collection */
	unsigned type;
	unsigned usage;
	unsigned level;
};

struct hid_usage {
	unsigned  hid;			/* hid usage code */
	unsigned  collection_index;	/* index into collection array */
	unsigned  usage_index;		/* index into usage array */
	__s8	  resolution_multiplier;/* Effective Resolution Multiplier
					   (HUT v1.12, 4.3.1), default: 1 */
	/* hidinput data */
	__s8	  wheel_factor;		/* 120/resolution_multiplier */
	__u16     code;			/* input driver code */
	__u8      type;			/* input driver type */
	__s16	  hat_min;		/* hat switch fun */
	__s16	  hat_max;		/* ditto */
	__s16	  hat_dir;		/* ditto */
	__s16	  wheel_accumulated;	/* hi-res wheel */
};

struct hid_input;

struct hid_field {
	unsigned  physical;		/* physical usage for this field */
	unsigned  logical;		/* logical usage for this field */
	unsigned  application;		/* application usage for this field */
	struct hid_usage *usage;	/* usage table for this function */
	unsigned  maxusage;		/* maximum usage index */
	unsigned  flags;		/* main-item flags (i.e. volatile,array,constant) */
	unsigned  report_offset;	/* bit offset in the report */
	unsigned  report_size;		/* size of this field in the report */
	unsigned  report_count;		/* number of this field in the report */
	unsigned  report_type;		/* (input,output,feature) */
	__s32    *value;		/* last known value(s) */
	__s32    *new_value;		/* newly read value(s) */
	__s32    *usages_priorities;	/* priority of each usage when reading the report
					 * bits 8-16 are reserved for hid-input usage
					 */
	__s32     logical_minimum;
	__s32     logical_maximum;
	__s32     physical_minimum;
	__s32     physical_maximum;
	__s32     unit_exponent;
	unsigned  unit;
	bool      ignored;		/* this field is ignored in this event */
	struct hid_report *report;	/* associated report */
	unsigned index;			/* index into report->field[] */
	/* hidinput data */
	struct hid_input *hidinput;	/* associated input structure */
	__u16 dpad;			/* dpad input code */
	unsigned int slot_idx;		/* slot index in a report */
};

#define HID_MAX_FIELDS 256

struct hid_field_entry {
	struct list_head list;
	struct hid_field *field;
	unsigned int index;
	__s32 priority;
};

struct hid_report {
	struct list_head list;
	struct list_head hidinput_list;
	struct list_head field_entry_list;		/* ordered list of input fields */
	unsigned int id;				/* id of this report */
	enum hid_report_type type;			/* report type */
	unsigned int application;			/* application usage for this report */
	struct hid_field *field[HID_MAX_FIELDS];	/* fields of the report */
	struct hid_field_entry *field_entries;		/* allocated memory of input field_entry */
	unsigned maxfield;				/* maximum valid field index */
	unsigned size;					/* size of the report (bits) */
	struct hid_device *device;			/* associated device */

	/* tool related state */
	bool tool_active;				/* whether the current tool is active */
	unsigned int tool;				/* BTN_TOOL_* */
};

#define HID_MAX_IDS 256

struct hid_report_enum {
	unsigned numbered;
	struct list_head report_list;
	struct hid_report *report_id_hash[HID_MAX_IDS];
};

#define HID_MIN_BUFFER_SIZE	64		/* make sure there is at least a packet size of space */
#define HID_MAX_BUFFER_SIZE	16384		/* 16kb */
#define HID_CONTROL_FIFO_SIZE	256		/* to init devices with >100 reports */
#define HID_OUTPUT_FIFO_SIZE	64

struct hid_control_fifo {
	unsigned char dir;
	struct hid_report *report;
	char *raw_report;
};

struct hid_output_fifo {
	struct hid_report *report;
	char *raw_report;
};

#define HID_CLAIMED_INPUT	BIT(0)
#define HID_CLAIMED_HIDDEV	BIT(1)
#define HID_CLAIMED_HIDRAW	BIT(2)
#define HID_CLAIMED_DRIVER	BIT(3)

#define HID_STAT_ADDED		BIT(0)
#define HID_STAT_PARSED		BIT(1)
#define HID_STAT_DUP_DETECTED	BIT(2)
#define HID_STAT_REPROBED	BIT(3)

struct hid_input {
	struct list_head list;
	struct hid_report *report;
	struct input_dev *input;
	const char *name;
	struct list_head reports;	/* the list of reports */
	unsigned int application;	/* application usage for this input */
	bool registered;
};

enum hid_type {
	HID_TYPE_OTHER = 0,
	HID_TYPE_USBMOUSE,
	HID_TYPE_USBNONE
};

enum hid_battery_status {
	HID_BATTERY_UNKNOWN = 0,
	HID_BATTERY_QUERIED,		/* Kernel explicitly queried battery strength */
	HID_BATTERY_REPORTED,		/* Device sent unsolicited battery strength report */
};

struct hid_driver;
struct hid_ll_driver;

struct hid_device {
	const __u8 *dev_rdesc;						/* device report descriptor */
	const __u8 *bpf_rdesc;						/* bpf modified report descriptor, if any */
	const __u8 *rdesc;						/* currently used report descriptor */
	unsigned int dev_rsize;
	unsigned int bpf_rsize;
	unsigned int rsize;
	unsigned int collection_size;					/* Number of allocated hid_collections */
	struct hid_collection *collection;				/* List of HID collections */
	unsigned int maxcollection;						/* Number of parsed collections */
	unsigned int maxapplication;					/* Number of applications */
	__u16 bus;							/* BUS ID */
	__u16 group;							/* Report group */
	__u32 vendor;							/* Vendor ID */
	__u32 product;							/* Product ID */
	__u32 version;							/* HID version */
	enum hid_type type;						/* device type (mouse, kbd, ...) */
	unsigned country;						/* HID country */
	struct hid_report_enum report_enum[HID_REPORT_TYPES];
	struct work_struct led_work;					/* delayed LED worker */

	struct semaphore driver_input_lock;				/* protects the current driver */
	struct device dev;						/* device */
	struct hid_driver *driver;
	void *devres_group_id;						/* ID of probe devres group	*/

	const struct hid_ll_driver *ll_driver;
	struct mutex ll_open_lock;
	unsigned int ll_open_count;

#ifdef CONFIG_HID_BATTERY_STRENGTH
	/*
	 * Power supply information for HID devices which report
	 * battery strength. power_supply was successfully registered if
	 * battery is non-NULL.
	 */
	struct power_supply *battery;
	__s32 battery_capacity;
	__s32 battery_min;
	__s32 battery_max;
	__s32 battery_report_type;
	__s32 battery_report_id;
	__s32 battery_charge_status;
	enum hid_battery_status battery_status;
	bool battery_avoid_query;
	ktime_t battery_ratelimit_time;
#endif

	unsigned long status;						/* see STAT flags above */
	unsigned claimed;						/* Claimed by hidinput, hiddev? */
	unsigned quirks;						/* Various quirks the device can pull on us */
	unsigned initial_quirks;					/* Initial set of quirks supplied when creating device */
	bool io_started;						/* If IO has started */

	struct list_head inputs;					/* The list of inputs */
	void *hiddev;							/* The hiddev structure */
	void *hidraw;

	char name[128];							/* Device name */
	char phys[64];							/* Device physical location */
	char uniq[64];							/* Device unique identifier (serial #) */

	void *driver_data;

	/* temporary hid_ff handling (until moved to the drivers) */
	int (*ff_init)(struct hid_device *);

	/* hiddev event handler */
	int (*hiddev_connect)(struct hid_device *, unsigned int);
	void (*hiddev_disconnect)(struct hid_device *);
	void (*hiddev_hid_event) (struct hid_device *, struct hid_field *field,
				  struct hid_usage *, __s32);
	void (*hiddev_report_event) (struct hid_device *, struct hid_report *);

	/* debugging support via debugfs */
	unsigned short debug;
	struct dentry *debug_dir;
	struct dentry *debug_rdesc;
	struct dentry *debug_events;
	struct list_head debug_list;
	spinlock_t  debug_list_lock;
	wait_queue_head_t debug_wait;
	struct kref			ref;

	unsigned int id;						/* system unique id */

#ifdef CONFIG_HID_BPF
	struct hid_bpf bpf;						/* hid-bpf data */
#endif /* CONFIG_HID_BPF */
};

void hiddev_free(struct kref *ref);

#define to_hid_device(pdev) \
	container_of(pdev, struct hid_device, dev)

static inline void *hid_get_drvdata(struct hid_device *hdev)
{
	return dev_get_drvdata(&hdev->dev);
}

static inline void hid_set_drvdata(struct hid_device *hdev, void *data)
{
	dev_set_drvdata(&hdev->dev, data);
}

#define HID_GLOBAL_STACK_SIZE 4
#define HID_COLLECTION_STACK_SIZE 4

#define HID_SCAN_FLAG_MT_WIN_8			BIT(0)
#define HID_SCAN_FLAG_VENDOR_SPECIFIC		BIT(1)
#define HID_SCAN_FLAG_GD_POINTER		BIT(2)

struct hid_parser {
	struct hid_global     global;
	struct hid_global     global_stack[HID_GLOBAL_STACK_SIZE];
	unsigned int          global_stack_ptr;
	struct hid_local      local;
	unsigned int         *collection_stack;
	unsigned int          collection_stack_ptr;
	unsigned int          collection_stack_size;
	struct hid_device    *device;
	unsigned int          scan_flags;
};

struct hid_class_descriptor {
	__u8  bDescriptorType;
	__le16 wDescriptorLength;
} __attribute__ ((packed));

struct hid_descriptor {
	__u8  bLength;
	__u8  bDescriptorType;
	__le16 bcdHID;
	__u8  bCountryCode;
	__u8  bNumDescriptors;
	struct hid_class_descriptor rpt_desc;

	struct hid_class_descriptor opt_descs[];
} __attribute__ ((packed));

#define HID_DEVICE(b, g, ven, prod)					\
	.bus = (b), .group = (g), .vendor = (ven), .product = (prod)
#define HID_USB_DEVICE(ven, prod)				\
	.bus = BUS_USB, .vendor = (ven), .product = (prod)
#define HID_BLUETOOTH_DEVICE(ven, prod)					\
	.bus = BUS_BLUETOOTH, .vendor = (ven), .product = (prod)
#define HID_I2C_DEVICE(ven, prod)				\
	.bus = BUS_I2C, .vendor = (ven), .product = (prod)

#define HID_REPORT_ID(rep) \
	.report_type = (rep)
#define HID_USAGE_ID(uhid, utype, ucode) \
	.usage_hid = (uhid), .usage_type = (utype), .usage_code = (ucode)
/* we don't want to catch types and codes equal to 0 */
#define HID_TERMINATOR		(HID_ANY_ID - 1)

struct hid_report_id {
	__u32 report_type;
};
struct hid_usage_id {
	__u32 usage_hid;
	__u32 usage_type;
	__u32 usage_code;
};

/**
 * struct hid_driver
 * @name: driver name (e.g. "Footech_bar-wheel")
 * @id_table: which devices is this driver for (must be non-NULL for probe
 * 	      to be called)
 * @dyn_list: list of dynamically added device ids
 * @dyn_lock: lock protecting @dyn_list
 * @match: check if the given device is handled by this driver
 * @probe: new device inserted
 * @remove: device removed (NULL if not a hot-plug capable driver)
 * @report_table: on which reports to call raw_event (NULL means all)
 * @raw_event: if report in report_table, this hook is called (NULL means nop)
 * @usage_table: on which events to call event (NULL means all)
 * @event: if usage in usage_table, this hook is called (NULL means nop)
 * @report: this hook is called after parsing a report (NULL means nop)
 * @report_fixup: called before report descriptor parsing (NULL means nop)
 * @input_mapping: invoked on input registering before mapping an usage
 * @input_mapped: invoked on input registering after mapping an usage
 * @input_configured: invoked just before the device is registered
 * @feature_mapping: invoked on feature registering
 * @suspend: invoked on suspend (NULL means nop)
 * @resume: invoked on resume if device was not reset (NULL means nop)
 * @reset_resume: invoked on resume if device was reset (NULL means nop)
 *
 * probe should return -errno on error, or 0 on success. During probe,
 * input will not be passed to raw_event unless hid_device_io_start is
 * called.
 *
 * raw_event and event should return negative on error, any other value will
 * pass the event on to .event() typically return 0 for success.
 *
 * input_mapping shall return a negative value to completely ignore this usage
 * (e.g. doubled or invalid usage), zero to continue with parsing of this
 * usage by generic code (no special handling needed) or positive to skip
 * generic parsing (needed special handling which was done in the hook already)
 * input_mapped shall return negative to inform the layer that this usage
 * should not be considered for further processing or zero to notify that
 * no processing was performed and should be done in a generic manner
 * Both these functions may be NULL which means the same behavior as returning
 * zero from them.
 */
struct hid_driver {
	char *name;
	const struct hid_device_id *id_table;

	struct list_head dyn_list;
	spinlock_t dyn_lock;

	bool (*match)(struct hid_device *dev, bool ignore_special_driver);
	int (*probe)(struct hid_device *dev, const struct hid_device_id *id);
	void (*remove)(struct hid_device *dev);

	const struct hid_report_id *report_table;
	int (*raw_event)(struct hid_device *hdev, struct hid_report *report,
			u8 *data, int size);
	const struct hid_usage_id *usage_table;
	int (*event)(struct hid_device *hdev, struct hid_field *field,
			struct hid_usage *usage, __s32 value);
	void (*report)(struct hid_device *hdev, struct hid_report *report);

	const __u8 *(*report_fixup)(struct hid_device *hdev, __u8 *buf,
			unsigned int *size);

	int (*input_mapping)(struct hid_device *hdev,
			struct hid_input *hidinput, struct hid_field *field,
			struct hid_usage *usage, unsigned long **bit, int *max);
	int (*input_mapped)(struct hid_device *hdev,
			struct hid_input *hidinput, struct hid_field *field,
			struct hid_usage *usage, unsigned long **bit, int *max);
	int (*input_configured)(struct hid_device *hdev,
				struct hid_input *hidinput);
	void (*feature_mapping)(struct hid_device *hdev,
			struct hid_field *field,
			struct hid_usage *usage);

	int (*suspend)(struct hid_device *hdev, pm_message_t message);
	int (*resume)(struct hid_device *hdev);
	int (*reset_resume)(struct hid_device *hdev);

/* private: */
	struct device_driver driver;
};

#define to_hid_driver(pdrv) \
	container_of(pdrv, struct hid_driver, driver)

/**
 * struct hid_ll_driver - low level driver callbacks
 * @start: called on probe to start the device
 * @stop: called on remove
 * @open: called by input layer on open
 * @close: called by input layer on close
 * @power: request underlying hardware to enter requested power mode
 * @parse: this method is called only once to parse the device data,
 *	   shouldn't allocate anything to not leak memory
 * @request: send report request to device (e.g. feature report)
 * @wait: wait for buffered io to complete (send/recv reports)
 * @raw_request: send raw report request to device (e.g. feature report)
 * @output_report: send output report to device
 * @idle: send idle request to device
 * @may_wakeup: return if device may act as a wakeup source during system-suspend
 * @max_buffer_size: over-ride maximum data buffer size (default: HID_MAX_BUFFER_SIZE)
 */
struct hid_ll_driver {
	int (*start)(struct hid_device *hdev);
	void (*stop)(struct hid_device *hdev);

	int (*open)(struct hid_device *hdev);
	void (*close)(struct hid_device *hdev);

	int (*power)(struct hid_device *hdev, int level);

	int (*parse)(struct hid_device *hdev);

	void (*request)(struct hid_device *hdev,
			struct hid_report *report, int reqtype);

	int (*wait)(struct hid_device *hdev);

	int (*raw_request) (struct hid_device *hdev, unsigned char reportnum,
			    __u8 *buf, size_t len, unsigned char rtype,
			    int reqtype);

	int (*output_report) (struct hid_device *hdev, __u8 *buf, size_t len);

	int (*idle)(struct hid_device *hdev, int report, int idle, int reqtype);
	bool (*may_wakeup)(struct hid_device *hdev);

	unsigned int max_buffer_size;
};

extern bool hid_is_usb(const struct hid_device *hdev);

#define	PM_HINT_FULLON	1<<5
#define PM_HINT_NORMAL	1<<1

/* Applications from HID Usage Tables 4/8/99 Version 1.1 */
/* We ignore a few input applications that are not widely used */
#define IS_INPUT_APPLICATION(a) \
		(((a >= HID_UP_GENDESK) && (a <= HID_GD_MULTIAXIS)) \
		|| ((a >= HID_DG_DIGITIZER) && (a <= HID_DG_WHITEBOARD)) \
		|| (a == HID_GD_SYSTEM_CONTROL) || (a == HID_CP_CONSUMER_CONTROL) \
		|| (a == HID_GD_WIRELESS_RADIO_CTLS))

/* HID core API */

extern bool hid_ignore(struct hid_device *);
extern int hid_add_device(struct hid_device *);
extern void hid_destroy_device(struct hid_device *);

extern const struct bus_type hid_bus_type;

extern int __must_check __hid_register_driver(struct hid_driver *,
		struct module *, const char *mod_name);

/* use a define to avoid include chaining to get THIS_MODULE & friends */
#define hid_register_driver(driver) \
	__hid_register_driver(driver, THIS_MODULE, KBUILD_MODNAME)

extern void hid_unregister_driver(struct hid_driver *);

/**
 * module_hid_driver() - Helper macro for registering a HID driver
 * @__hid_driver: hid_driver struct
 *
 * Helper macro for HID drivers which do not do anything special in module
 * init/exit. This eliminates a lot of boilerplate. Each module may only
 * use this macro once, and calling it replaces module_init() and module_exit()
 */
#define module_hid_driver(__hid_driver) \
	module_driver(__hid_driver, hid_register_driver, \
		      hid_unregister_driver)

extern void hidinput_hid_event(struct hid_device *, struct hid_field *, struct hid_usage *, __s32);
extern void hidinput_report_event(struct hid_device *hid, struct hid_report *report);
extern int hidinput_connect(struct hid_device *hid, unsigned int force);
extern void hidinput_disconnect(struct hid_device *);

struct hid_field *hid_find_field(struct hid_device *hdev, unsigned int report_type,
				 unsigned int application, unsigned int usage);
int hid_set_field(struct hid_field *, unsigned, __s32);
int hid_input_report(struct hid_device *hid, enum hid_report_type type, u8 *data, u32 size,
		     int interrupt);
struct hid_field *hidinput_get_led_field(struct hid_device *hid);
unsigned int hidinput_count_leds(struct hid_device *hid);
__s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code);
void hid_output_report(struct hid_report *report, __u8 *data);
int __hid_request(struct hid_device *hid, struct hid_report *rep, enum hid_class_request reqtype);
u8 *hid_alloc_report_buf(struct hid_report *report, gfp_t flags);
struct hid_device *hid_allocate_device(void);
struct hid_report *hid_register_report(struct hid_device *device,
				       enum hid_report_type type, unsigned int id,
				       unsigned int application);
int hid_parse_report(struct hid_device *hid, const __u8 *start, unsigned size);
struct hid_report *hid_validate_values(struct hid_device *hid,
				       enum hid_report_type type, unsigned int id,
				       unsigned int field_index,
				       unsigned int report_counts);

void hid_setup_resolution_multiplier(struct hid_device *hid);
int hid_open_report(struct hid_device *device);
int hid_check_keys_pressed(struct hid_device *hid);
int hid_connect(struct hid_device *hid, unsigned int connect_mask);
void hid_disconnect(struct hid_device *hid);
bool hid_match_one_id(const struct hid_device *hdev,
		      const struct hid_device_id *id);
const struct hid_device_id *hid_match_id(const struct hid_device *hdev,
					 const struct hid_device_id *id);
const struct hid_device_id *hid_match_device(struct hid_device *hdev,
					     struct hid_driver *hdrv);
bool hid_compare_device_paths(struct hid_device *hdev_a,
			      struct hid_device *hdev_b, char separator);
__u32 hid_field_extract(const struct hid_device *hid, __u8 *report,
		     unsigned offset, unsigned n);

#ifdef CONFIG_PM
int hid_driver_suspend(struct hid_device *hdev, pm_message_t state);
int hid_driver_reset_resume(struct hid_device *hdev);
int hid_driver_resume(struct hid_device *hdev);
#else
static inline int hid_driver_suspend(struct hid_device *hdev, pm_message_t state) { return 0; }
static inline int hid_driver_reset_resume(struct hid_device *hdev) { return 0; }
static inline int hid_driver_resume(struct hid_device *hdev) { return 0; }
#endif

/**
 * hid_device_io_start - enable HID input during probe, remove
 *
 * @hid: the device
 *
 * This should only be called during probe or remove and only be
 * called by the thread calling probe or remove. It will allow
 * incoming packets to be delivered to the driver.
 */
static inline void hid_device_io_start(struct hid_device *hid) {
	if (hid->io_started) {
		dev_warn(&hid->dev, "io already started\n");
		return;
	}
	hid->io_started = true;
	up(&hid->driver_input_lock);
}

/**
 * hid_device_io_stop - disable HID input during probe, remove
 *
 * @hid: the device
 *
 * Should only be called after hid_device_io_start. It will prevent
 * incoming packets from going to the driver for the duration of
 * probe, remove. If called during probe, packets will still go to the
 * driver after probe is complete. This function should only be called
 * by the thread calling probe or remove.
 */
static inline void hid_device_io_stop(struct hid_device *hid) {
	if (!hid->io_started) {
		dev_warn(&hid->dev, "io already stopped\n");
		return;
	}
	hid->io_started = false;
	down(&hid->driver_input_lock);
}

/**
 * hid_map_usage - map usage input bits
 *
 * @hidinput: hidinput which we are interested in
 * @usage: usage to fill in
 * @bit: pointer to input->{}bit (out parameter)
 * @max: maximal valid usage->code to consider later (out parameter)
 * @type: input event type (EV_KEY, EV_REL, ...)
 * @c: code which corresponds to this usage and type
 *
 * The value pointed to by @bit will be set to NULL if either @type is
 * an unhandled event type, or if @c is out of range for @type. This
 * can be used as an error condition.
 */
static inline void hid_map_usage(struct hid_input *hidinput,
		struct hid_usage *usage, unsigned long **bit, int *max,
		__u8 type, unsigned int c)
{
	struct input_dev *input = hidinput->input;
	unsigned long *bmap = NULL;
	unsigned int limit = 0;

	switch (type) {
	case EV_ABS:
		bmap = input->absbit;
		limit = ABS_MAX;
		break;
	case EV_REL:
		bmap = input->relbit;
		limit = REL_MAX;
		break;
	case EV_KEY:
		bmap = input->keybit;
		limit = KEY_MAX;
		break;
	case EV_LED:
		bmap = input->ledbit;
		limit = LED_MAX;
		break;
	case EV_MSC:
		bmap = input->mscbit;
		limit = MSC_MAX;
		break;
	}

	if (unlikely(c > limit || !bmap)) {
		pr_warn_ratelimited("%s: Invalid code %d type %d\n",
				    input->name, c, type);
		*bit = NULL;
		return;
	}

	usage->type = type;
	usage->code = c;
	*max = limit;
	*bit = bmap;
}

/**
 * hid_map_usage_clear - map usage input bits and clear the input bit
 *
 * @hidinput: hidinput which we are interested in
 * @usage: usage to fill in
 * @bit: pointer to input->{}bit (out parameter)
 * @max: maximal valid usage->code to consider later (out parameter)
 * @type: input event type (EV_KEY, EV_REL, ...)
 * @c: code which corresponds to this usage and type
 *
 * The same as hid_map_usage, except the @c bit is also cleared in supported
 * bits (@bit).
 */
static inline void hid_map_usage_clear(struct hid_input *hidinput,
		struct hid_usage *usage, unsigned long **bit, int *max,
		__u8 type, __u16 c)
{
	hid_map_usage(hidinput, usage, bit, max, type, c);
	if (*bit)
		clear_bit(usage->code, *bit);
}

/**
 * hid_parse - parse HW reports
 *
 * @hdev: hid device
 *
 * Call this from probe after you set up the device (if needed). Your
 * report_fixup will be called (if non-NULL) after reading raw report from
 * device before passing it to hid layer for real parsing.
 */
static inline int __must_check hid_parse(struct hid_device *hdev)
{
	return hid_open_report(hdev);
}

int __must_check hid_hw_start(struct hid_device *hdev,
			      unsigned int connect_mask);
void hid_hw_stop(struct hid_device *hdev);
int __must_check hid_hw_open(struct hid_device *hdev);
void hid_hw_close(struct hid_device *hdev);
void hid_hw_request(struct hid_device *hdev,
		    struct hid_report *report, enum hid_class_request reqtype);
int __hid_hw_raw_request(struct hid_device *hdev,
			 unsigned char reportnum, __u8 *buf,
			 size_t len, enum hid_report_type rtype,
			 enum hid_class_request reqtype,
			 __u64 source, bool from_bpf);
int __hid_hw_output_report(struct hid_device *hdev, __u8 *buf, size_t len, __u64 source,
			   bool from_bpf);
int hid_hw_raw_request(struct hid_device *hdev,
		       unsigned char reportnum, __u8 *buf,
		       size_t len, enum hid_report_type rtype,
		       enum hid_class_request reqtype);
int hid_hw_output_report(struct hid_device *hdev, __u8 *buf, size_t len);

/**
 * hid_hw_power - requests underlying HW to go into given power mode
 *
 * @hdev: hid device
 * @level: requested power level (one of %PM_HINT_* defines)
 *
 * This function requests underlying hardware to enter requested power
 * mode.
 */

static inline int hid_hw_power(struct hid_device *hdev, int level)
{
	return hdev->ll_driver->power ? hdev->ll_driver->power(hdev, level) : 0;
}


/**
 * hid_hw_idle - send idle request to device
 *
 * @hdev: hid device
 * @report: report to control
 * @idle: idle state
 * @reqtype: hid request type
 */
static inline int hid_hw_idle(struct hid_device *hdev, int report, int idle,
		enum hid_class_request reqtype)
{
	if (hdev->ll_driver->idle)
		return hdev->ll_driver->idle(hdev, report, idle, reqtype);

	return 0;
}

/**
 * hid_hw_may_wakeup - return if the hid device may act as a wakeup source during system-suspend
 *
 * @hdev: hid device
 */
static inline bool hid_hw_may_wakeup(struct hid_device *hdev)
{
	if (hdev->ll_driver->may_wakeup)
		return hdev->ll_driver->may_wakeup(hdev);

	if (hdev->dev.parent)
		return device_may_wakeup(hdev->dev.parent);

	return false;
}

/**
 * hid_hw_wait - wait for buffered io to complete
 *
 * @hdev: hid device
 */
static inline void hid_hw_wait(struct hid_device *hdev)
{
	if (hdev->ll_driver->wait)
		hdev->ll_driver->wait(hdev);
}

/**
 * hid_report_len - calculate the report length
 *
 * @report: the report we want to know the length
 */
static inline u32 hid_report_len(struct hid_report *report)
{
	return DIV_ROUND_UP(report->size, 8) + (report->id > 0);
}

int hid_report_raw_event(struct hid_device *hid, enum hid_report_type type, u8 *data, u32 size,
			 int interrupt);

/* HID quirks API */
unsigned long hid_lookup_quirk(const struct hid_device *hdev);
int hid_quirks_init(char **quirks_param, __u16 bus, int count);
void hid_quirks_exit(__u16 bus);

#define dbg_hid(fmt, ...) pr_debug("%s: " fmt, __FILE__, ##__VA_ARGS__)

#define hid_err(hid, fmt, ...)				\
	dev_err(&(hid)->dev, fmt, ##__VA_ARGS__)
#define hid_notice(hid, fmt, ...)			\
	dev_notice(&(hid)->dev, fmt, ##__VA_ARGS__)
#define hid_warn(hid, fmt, ...)				\
	dev_warn(&(hid)->dev, fmt, ##__VA_ARGS__)
#define hid_info(hid, fmt, ...)				\
	dev_info(&(hid)->dev, fmt, ##__VA_ARGS__)
#define hid_dbg(hid, fmt, ...)				\
	dev_dbg(&(hid)->dev, fmt, ##__VA_ARGS__)

#define hid_err_once(hid, fmt, ...)			\
	dev_err_once(&(hid)->dev, fmt, ##__VA_ARGS__)
#define hid_notice_once(hid, fmt, ...)			\
	dev_notice_once(&(hid)->dev, fmt, ##__VA_ARGS__)
#define hid_warn_once(hid, fmt, ...)			\
	dev_warn_once(&(hid)->dev, fmt, ##__VA_ARGS__)
#define hid_info_once(hid, fmt, ...)			\
	dev_info_once(&(hid)->dev, fmt, ##__VA_ARGS__)
#define hid_dbg_once(hid, fmt, ...)			\
	dev_dbg_once(&(hid)->dev, fmt, ##__VA_ARGS__)

#endif

Filemanager

Name Type Size Permission Actions
amba Folder 0755
atomic Folder 0755
avf Folder 0755
bcma Folder 0755
bus Folder 0755
byteorder Folder 0755
can Folder 0755
cdx Folder 0755
ceph Folder 0755
clk Folder 0755
comedi Folder 0755
crush Folder 0755
decompress Folder 0755
device Folder 0755
dma Folder 0755
dsa Folder 0755
extcon Folder 0755
firmware Folder 0755
fpga Folder 0755
framer Folder 0755
fsl Folder 0755
gpio Folder 0755
greybus Folder 0755
habanalabs Folder 0755
hsi Folder 0755
i3c Folder 0755
iio Folder 0755
input Folder 0755
io_uring Folder 0755
irqchip Folder 0755
isdn Folder 0755
lockd Folder 0755
lsm Folder 0755
mailbox Folder 0755
mdio Folder 0755
memory Folder 0755
mfd Folder 0755
misc Folder 0755
mlx4 Folder 0755
mlx5 Folder 0755
mmc Folder 0755
mtd Folder 0755
mux Folder 0755
net Folder 0755
netfilter Folder 0755
netfilter_arp Folder 0755
netfilter_bridge Folder 0755
netfilter_ipv4 Folder 0755
netfilter_ipv6 Folder 0755
pcs Folder 0755
pds Folder 0755
perf Folder 0755
phy Folder 0755
pinctrl Folder 0755
platform_data Folder 0755
power Folder 0755
pse-pd Folder 0755
pwrseq Folder 0755
qat Folder 0755
qed Folder 0755
raid Folder 0755
regulator Folder 0755
remoteproc Folder 0755
reset Folder 0755
rpmsg Folder 0755
rtc Folder 0755
sched Folder 0755
soc Folder 0755
soundwire Folder 0755
spi Folder 0755
ssb Folder 0755
sunrpc Folder 0755
surface_aggregator Folder 0755
ulpi Folder 0755
unaligned Folder 0755
usb Folder 0755
8250_pci.h File 1.01 KB 0644
acct.h File 2.45 KB 0644
acpi.h File 44.88 KB 0644
acpi_amd_wbrf.h File 2.24 KB 0644
acpi_dma.h File 2.95 KB 0644
acpi_iort.h File 2.64 KB 0644
acpi_mdio.h File 819 B 0644
acpi_pmtmr.h File 1.02 KB 0644
acpi_viot.h File 478 B 0644
adb.h File 1.79 KB 0644
adfs_fs.h File 574 B 0644
adreno-smmu-priv.h File 3.15 KB 0644
adxl.h File 310 B 0644
aer.h File 1.49 KB 0644
agp_backend.h File 3.45 KB 0644
agpgart.h File 3.79 KB 0644
ahci-remap.h File 607 B 0644
ahci_platform.h File 1.81 KB 0644
aio.h File 570 B 0644
alarmtimer.h File 1.83 KB 0644
alcor_pci.h File 8.74 KB 0644
align.h File 552 B 0644
alloc_tag.h File 6.4 KB 0644
altera_jtaguart.h File 379 B 0644
altera_uart.h File 397 B 0644
amd-iommu.h File 2.12 KB 0644
amd-pmf-io.h File 1.58 KB 0644
anon_inodes.h File 1021 B 0644
aperture.h File 1.61 KB 0644
apm-emulation.h File 1.56 KB 0644
apm_bios.h File 2.25 KB 0644
apple-gmux.h File 4.63 KB 0644
arch_topology.h File 2.93 KB 0644
args.h File 1021 B 0644
arm-cci.h File 1.39 KB 0644
arm-smccc.h File 20.7 KB 0644
arm_ffa.h File 14.71 KB 0644
arm_sdei.h File 2.67 KB 0644
armada-37xx-rwtm-mailbox.h File 431 B 0644
array_size.h File 332 B 0644
ascii85.h File 555 B 0644
asn1.h File 1.79 KB 0644
asn1_ber_bytecode.h File 2.52 KB 0644
asn1_decoder.h File 493 B 0644
asn1_encoder.h File 983 B 0644
assoc_array.h File 2.88 KB 0644
assoc_array_priv.h File 5.3 KB 0644
async.h File 4.36 KB 0644
async_tx.h File 6.7 KB 0644
ata.h File 30.39 KB 0644
ata_platform.h File 755 B 0644
atalk.h File 4.45 KB 0644
atm.h File 287 B 0644
atm_tcp.h File 542 B 0644
atmdev.h File 10.17 KB 0644
atmel-isc-media.h File 2.07 KB 0644
atmel-ssc.h File 9.74 KB 0644
atmel_pdc.h File 1.26 KB 0644
atomic.h File 2.58 KB 0644
attribute_container.h File 2.47 KB 0644
audit.h File 20.48 KB 0644
audit_arch.h File 559 B 0644
auto_dev-ioctl.h File 296 B 0644
auto_fs.h File 278 B 0644
auxiliary_bus.h File 10.33 KB 0644
auxvec.h File 304 B 0644
average.h File 2.42 KB 0644
backing-dev-defs.h File 8.4 KB 0644
backing-dev.h File 10.41 KB 0644
backing-file.h File 1.51 KB 0644
backlight.h File 11.9 KB 0644
badblocks.h File 2.66 KB 0644
balloon_compaction.h File 6 KB 0644
base64.h File 370 B 0644
bcd.h File 683 B 0644
bch.h File 2.1 KB 0644
bcm47xx_nvram.h File 1.2 KB 0644
bcm47xx_sprom.h File 616 B 0644
bcm47xx_wdt.h File 555 B 0644
bcm963xx_nvram.h File 2.96 KB 0644
bcm963xx_tag.h File 3.6 KB 0644
binfmts.h File 4.63 KB 0644
bio-integrity.h File 4.16 KB 0644
bio.h File 18.01 KB 0644
bit_spinlock.h File 2.3 KB 0644
bitfield.h File 6.39 KB 0644
bitmap-str.h File 842 B 0644
bitmap.h File 29.11 KB 0644
bitops.h File 10.14 KB 0644
bitrev.h File 2.53 KB 0644
bits.h File 1.57 KB 0644
blk-cgroup.h File 1.53 KB 0644
blk-crypto-profile.h File 5.3 KB 0644
blk-crypto.h File 4.13 KB 0644
blk-integrity.h File 3.99 KB 0644
blk-mq.h File 33.72 KB 0644
blk-pm.h File 647 B 0644
blk_types.h File 15.31 KB 0644
blkdev.h File 49.82 KB 0644
blkpg.h File 436 B 0644
blktrace_api.h File 3.55 KB 0644
blockgroup_lock.h File 810 B 0644
bma150.h File 1.25 KB 0644
bootconfig.h File 9.27 KB 0644
bootmem_info.h File 2.04 KB 0644
bottom_half.h File 1013 B 0644
bpf-cgroup-defs.h File 2.07 KB 0644
bpf-cgroup.h File 18.4 KB 0644
bpf-netns.h File 1.41 KB 0644
bpf.h File 110.52 KB 0644
bpf_crypto.h File 865 B 0644
bpf_lirc.h File 698 B 0644
bpf_local_storage.h File 6.61 KB 0644
bpf_lsm.h File 2.01 KB 0644
bpf_mem_alloc.h File 2.05 KB 0644
bpf_mprog.h File 9.29 KB 0644
bpf_trace.h File 166 B 0644
bpf_types.h File 6.1 KB 0644
bpf_verifier.h File 33.06 KB 0644
bpfptr.h File 2.09 KB 0644
brcmphy.h File 21.77 KB 0644
bsearch.h File 624 B 0644
bsg-lib.h File 1.71 KB 0644
bsg.h File 499 B 0644
btf.h File 20.05 KB 0644
btf_ids.h File 8.18 KB 0644
btree-128.h File 2.67 KB 0644
btree-type.h File 3.9 KB 0644
btree.h File 6.84 KB 0644
btrfs.h File 145 B 0644
buffer_head.h File 17.37 KB 0644
bug.h File 2.33 KB 0644
build-salt.h File 375 B 0644
build_bug.h File 2.99 KB 0644
buildid.h File 671 B 0644
bvec.h File 7.54 KB 0644
c2port.h File 1.35 KB 0644
cache.h File 5.51 KB 0644
cacheflush.h File 675 B 0644
cacheinfo.h File 4.92 KB 0644
call_once.h File 1.67 KB 0644
capability.h File 6.27 KB 0644
cb710.h File 5.36 KB 0644
cc_platform.h File 3.42 KB 0644
cciss_ioctl.h File 1.03 KB 0644
ccp.h File 18.14 KB 0644
cdev.h File 845 B 0644
cdrom.h File 8.92 KB 0644
cfag12864b.h File 1.07 KB 0644
cfi.h File 1.23 KB 0644
cfi_types.h File 1.06 KB 0644
cgroup-defs.h File 26.77 KB 0644
cgroup.h File 26.33 KB 0644
cgroup_api.h File 26 B 0644
cgroup_dmem.h File 1.91 KB 0644
cgroup_rdma.h File 1.18 KB 0644
cgroup_refcnt.h File 2.59 KB 0644
cgroup_subsys.h File 1.28 KB 0644
circ_buf.h File 1.09 KB 0644
cleanup.h File 13.45 KB 0644
clk-provider.h File 65.77 KB 0644
clk.h File 36.18 KB 0644
clkdev.h File 1.2 KB 0644
clockchips.h File 7.29 KB 0644
clocksource.h File 11.01 KB 0644
clocksource_ids.h File 333 B 0644
closure.h File 14.22 KB 0644
cma.h File 2.26 KB 0644
cmpxchg-emu.h File 435 B 0644
cn_proc.h File 1.85 KB 0644
cnt32_to_63.h File 3.46 KB 0644
coda.h File 2.16 KB 0644
codetag.h File 3.4 KB 0644
compaction.h File 4.5 KB 0644
compat.h File 32.32 KB 0644
compiler-clang.h File 4.13 KB 0644
compiler-gcc.h File 3.92 KB 0644
compiler-version.h File 517 B 0644
compiler.h File 12.26 KB 0644
compiler_attributes.h File 15.91 KB 0644
compiler_types.h File 18.79 KB 0644
completion.h File 4.14 KB 0644
component.h File 4.35 KB 0644
configfs.h File 8.54 KB 0644
connector.h File 4.01 KB 0644
console.h File 24.18 KB 0644
console_struct.h File 6.98 KB 0644
consolemap.h File 1.25 KB 0644
const.h File 100 B 0644
container.h File 616 B 0644
container_of.h File 1.3 KB 0644
context_tracking.h File 4.4 KB 0644
context_tracking_irq.h File 633 B 0644
context_tracking_state.h File 3.8 KB 0644
cookie.h File 1.22 KB 0644
cordic.h File 2.08 KB 0644
coredump.h File 2.17 KB 0644
coresight-pmu.h File 2.32 KB 0644
coresight-stm.h File 152 B 0644
coresight.h File 22.68 KB 0644
count_zeros.h File 1.42 KB 0644
counter.h File 21.48 KB 0644
cper.h File 17.59 KB 0644
cpu.h File 6.67 KB 0644
cpu_cooling.h File 1.83 KB 0644
cpu_pm.h File 2.38 KB 0644
cpu_rmap.h File 1.7 KB 0644
cpu_smt.h File 1.12 KB 0644
cpufeature.h File 1.71 KB 0644
cpufreq.h File 36.37 KB 0644
cpuhotplug.h File 16.95 KB 0644
cpuhplock.h File 1.52 KB 0644
cpuidle.h File 11.42 KB 0644
cpuidle_haltpoll.h File 312 B 0644
cpumask.h File 37.26 KB 0644
cpumask_api.h File 27 B 0644
cpumask_types.h File 2.18 KB 0644
cpuset.h File 8.01 KB 0644
crash_core.h File 2.65 KB 0644
crash_dump.h File 6.29 KB 0644
crash_reserve.h File 1.33 KB 0644
crc-ccitt.h File 369 B 0644
crc-itu-t.h File 530 B 0644
crc-t10dif.h File 759 B 0644
crc16.h File 540 B 0644
crc32.h File 4.23 KB 0644
crc32c.h File 346 B 0644
crc32poly.h File 610 B 0644
crc4.h File 192 B 0644
crc64.h File 539 B 0644
crc7.h File 316 B 0644
crc8.h File 3.66 KB 0644
cred.h File 11.95 KB 0644
crypto.h File 19.01 KB 0644
cs5535.h File 6.13 KB 0644
ctype.h File 1.87 KB 0644
cuda.h File 620 B 0644
damon.h File 33.47 KB 0644
dasd_mod.h File 204 B 0644
davinci_emac.h File 1.05 KB 0644
dax.h File 8.75 KB 0644
dca.h File 1.88 KB 0644
dcache.h File 18.81 KB 0644
dccp.h File 10.74 KB 0644
debug_locks.h File 1.57 KB 0644
debugfs.h File 15.87 KB 0644
debugobjects.h File 4.09 KB 0644
delay.h File 4.18 KB 0644
delayacct.h File 7.08 KB 0644
delayed_call.h File 709 B 0644
dev_printk.h File 9.74 KB 0644
devcoredump.h File 3.53 KB 0644
devfreq-event.h File 5.95 KB 0644
devfreq.h File 14.52 KB 0644
devfreq_cooling.h File 2.7 KB 0644
device-mapper.h File 21.11 KB 0644
device.h File 43.19 KB 0644
device_cgroup.h File 1.57 KB 0644
devm-helpers.h File 2.67 KB 0644
devpts_fs.h File 1.13 KB 0644
dfl.h File 2.72 KB 0644
digsig.h File 1.18 KB 0644
dim.h File 12.69 KB 0644
dio.h File 10.77 KB 0644
dirent.h File 215 B 0644
dlm.h File 6.44 KB 0644
dlm_plock.h File 642 B 0644
dm-bufio.h File 5.16 KB 0644
dm-dirty-log.h File 4 KB 0644
dm-io.h File 2.03 KB 0644
dm-kcopyd.h File 3.03 KB 0644
dm-region-hash.h File 3.16 KB 0644
dm-verity-loadpin.h File 617 B 0644
dm9000.h File 987 B 0644
dma-buf.h File 21.21 KB 0644
dma-direct.h File 4.16 KB 0644
dma-direction.h File 407 B 0644
dma-fence-array.h File 2.86 KB 0644
dma-fence-chain.h File 3.66 KB 0644
dma-fence-unwrap.h File 2.24 KB 0644
dma-fence.h File 22.94 KB 0644
dma-heap.h File 1.13 KB 0644
dma-map-ops.h File 15.89 KB 0644
dma-mapping.h File 21.19 KB 0644
dma-resv.h File 16.94 KB 0644
dmaengine.h File 55.21 KB 0644
dmapool.h File 1.79 KB 0644
dmar.h File 8.06 KB 0644
dmi.h File 4.27 KB 0644
dnotify.h File 1012 B 0644
dns_resolver.h File 1.36 KB 0644
dpll.h File 6.78 KB 0644
dqblk_qtree.h File 2.19 KB 0644
dqblk_v1.h File 327 B 0644
dqblk_v2.h File 406 B 0644
drbd.h File 9.92 KB 0644
drbd_config.h File 285 B 0644
drbd_genl.h File 21.49 KB 0644
drbd_genl_api.h File 1.76 KB 0644
drbd_limits.h File 7.92 KB 0644
ds2782_battery.h File 158 B 0644
dtlk.h File 3.5 KB 0644
dtpm.h File 1.46 KB 0644
dw_apb_timer.h File 1.32 KB 0644
dynamic_debug.h File 10.96 KB 0644
dynamic_queue_limits.h File 5.43 KB 0644
earlycpio.h File 359 B 0644
ecryptfs.h File 3.82 KB 0644
edac.h File 19.44 KB 0644
edd.h File 1.05 KB 0644
eeprom_93cx6.h File 2.64 KB 0644
efi-bgrt.h File 644 B 0644
efi.h File 44.59 KB 0644
efi_embedded_fw.h File 1.04 KB 0644
efs_vh.h File 1.55 KB 0644
eisa.h File 2.97 KB 0644
elf-fdpic.h File 2.39 KB 0644
elf-randomize.h File 583 B 0644
elf.h File 2.97 KB 0644
elfcore-compat.h File 1.43 KB 0644
elfcore.h File 3.93 KB 0644
elfnote-lto.h File 314 B 0644
elfnote.h File 3.54 KB 0644
enclosure.h File 4.02 KB 0644
energy_model.h File 13.12 KB 0644
entry-common.h File 18.62 KB 0644
entry-kvm.h File 2.77 KB 0644
err.h File 3.35 KB 0644
errname.h File 283 B 0644
errno.h File 1.45 KB 0644
error-injection.h File 630 B 0644
errqueue.h File 524 B 0644
errseq.h File 382 B 0644
etherdevice.h File 19.37 KB 0644
ethtool.h File 52.71 KB 0644
ethtool_netlink.h File 3.74 KB 0644
eventfd.h File 2.1 KB 0644
eventpoll.h File 2.41 KB 0644
evm.h File 2.12 KB 0644
execmem.h File 5.72 KB 0644
export-internal.h File 2.3 KB 0644
export.h File 2.67 KB 0644
exportfs.h File 11.19 KB 0644
ext2_fs.h File 967 B 0644
extable.h File 1.28 KB 0644
extcon-provider.h File 3.83 KB 0644
extcon.h File 9.99 KB 0644
f2fs_fs.h File 20.26 KB 0644
f75375s.h File 541 B 0644
falloc.h File 1.79 KB 0644
fanotify.h File 4.99 KB 0644
fault-inject-usercopy.h File 496 B 0644
fault-inject.h File 3.07 KB 0644
fb.h File 30.04 KB 0644
fbcon.h File 2.09 KB 0644
fcdevice.h File 774 B 0644
fcntl.h File 1.66 KB 0644
fd.h File 490 B 0644
fddidevice.h File 833 B 0644
fdtable.h File 3.08 KB 0644
fec.h File 463 B 0644
fiemap.h File 831 B 0644
file.h File 3.66 KB 0644
file_ref.h File 5.46 KB 0644
fileattr.h File 1.9 KB 0644
filelock.h File 13.17 KB 0644
filter.h File 48.89 KB 0644
find.h File 20.71 KB 0644
fips.h File 303 B 0644
firewire.h File 17.27 KB 0644
firmware-map.h File 959 B 0644
firmware.h File 6.3 KB 0644
fixp-arith.h File 4.21 KB 0644
flat.h File 2.57 KB 0644
flex_proportions.h File 1.98 KB 0644
folio_queue.h File 9.99 KB 0644
font.h File 1.7 KB 0644
fortify-string.h File 28.64 KB 0644
fprobe.h File 3.92 KB 0644
fpu.h File 246 B 0644
freezer.h File 2.34 KB 0644
fs.h File 129.11 KB 0644
fs_api.h File 22 B 0644
fs_context.h File 8.36 KB 0644
fs_parser.h File 5.01 KB 0644
fs_pin.h File 539 B 0644
fs_stack.h File 895 B 0644
fs_struct.h File 1.04 KB 0644
fs_types.h File 2.02 KB 0644
fscache-cache.h File 7.09 KB 0644
fscache.h File 24.09 KB 0644
fscrypt.h File 34.57 KB 0644
fsi-occ.h File 715 B 0644
fsi-sbefifo.h File 629 B 0644
fsi.h File 2.27 KB 0644
fsl-diu-fb.h File 3.87 KB 0644
fsl_devices.h File 4.16 KB 0644
fsl_hypervisor.h File 2.76 KB 0644
fsl_ifc.h File 24.48 KB 0644
fsldma.h File 202 B 0644
fsnotify.h File 13.17 KB 0644
fsnotify_backend.h File 31.2 KB 0644
fsverity.h File 9.29 KB 0644
ftrace.h File 43.74 KB 0644
ftrace_irq.h File 884 B 0644
ftrace_regs.h File 1.31 KB 0644
futex.h File 2.44 KB 0644
fw_table.h File 1.75 KB 0644
fwnode.h File 7.81 KB 0644
fwnode_mdio.h File 858 B 0644
gameport.h File 5.24 KB 0644
gcd.h File 193 B 0644
genalloc.h File 7.68 KB 0644
generic-radix-tree.h File 11.43 KB 0644
genl_magic_func.h File 11.67 KB 0644
genl_magic_struct.h File 7.58 KB 0644
getcpu.h File 641 B 0644
gfp.h File 14.84 KB 0644
gfp_api.h File 23 B 0644
gfp_types.h File 16.57 KB 0644
glob.h File 256 B 0644
gnss.h File 1.56 KB 0644
goldfish.h File 878 B 0644
gpio-pxa.h File 571 B 0644
gpio.h File 5.01 KB 0644
gpio_keys.h File 1.81 KB 0644
greybus.h File 3.57 KB 0644
group_cpus.h File 310 B 0644
hardirq.h File 3.25 KB 0644
hash.h File 2.93 KB 0644
hashtable.h File 6.67 KB 0644
hashtable_api.h File 29 B 0644
hdlc.h File 3.19 KB 0644
hdlcdrv.h File 6.32 KB 0644
hdmi.h File 12.84 KB 0644
hex.h File 884 B 0644
hid-debug.h File 1.42 KB 0644
hid-over-i2c.h File 3.53 KB 0644
hid-over-spi.h File 4.91 KB 0644
hid-roccat.h File 490 B 0644
hid-sensor-hub.h File 8.97 KB 0644
hid-sensor-ids.h File 7.85 KB 0644
hid.h File 39.52 KB 0644
hid_bpf.h File 8.19 KB 0644
hidden.h File 966 B 0644
hiddev.h File 1.42 KB 0644
hidraw.h File 1.13 KB 0644
highmem-internal.h File 6.62 KB 0644
highmem.h File 18.61 KB 0644
highuid.h File 3.12 KB 0644
hil.h File 18.42 KB 0644
hil_mlc.h File 5.13 KB 0644
hippidevice.h File 1.08 KB 0644
hisi_acc_qm.h File 14.13 KB 0644
hmm.h File 3.93 KB 0644
host1x.h File 13.67 KB 0644
host1x_context_bus.h File 337 B 0644
hp_sdc.h File 14.01 KB 0644
hpet.h File 2.55 KB 0644
hrtimer.h File 11.36 KB 0644
hrtimer_api.h File 27 B 0644
hrtimer_defs.h File 4.22 KB 0644
hrtimer_types.h File 1.53 KB 0644
hte.h File 7.37 KB 0644
huge_mm.h File 18.87 KB 0644
hugetlb.h File 36.03 KB 0644
hugetlb_cgroup.h File 6.78 KB 0644
hugetlb_inline.h File 374 B 0644
hw_breakpoint.h File 4.19 KB 0644
hw_random.h File 2.23 KB 0644
hwmon-sysfs.h File 2.8 KB 0644
hwmon-vid.h File 862 B 0644
hwmon.h File 15.94 KB 0644
hwspinlock.h File 15.79 KB 0644
hyperv.h File 49.31 KB 0644
hypervisor.h File 748 B 0644
i2c-algo-bit.h File 1.4 KB 0644
i2c-algo-pca.h File 2.89 KB 0644
i2c-algo-pcf.h File 1.21 KB 0644
i2c-atr.h File 3.95 KB 0644
i2c-dev.h File 371 B 0644
i2c-mux.h File 1.61 KB 0644
i2c-of-prober.h File 4.94 KB 0644
i2c-smbus.h File 1.69 KB 0644
i2c.h File 39.67 KB 0644
i8042.h File 2.45 KB 0644
i8253.h File 808 B 0644
i8254.h File 489 B 0644
icmp.h File 1 KB 0644
icmpv6.h File 2.87 KB 0644
idle_inject.h File 1.02 KB 0644
idr.h File 9.72 KB 0644
ieee80211.h File 180.45 KB 0644
ieee802154.h File 14.46 KB 0644
if_arp.h File 1.81 KB 0644
if_bridge.h File 5.42 KB 0644
if_eql.h File 1.13 KB 0644
if_ether.h File 1.26 KB 0644
if_fddi.h File 3.24 KB 0644
if_hsr.h File 1.5 KB 0644
if_link.h File 592 B 0644
if_macvlan.h File 2.76 KB 0644
if_phonet.h File 319 B 0644
if_pppol2tp.h File 501 B 0644
if_pppox.h File 2.83 KB 0644
if_rmnet.h File 2.06 KB 0644
if_tap.h File 2.21 KB 0644
if_team.h File 7.94 KB 0644
if_tun.h File 1.54 KB 0644
if_tunnel.h File 409 B 0644
if_vlan.h File 22.16 KB 0644
igmp.h File 4.42 KB 0644
ihex.h File 2.15 KB 0644
ima.h File 2.71 KB 0644
imx-media.h File 605 B 0644
in.h File 2.29 KB 0644
in6.h File 1.63 KB 0644
indirect_call_wrapper.h File 2.24 KB 0644
inet.h File 2.64 KB 0644
inet_diag.h File 2.76 KB 0644
inetdevice.h File 9.53 KB 0644
init.h File 12 KB 0644
init_ohci1394_dma.h File 196 B 0644
init_syscalls.h File 1.01 KB 0644
init_task.h File 1.1 KB 0644
initrd.h File 1008 B 0644
inotify.h File 628 B 0644
input.h File 20.81 KB 0644
instruction_pointer.h File 346 B 0644
instrumentation.h File 1.85 KB 0644
instrumented.h File 6.21 KB 0644
int_log.h File 1.26 KB 0644
integrity.h File 1.46 KB 0644
intel-ish-client-if.h File 4.13 KB 0644
intel_rapl.h File 6 KB 0644
intel_tcc.h File 466 B 0644
intel_th.h File 2.44 KB 0644
intel_tpmi.h File 1.99 KB 0644
intel_vsec.h File 4.24 KB 0644
interconnect-clk.h File 648 B 0644
interconnect-provider.h File 5.53 KB 0644
interconnect.h File 3.36 KB 0644
interrupt.h File 27.29 KB 0644
interval_tree.h File 2.88 KB 0644
interval_tree_generic.h File 6.7 KB 0644
io-64-nonatomic-hi-lo.h File 2.41 KB 0644
io-64-nonatomic-lo-hi.h File 2.41 KB 0644
io-mapping.h File 4.69 KB 0644
io-pgtable.h File 10.18 KB 0644
io.h File 5.51 KB 0644
io_uring.h File 1.04 KB 0644
io_uring_types.h File 18.69 KB 0644
ioam6.h File 226 B 0644
ioam6_genl.h File 266 B 0644
ioam6_iptunnel.h File 285 B 0644
iocontext.h File 4.16 KB 0644
iomap.h File 15.6 KB 0644
iommu-dma.h File 2.98 KB 0644
iommu-helper.h File 1.12 KB 0644
iommu.h File 53.6 KB 0644
iommufd.h File 7.34 KB 0644
iopoll.h File 7.9 KB 0644
ioport.h File 15.09 KB 0644
ioprio.h File 2.17 KB 0644
ioremap.h File 744 B 0644
iosys-map.h File 16.8 KB 0644
iov_iter.h File 10.36 KB 0644
iova.h File 4.2 KB 0644
iova_bitmap.h File 1.31 KB 0644
ip.h File 1.56 KB 0644
ipack.h File 8.69 KB 0644
ipc.h File 619 B 0644
ipc_namespace.h File 5.63 KB 0644
ipmi.h File 11.09 KB 0644
ipmi_smi.h File 9.83 KB 0644
ipv6.h File 8.23 KB 0644
ipv6_route.h File 372 B 0644
irq.h File 43.49 KB 0644
irq_poll.h File 575 B 0644
irq_sim.h File 1.35 KB 0644
irq_work.h File 2.04 KB 0644
irqbypass.h File 3.45 KB 0644
irqchip.h File 2.65 KB 0644
irqdesc.h File 8.04 KB 0644
irqdomain.h File 24.75 KB 0644
irqdomain_defs.h File 842 B 0644
irqflags.h File 7.96 KB 0644
irqflags_types.h File 563 B 0644
irqhandler.h File 284 B 0644
irqnr.h File 1.5 KB 0644
irqreturn.h File 529 B 0644
isa-dma.h File 276 B 0644
isa.h File 3.33 KB 0644
isapnp.h File 2.88 KB 0644
iscsi_boot_sysfs.h File 3.71 KB 0644
iscsi_ibft.h File 994 B 0644
ism.h File 2.2 KB 0644
iversion.h File 10.96 KB 0644
jbd2.h File 51.56 KB 0644
jhash.h File 4.56 KB 0644
jiffies.h File 20.07 KB 0644
journal-head.h File 2.91 KB 0644
joystick.h File 437 B 0644
jump_label.h File 16.45 KB 0644
jump_label_ratelimit.h File 2.77 KB 0644
jz4740-adc.h File 1023 B 0644
jz4780-nemc.h File 976 B 0644
kallsyms.h File 4.26 KB 0644
kasan-checks.h File 1.46 KB 0644
kasan-enabled.h File 639 B 0644
kasan-tags.h File 487 B 0644
kasan.h File 20.56 KB 0644
kbd_diacr.h File 198 B 0644
kbd_kern.h File 3.6 KB 0644
kbuild.h File 380 B 0644
kconfig.h File 2.63 KB 0644
kcore.h File 611 B 0644
kcov.h File 4.31 KB 0644
kcsan-checks.h File 18.63 KB 0644
kcsan.h File 2.19 KB 0644
kdb.h File 7.36 KB 0644
kdebug.h File 487 B 0644
kdev_t.h File 1.8 KB 0644
kern_levels.h File 1.57 KB 0644
kernel-page-flags.h File 522 B 0644
kernel.h File 12.88 KB 0644
kernel_read_file.h File 1.62 KB 0644
kernel_stat.h File 3.63 KB 0644
kernelcapi.h File 1.45 KB 0644
kernfs.h File 19.49 KB 0644
kexec.h File 12.68 KB 0644
key-type.h File 6.63 KB 0644
key.h File 16.05 KB 0644
keyboard.h File 665 B 0644
keyctl.h File 1.25 KB 0644
kfence.h File 8.7 KB 0644
kfifo.h File 28.9 KB 0644
kgdb.h File 12.02 KB 0644
khugepaged.h File 1.78 KB 0644
klist.h File 1.88 KB 0644
kmemleak.h File 3.24 KB 0644
kmod.h File 1.02 KB 0644
kmsan-checks.h File 2.86 KB 0644
kmsan.h File 11.52 KB 0644
kmsan_string.h File 681 B 0644
kmsan_types.h File 906 B 0644
kmsg_dump.h File 3.12 KB 0644
kobj_map.h File 545 B 0644
kobject.h File 6.96 KB 0644
kobject_api.h File 27 B 0644
kobject_ns.h File 1.79 KB 0644
kprobes.h File 16.25 KB 0644
kref.h File 3.84 KB 0644
kref_api.h File 24 B 0644
ks0108.h File 970 B 0644
ks8842.h File 632 B 0644
ks8851_mll.h File 472 B 0644
ksm.h File 4.08 KB 0644
kstrtox.h File 6.51 KB 0644
kthread.h File 8.48 KB 0644
ktime.h File 5.4 KB 0644
ktime_api.h File 25 B 0644
kvm_dirty_ring.h File 2.68 KB 0644
kvm_host.h File 77.92 KB 0644
kvm_irqfd.h File 1.99 KB 0644
kvm_para.h File 402 B 0644
kvm_types.h File 2.6 KB 0644
l2tp.h File 261 B 0644
lantiq.h File 365 B 0644
lapb.h File 1.78 KB 0644
latencytop.h File 1.06 KB 0644
lcd.h File 4.18 KB 0644
lcm.h File 275 B 0644
led-class-flash.h File 6.08 KB 0644
led-class-multicolor.h File 2.44 KB 0644
led-lm3530.h File 3.7 KB 0644
leds-bd2802.h File 476 B 0644
leds-expresswire.h File 1.13 KB 0644
leds-lp3944.h File 950 B 0644
leds-lp3952.h File 2.35 KB 0644
leds-pca9532.h File 866 B 0644
leds-regulator.h File 1.14 KB 0644
leds-ti-lmu-common.h File 1.12 KB 0644
leds.h File 23.34 KB 0644
libata.h File 69.91 KB 0644
libfdt.h File 202 B 0644
libfdt_env.h File 491 B 0644
libgcc.h File 875 B 0644
libnvdimm.h File 9.93 KB 0644
libps2.h File 2.47 KB 0644
license.h File 418 B 0644
limits.h File 809 B 0644
linear_range.h File 2.01 KB 0644
linkage.h File 9.56 KB 0644
linkmode.h File 2.17 KB 0644
linux_logo.h File 1.81 KB 0644
lis3lv02d.h File 5 KB 0644
list.h File 35.12 KB 0644
list_bl.h File 4.79 KB 0644
list_lru.h File 9.8 KB 0644
list_nulls.h File 4.22 KB 0644
list_sort.h File 374 B 0644
litex.h File 2.06 KB 0644
livepatch.h File 8.26 KB 0644
livepatch_sched.h File 802 B 0644
llc.h File 749 B 0644
llist.h File 10.43 KB 0644
llist_api.h File 25 B 0644
local_lock.h File 1.98 KB 0644
local_lock_internal.h File 4.24 KB 0644
lockdep.h File 20.9 KB 0644
lockdep_api.h File 27 B 0644
lockdep_types.h File 7.61 KB 0644
lockref.h File 1.65 KB 0644
log2.h File 6.24 KB 0644
logic_iomem.h File 2.07 KB 0644
logic_pio.h File 3.11 KB 0644
lp.h File 2.76 KB 0644
lru_cache.h File 11.67 KB 0644
lsm_audit.h File 3.22 KB 0644
lsm_count.h File 2.36 KB 0644
lsm_hook_defs.h File 24.09 KB 0644
lsm_hooks.h File 4.81 KB 0644
lwq.h File 3.69 KB 0644
lz4.h File 26.69 KB 0644
lzo.h File 1.93 KB 0644
mISDNdsp.h File 1.19 KB 0644
mISDNhw.h File 5.39 KB 0644
mISDNif.h File 14.9 KB 0644
mailbox_client.h File 1.78 KB 0644
mailbox_controller.h File 5.7 KB 0644
map_benchmark.h File 1.07 KB 0644
maple.h File 2.68 KB 0644
maple_tree.h File 28.94 KB 0644
marvell_phy.h File 1.94 KB 0644
math.h File 6.31 KB 0644
math64.h File 9 KB 0644
mbcache.h File 2.09 KB 0644
mbus.h File 3.09 KB 0644
mc146818rtc.h File 4.72 KB 0644
mc6821.h File 1.18 KB 0644
mcb.h File 3.62 KB 0644
mdev.h File 2.36 KB 0644
mdio-bitbang.h File 1.46 KB 0644
mdio-gpio.h File 177 B 0644
mdio-mux.h File 1021 B 0644
mdio.h File 22.72 KB 0644
mei_aux.h File 929 B 0644
mei_cl_bus.h File 4.6 KB 0644
mem_encrypt.h File 1.31 KB 0644
memblock.h File 20.4 KB 0644
memcontrol.h File 45.83 KB 0644
memfd.h File 950 B 0644
memory-tiers.h File 3.94 KB 0644
memory.h File 6.42 KB 0644
memory_hotplug.h File 10.77 KB 0644
mempolicy.h File 7.25 KB 0644
mempool.h File 4.28 KB 0644
memregion.h File 1.8 KB 0644
memremap.h File 7.67 KB 0644
memstick.h File 9.61 KB 0644
mhi.h File 27.42 KB 0644
mhi_ep.h File 10.63 KB 0644
micrel_phy.h File 2.1 KB 0644
microchipphy.h File 2.65 KB 0644
migrate.h File 7.72 KB 0644
migrate_mode.h File 713 B 0644
mii.h File 15.51 KB 0644
mii_timestamper.h File 3.66 KB 0644
min_heap.h File 15.78 KB 0644
minmax.h File 10 KB 0644
misc_cgroup.h File 3.23 KB 0644
miscdevice.h File 3.21 KB 0644
mm.h File 126.61 KB 0644
mm_api.h File 22 B 0644
mm_inline.h File 17.38 KB 0644
mm_types.h File 51.72 KB 0644
mm_types_task.h File 2.32 KB 0644
mman.h File 5.48 KB 0644
mmap_lock.h File 6.03 KB 0644
mmdebug.h File 4.28 KB 0644
mmiotrace.h File 3.05 KB 0644
mmu_context.h File 1.13 KB 0644
mmu_notifier.h File 21.93 KB 0644
mmzone.h File 66.74 KB 0644
mnt_idmapping.h File 6.88 KB 0644
mnt_namespace.h File 767 B 0644
mod_devicetable.h File 25.41 KB 0644
module.h File 27.85 KB 0644
module_signature.h File 1.22 KB 0644
module_symbol.h File 409 B 0644
moduleloader.h File 3.84 KB 0644
moduleparam.h File 22.51 KB 0644
most.h File 12.2 KB 0644
mount.h File 4.21 KB 0644
moxtet.h File 2.27 KB 0644
mpage.h File 644 B 0644
mpi.h File 3.17 KB 0644
mpls.h File 394 B 0644
mpls_iptunnel.h File 178 B 0644
mroute.h File 2.12 KB 0644
mroute6.h File 2.93 KB 0644
mroute_base.h File 12.45 KB 0644
msdos_fs.h File 273 B 0644
msdos_partition.h File 1.62 KB 0644
msg.h File 395 B 0644
msi.h File 22.01 KB 0644
msi_api.h File 1.93 KB 0644
mtio.h File 1.29 KB 0644
mutex.h File 5.82 KB 0644
mutex_api.h File 25 B 0644
mutex_types.h File 2.09 KB 0644
mv643xx_eth.h File 2 KB 0644
mv643xx_i2c.h File 335 B 0644
mvebu-pmsu.h File 520 B 0644
mxm-wmi.h File 399 B 0644
namei.h File 5.46 KB 0644
nd.h File 6.19 KB 0644
ndctl.h File 674 B 0644
net.h File 11.86 KB 0644
net_tstamp.h File 2.97 KB 0644
netdev_features.h File 10.5 KB 0644
netdevice.h File 170.32 KB 0644
netdevice_xmit.h File 223 B 0644
netfilter.h File 14.03 KB 0644
netfilter_bridge.h File 2.08 KB 0644
netfilter_defs.h File 242 B 0644
netfilter_ipv4.h File 1.05 KB 0644
netfilter_ipv6.h File 5.86 KB 0644
netfilter_netdev.h File 3.97 KB 0644
netfs.h File 21.8 KB 0644
netlink.h File 10.69 KB 0644
netpoll.h File 2.52 KB 0644
nfs.h File 1.71 KB 0644
nfs3.h File 260 B 0644
nfs4.h File 24.25 KB 0644
nfs_common.h File 458 B 0644
nfs_fs.h File 20.45 KB 0644
nfs_fs_i.h File 308 B 0644
nfs_fs_sb.h File 11.34 KB 0644
nfs_iostat.h File 3.92 KB 0644
nfs_page.h File 8.48 KB 0644
nfs_ssc.h File 2.01 KB 0644
nfs_xdr.h File 43.3 KB 0644
nfsacl.h File 1.4 KB 0644
nfslocalio.h File 3.47 KB 0644
nitro_enclaves.h File 267 B 0644
nl802154.h File 3.87 KB 0644
nls.h File 3.09 KB 0644
nmi.h File 7.21 KB 0644
node.h File 4.67 KB 0644
nodemask.h File 17.89 KB 0644
nodemask_types.h File 263 B 0644
nospec.h File 2.24 KB 0644
notifier.h File 8.18 KB 0644
ns_common.h File 284 B 0644
nsc_gpio.h File 1.42 KB 0644
nsproxy.h File 3.67 KB 0644
ntb.h File 52.43 KB 0644
ntb_transport.h File 3.8 KB 0644
nubus.h File 5.54 KB 0644
numa.h File 1.6 KB 0644
numa_memblks.h File 1.57 KB 0644
nvme-auth.h File 1.44 KB 0644
nvme-fc-driver.h File 46.78 KB 0644
nvme-fc.h File 9.72 KB 0644
nvme-keyring.h File 732 B 0644
nvme-rdma.h File 2.31 KB 0644
nvme-tcp.h File 4.67 KB 0644
nvme.h File 50.91 KB 0644
nvmem-consumer.h File 6.87 KB 0644
nvmem-provider.h File 8.03 KB 0644
nvram.h File 3.47 KB 0644
oa_tc6.h File 947 B 0644
objagg.h File 1.94 KB 0644
objpool.h File 9.58 KB 0644
objtool.h File 6.62 KB 0644
objtool_types.h File 2.08 KB 0644
of.h File 51.38 KB 0644
of_address.h File 5.5 KB 0644
of_clk.h File 819 B 0644
of_device.h File 2.23 KB 0644
of_dma.h File 2.3 KB 0644
of_fdt.h File 3.48 KB 0644
of_gpio.h File 878 B 0644
of_graph.h File 5.4 KB 0644
of_iommu.h File 671 B 0644
of_irq.h File 3.83 KB 0644
of_mdio.h File 3.91 KB 0644
of_net.h File 1.15 KB 0644
of_pci.h File 915 B 0644
of_pdt.h File 1.14 KB 0644
of_platform.h File 4.07 KB 0644
of_reserved_mem.h File 2.22 KB 0644
oid_registry.h File 6.02 KB 0644
olpc-ec.h File 2 KB 0644
omap-dma.h File 9.54 KB 0644
omap-gpmc.h File 2.29 KB 0644
omap-iommu.h File 880 B 0644
omap-mailbox.h File 272 B 0644
omapfb.h File 576 B 0644
once.h File 2.66 KB 0644
once_lite.h File 926 B 0644
oom.h File 2.81 KB 0644
openvswitch.h File 403 B 0644
osq_lock.h File 912 B 0644
overflow.h File 14.82 KB 0644
packing.h File 16 KB 0644
padata.h File 6.21 KB 0644
page-flags-layout.h File 3.73 KB 0644
page-flags.h File 39.15 KB 0644
page-isolation.h File 1.04 KB 0644
page_counter.h File 3.21 KB 0644
page_ext.h File 2.9 KB 0644
page_frag_cache.h File 1.71 KB 0644
page_idle.h File 1.95 KB 0644
page_owner.h File 2.38 KB 0644
page_ref.h File 7.6 KB 0644
page_reporting.h File 895 B 0644
page_table_check.h File 3.74 KB 0644
pageblock-flags.h File 2.8 KB 0644
pagemap.h File 51.01 KB 0644
pagevec.h File 2.62 KB 0644
pagewalk.h File 7.36 KB 0644
panic.h File 2.83 KB 0644
panic_notifier.h File 296 B 0644
papr_scm.h File 2.17 KB 0644
parman.h File 2.87 KB 0644
parport.h File 18.87 KB 0644
parport_pc.h File 6.62 KB 0644
parser.h File 1.17 KB 0644
part_stat.h File 2.38 KB 0644
pata_arasan_cf_data.h File 1.22 KB 0644
patchkey.h File 757 B 0644
path.h File 752 B 0644
pch_dma.h File 408 B 0644
pci-acpi.h File 4.18 KB 0644
pci-ats.h File 2.01 KB 0644
pci-bwctrl.h File 650 B 0644
pci-doe.h File 576 B 0644
pci-ecam.h File 3.43 KB 0644
pci-ep-cfs.h File 956 B 0644
pci-epc.h File 12.02 KB 0644
pci-epf.h File 7.84 KB 0644
pci-p2pdma.h File 3.01 KB 0644
pci-pwrctrl.h File 1.74 KB 0644
pci-tph.h File 1.44 KB 0644
pci.h File 98.79 KB 0644
pci_hotplug.h File 4.35 KB 0644
pci_ids.h File 125.8 KB 0644
pcs-lynx.h File 442 B 0644
pcs-rzn1-miic.h File 385 B 0644
pe.h File 16.73 KB 0644
peci-cpu.h File 2.29 KB 0644
peci.h File 3.08 KB 0644
percpu-defs.h File 17.3 KB 0644
percpu-refcount.h File 11.22 KB 0644
percpu-rwsem.h File 4.32 KB 0644
percpu.h File 5.17 KB 0644
percpu_counter.h File 6.81 KB 0644
perf_event.h File 59.38 KB 0644
perf_event_api.h File 30 B 0644
perf_regs.h File 1.05 KB 0644
personality.h File 393 B 0644
pfn.h File 666 B 0644
pfn_t.h File 3.21 KB 0644
pgalloc_tag.h File 6.2 KB 0644
pgtable.h File 53.52 KB 0644
pgtable_api.h File 27 B 0644
phonet.h File 537 B 0644
phy.h File 77.74 KB 0644
phy_fixed.h File 1.82 KB 0644
phy_led_triggers.h File 1.01 KB 0644
phy_link_topology.h File 1.74 KB 0644
phylib_stubs.h File 2.64 KB 0644
phylink.h File 29.83 KB 0644
pid.h File 9.4 KB 0644
pid_namespace.h File 3.29 KB 0644
pid_types.h File 282 B 0644
pidfs.h File 356 B 0644
pim.h File 2.67 KB 0644
pipe_fs_i.h File 10.26 KB 0644
pkeys.h File 990 B 0644
pktcdvd.h File 5.7 KB 0644
pl320-ipc.h File 209 B 0644
platform_device.h File 13.15 KB 0644
platform_profile.h File 2.02 KB 0644
pldmfw.h File 4.91 KB 0644
plist.h File 8.58 KB 0644
plist_types.h File 315 B 0644
pm-trace.h File 940 B 0644
pm.h File 36.63 KB 0644
pm_clock.h File 2.59 KB 0644
pm_domain.h File 16.68 KB 0644
pm_opp.h File 18.9 KB 0644
pm_qos.h File 10.41 KB 0644
pm_runtime.h File 20.47 KB 0644
pm_wakeirq.h File 1009 B 0644
pm_wakeup.h File 7.43 KB 0644
pmbus.h File 2.86 KB 0644
pmu.h File 2.45 KB 0644
pnp.h File 14.98 KB 0644
poison.h File 2.84 KB 0644
poll.h File 3.86 KB 0644
polynomial.h File 814 B 0644
posix-clock.h File 4.52 KB 0644
posix-timers.h File 7.09 KB 0644
posix-timers_types.h File 2.21 KB 0644
posix_acl.h File 4.32 KB 0644
posix_acl_xattr.h File 1.95 KB 0644
power_supply.h File 41.09 KB 0644
powercap.h File 11.98 KB 0644
ppp-comp.h File 2.97 KB 0644
ppp_channel.h File 3.04 KB 0644
ppp_defs.h File 663 B 0644
pps_gen_kernel.h File 1.95 KB 0644
pps_kernel.h File 2.94 KB 0644
pr.h File 1.33 KB 0644
prandom.h File 1.31 KB 0644
preempt.h File 15.9 KB 0644
prefetch.h File 1.55 KB 0644
prime_numbers.h File 1.35 KB 0644
printk.h File 23.79 KB 0644
prmt.h File 342 B 0644
proc_fs.h File 9.13 KB 0644
proc_ns.h File 2.52 KB 0644
processor.h File 1.84 KB 0644
profile.h File 1.39 KB 0644
projid.h File 2.22 KB 0644
property.h File 19.91 KB 0644
pruss_driver.h File 4.44 KB 0644
psci.h File 1.52 KB 0644
pseudo_fs.h File 401 B 0644
psi.h File 1.78 KB 0644
psi_types.h File 4.94 KB 0644
psp-platform-access.h File 1.86 KB 0644
psp-sev.h File 27.29 KB 0644
psp-tee.h File 2.65 KB 0644
psp.h File 697 B 0644
pstore.h File 7.77 KB 0644
pstore_blk.h File 1.53 KB 0644
pstore_ram.h File 883 B 0644
pstore_zone.h File 2.28 KB 0644
ptdump.h File 815 B 0644
pti.h File 251 B 0644
ptp_classify.h File 6.89 KB 0644
ptp_clock_kernel.h File 16.23 KB 0644
ptp_kvm.h File 505 B 0644
ptp_mock.h File 670 B 0644
ptp_pch.h File 666 B 0644
ptr_ring.h File 16.54 KB 0644
ptrace.h File 16.79 KB 0644
ptrace_api.h File 26 B 0644
purgatory.h File 590 B 0644
pvclock_gtod.h File 548 B 0644
pwm.h File 18.78 KB 0644
pwm_backlight.h File 649 B 0644
pxa168_eth.h File 728 B 0644
pxa2xx_ssp.h File 11.13 KB 0644
qnx6_fs.h File 3.27 KB 0644
quota.h File 18.76 KB 0644
quotaops.h File 10.27 KB 0644
radix-tree.h File 15.95 KB 0644
raid_class.h File 2.01 KB 0644
ramfs.h File 746 B 0644
random.h File 4.97 KB 0644
randomize_kstack.h File 3.96 KB 0644
range.h File 1.07 KB 0644
ras.h File 1.53 KB 0644
ratelimit.h File 1.72 KB 0644
ratelimit_types.h File 1.33 KB 0644
rational.h File 639 B 0644
rbtree.h File 11.32 KB 0644
rbtree_augmented.h File 10.18 KB 0644
rbtree_latch.h File 6.73 KB 0644
rbtree_types.h File 946 B 0644
rcu_node_tree.h File 3.73 KB 0644
rcu_notifier.h File 1.09 KB 0644
rcu_segcblist.h File 10.77 KB 0644
rcu_sync.h File 1.41 KB 0644
rculist.h File 30.59 KB 0644
rculist_bl.h File 3.29 KB 0644
rculist_nulls.h File 6.6 KB 0644
rcupdate.h File 42.48 KB 0644
rcupdate_trace.h File 3.27 KB 0644
rcupdate_wait.h File 2.55 KB 0644
rcuref.h File 4.66 KB 0644
rcutiny.h File 4.55 KB 0644
rcutree.h File 4.34 KB 0644
rcuwait.h File 2.32 KB 0644
rcuwait_api.h File 27 B 0644
reboot-mode.h File 600 B 0644
reboot.h File 5.3 KB 0644
reciprocal_div.h File 3.28 KB 0644
ref_tracker.h File 2.35 KB 0644
refcount.h File 11.83 KB 0644
refcount_api.h File 28 B 0644
refcount_types.h File 512 B 0644
regmap.h File 72.65 KB 0644
regset.h File 11.35 KB 0644
relay.h File 8.47 KB 0644
remoteproc.h File 25.08 KB 0644
resctrl.h File 11.58 KB 0644
reset-controller.h File 3.79 KB 0644
reset.h File 37.86 KB 0644
resource.h File 223 B 0644
resource_ext.h File 2.08 KB 0644
restart_block.h File 1.11 KB 0644
resume_user_mode.h File 1.88 KB 0644
rethook.h File 3.15 KB 0644
rfkill.h File 10.79 KB 0644
rhashtable-types.h File 3.72 KB 0644
rhashtable.h File 37.93 KB 0644
ring_buffer.h File 8.82 KB 0644
rio.h File 19.02 KB 0644
rio_drv.h File 14.32 KB 0644
rio_ids.h File 723 B 0644
rio_regs.h File 19.07 KB 0644
rmap.h File 25.2 KB 0644
rmi.h File 12.04 KB 0644
rndis.h File 16.86 KB 0644
rodata_test.h File 394 B 0644
rolling_buffer.h File 2.16 KB 0644
root_dev.h File 361 B 0644
rpmb.h File 3.16 KB 0644
rpmsg.h File 9.46 KB 0644
rseq.h File 2.99 KB 0644
rslib.h File 3.64 KB 0644
rtc.h File 9.32 KB 0644
rtmutex.h File 3.38 KB 0644
rtnetlink.h File 7.36 KB 0644
rtsx_common.h File 846 B 0644
rtsx_pci.h File 40.09 KB 0644
rtsx_usb.h File 15.51 KB 0644
rv.h File 1.56 KB 0644
rw_hint.h File 702 B 0644
rwbase_rt.h File 1 KB 0644
rwlock.h File 4.15 KB 0644
rwlock_api_smp.h File 7.85 KB 0644
rwlock_rt.h File 3.38 KB 0644
rwlock_types.h File 1.77 KB 0644
rwsem.h File 8.6 KB 0644
sbitmap.h File 17.82 KB 0644
scatterlist.h File 21.17 KB 0644
scc.h File 2.84 KB 0644
sched.h File 64.53 KB 0644
sched_clock.h File 1.46 KB 0644
scmi_imx_protocol.h File 1.54 KB 0644
scmi_protocol.h File 38.75 KB 0644
scpi_protocol.h File 2.67 KB 0644
screen_info.h File 3.35 KB 0644
scs.h File 2.25 KB 0644
sctp.h File 23.09 KB 0644
scx200.h File 1.82 KB 0644
scx200_gpio.h File 2.38 KB 0644
seccomp.h File 2.99 KB 0644
seccomp_types.h File 834 B 0644
secretmem.h File 706 B 0644
securebits.h File 239 B 0644
security.h File 64.62 KB 0644
sed-opal-key.h File 614 B 0644
sed-opal.h File 1.95 KB 0644
seg6.h File 121 B 0644
seg6_genl.h File 136 B 0644
seg6_hmac.h File 136 B 0644
seg6_iptunnel.h File 148 B 0644
seg6_local.h File 100 B 0644
selection.h File 1.67 KB 0644
sem.h File 515 B 0644
sem_types.h File 234 B 0644
semaphore.h File 1.58 KB 0644
seq_buf.h File 4.24 KB 0644
seq_file.h File 10.18 KB 0644
seq_file_net.h File 787 B 0644
seqlock.h File 37.14 KB 0644
seqlock_api.h File 27 B 0644
seqlock_types.h File 3.11 KB 0644
serdev.h File 10.12 KB 0644
serial.h File 1.03 KB 0644
serial_8250.h File 7.38 KB 0644
serial_bcm63xx.h File 4.73 KB 0644
serial_core.h File 39.9 KB 0644
serial_s3c.h File 9.54 KB 0644
serial_sci.h File 1.62 KB 0644
serio.h File 4.41 KB 0644
set_memory.h File 2.06 KB 0644
sfp.h File 16.54 KB 0644
sh_clk.h File 5.96 KB 0644
sh_dma.h File 3.47 KB 0644
sh_eth.h File 369 B 0644
sh_intc.h File 3.63 KB 0644
sh_timer.h File 172 B 0644
shdma-base.h File 4.27 KB 0644
shm.h File 835 B 0644
shmem_fs.h File 7.74 KB 0644
shrinker.h File 4.87 KB 0644
signal.h File 13.79 KB 0644
signal_types.h File 1.69 KB 0644
signalfd.h File 817 B 0644
siox.h File 2.26 KB 0644
siphash.h File 5.66 KB 0644
sizes.h File 1.68 KB 0644
skb_array.h File 5.43 KB 0644
skbuff.h File 148.33 KB 0644
skbuff_ref.h File 1.74 KB 0644
skmsg.h File 13.94 KB 0644
slab.h File 37.02 KB 0644
slimbus.h File 6.94 KB 0644
sm501-regs.h File 11.62 KB 0644
sm501.h File 4.02 KB 0644
smc91x.h File 1.57 KB 0644
smp.h File 8.03 KB 0644
smp_types.h File 1.35 KB 0644
smpboot.h File 1.68 KB 0644
smsc911x.h File 1.63 KB 0644
smscphy.h File 3.1 KB 0644
sock_diag.h File 2.42 KB 0644
socket.h File 15.52 KB 0644
sockptr.h File 4.05 KB 0644
softirq.h File 29 B 0644
sonet.h File 469 B 0644
sony-laptop.h File 1.41 KB 0644
sonypi.h File 1.71 KB 0644
sort.h File 348 B 0644
sound.h File 685 B 0644
soundcard.h File 1.59 KB 0644
spinlock.h File 17.55 KB 0644
spinlock_api.h File 28 B 0644
spinlock_api_smp.h File 5.23 KB 0644
spinlock_api_up.h File 3.38 KB 0644
spinlock_rt.h File 4.12 KB 0644
spinlock_types.h File 1.78 KB 0644
spinlock_types_raw.h File 1.69 KB 0644
spinlock_types_up.h File 732 B 0644
spinlock_up.h File 2.08 KB 0644
splice.h File 3.72 KB 0644
spmi.h File 5.85 KB 0644
sprintf.h File 1.24 KB 0644
sram.h File 437 B 0644
srcu.h File 15.35 KB 0644
srcutiny.h File 3.15 KB 0644
srcutree.h File 10.6 KB 0644
ssbi.h File 726 B 0644
stackdepot.h File 8.95 KB 0644
stackleak.h File 2.36 KB 0644
stackprotector.h File 859 B 0644
stacktrace.h File 4 KB 0644
start_kernel.h File 345 B 0644
stat.h File 1.82 KB 0644
statfs.h File 1.78 KB 0644
static_call.h File 10.66 KB 0644
static_call_types.h File 2.74 KB 0644
static_key.h File 30 B 0644
stdarg.h File 313 B 0644
stddef.h File 3.17 KB 0644
stm.h File 4.6 KB 0644
stmmac.h File 7.79 KB 0644
stmp3xxx_rtc_wdt.h File 331 B 0644
stmp_device.h File 412 B 0644
stop_machine.h File 4.94 KB 0644
string.h File 17.88 KB 0644
string_choices.h File 2.22 KB 0644
string_helpers.h File 3.29 KB 0644
stringhash.h File 2.65 KB 0644
stringify.h File 395 B 0644
sungem_phy.h File 3.97 KB 0644
sunserialcore.h File 1.08 KB 0644
sunxi-rsb.h File 2.89 KB 0644
surface_acpi_notify.h File 1.07 KB 0644
suspend.h File 20.63 KB 0644
svga.h File 3.75 KB 0644
sw842.h File 328 B 0644
swab.h File 912 B 0644
swait.h File 9.47 KB 0644
swait_api.h File 25 B 0644
swap.h File 21.47 KB 0644
swap_cgroup.h File 1004 B 0644
swap_slots.h File 721 B 0644
swapfile.h File 450 B 0644
swapops.h File 16.33 KB 0644
swiotlb.h File 9.09 KB 0644
switchtec.h File 10.92 KB 0644
sxgbe_platform.h File 1.23 KB 0644
sync_core.h File 1.03 KB 0644
sync_file.h File 1.57 KB 0644
synclink.h File 989 B 0644
sys.h File 960 B 0644
sys_soc.h File 1.26 KB 0644
syscall_user_dispatch.h File 1.31 KB 0644
syscall_user_dispatch_types.h File 388 B 0644
syscalls.h File 56.4 KB 0644
syscalls_api.h File 28 B 0644
syscore_ops.h File 633 B 0644
sysctl.h File 9.6 KB 0644
sysfb.h File 2.87 KB 0644
sysfs.h File 24.5 KB 0644
syslog.h File 1.29 KB 0644
sysrq.h File 1.95 KB 0644
sysv_fs.h File 9.03 KB 0644
t10-pi.h File 1.85 KB 0644
task_io_accounting.h File 1.13 KB 0644
task_io_accounting_ops.h File 2.55 KB 0644
task_work.h File 1.06 KB 0644
taskstats_kern.h File 957 B 0644
tboot.h File 3.26 KB 0644
tc.h File 3.46 KB 0644
tca6416_keypad.h File 683 B 0644
tcp.h File 20.67 KB 0644
tee_core.h File 9.67 KB 0644
tee_drv.h File 8.94 KB 0644
tegra-icc.h File 1.86 KB 0644
termios_internal.h File 1.48 KB 0644
text-patching.h File 349 B 0644
textsearch.h File 4.73 KB 0644
textsearch_fsm.h File 1.19 KB 0644
tfrc.h File 1.68 KB 0644
thermal.h File 11.63 KB 0644
thread_info.h File 7.75 KB 0644
threads.h File 1.31 KB 0644
thunderbolt.h File 21.38 KB 0644
ti-emif-sram.h File 4.75 KB 0644
ti_wilink_st.h File 13.47 KB 0644
tick.h File 9.89 KB 0644
tifm.h File 4.66 KB 0644
timb_dma.h File 1.17 KB 0644
timb_gpio.h File 717 B 0644
time.h File 3.14 KB 0644
time32.h File 1.75 KB 0644
time64.h File 4.68 KB 0644
time_namespace.h File 4.02 KB 0644
timecounter.h File 4.38 KB 0644
timekeeper_internal.h File 5.72 KB 0644
timekeeping.h File 8.82 KB 0644
timer.h File 7.4 KB 0644
timer_types.h File 477 B 0644
timerfd.h File 508 B 0644
timeriomem-rng.h File 432 B 0644
timerqueue.h File 1.18 KB 0644
timerqueue_types.h File 335 B 0644
timex.h File 6.41 KB 0644
tnum.h File 4.15 KB 0644
topology.h File 7.33 KB 0644
torture.h File 4.91 KB 0644
toshiba.h File 460 B 0644
tpm.h File 14.74 KB 0644
tpm_command.h File 847 B 0644
tpm_eventlog.h File 6.53 KB 0644
trace.h File 2.77 KB 0644
trace_clock.h File 667 B 0644
trace_events.h File 30.39 KB 0644
trace_recursion.h File 5 KB 0644
trace_seq.h File 4.52 KB 0644
tracefs.h File 3.79 KB 0644
tracepoint-defs.h File 2.46 KB 0644
tracepoint.h File 20.39 KB 0644
transport_class.h File 2.58 KB 0644
ts-nbus.h File 532 B 0644
tsacct_kern.h File 1.2 KB 0644
tsm.h File 3.78 KB 0644
tty.h File 17.21 KB 0644
tty_buffer.h File 1.29 KB 0644
tty_driver.h File 22.2 KB 0644
tty_flip.h File 2.68 KB 0644
tty_ldisc.h File 10.29 KB 0644
tty_port.h File 9.21 KB 0644
turris-omnia-mcu-interface.h File 11.13 KB 0644
typecheck.h File 782 B 0644
types.h File 6.04 KB 0644
u64_stats_sync.h File 5.45 KB 0644
u64_stats_sync_api.h File 34 B 0644
uacce.h File 4.37 KB 0644
uaccess.h File 18.83 KB 0644
ubsan.h File 307 B 0644
ucs2_string.h File 740 B 0644
udp.h File 6.09 KB 0644
uidgid.h File 4.27 KB 0644
uidgid_types.h File 241 B 0644
uio.h File 12.13 KB 0644
uio_driver.h File 5.25 KB 0644
umh.h File 1.82 KB 0644
unaligned.h File 3.14 KB 0644
unicode.h File 2.05 KB 0644
union_find.h File 1.14 KB 0644
units.h File 2.88 KB 0644
unroll.h File 1.77 KB 0644
uprobes.h File 9.44 KB 0644
usb.h File 78.94 KB 0644
usb_usual.h File 3.58 KB 0644
usbdevice_fs.h File 2.18 KB 0644
user-return-notifier.h File 1.18 KB 0644
user.h File 22 B 0644
user_events.h File 1.68 KB 0644
user_namespace.h File 6.42 KB 0644
userfaultfd_k.h File 13.22 KB 0644
usermode_driver.h File 515 B 0644
util_macros.h File 2.51 KB 0644
uts.h File 388 B 0644
utsname.h File 1.8 KB 0644
uuid.h File 2.49 KB 0644
vbox_utils.h File 1.75 KB 0644
vdpa.h File 22.11 KB 0644
verification.h File 1.86 KB 0644
vermagic.h File 1.24 KB 0644
vexpress.h File 297 B 0644
vfio.h File 13.34 KB 0644
vfio_pci_core.h File 5.59 KB 0644
vfs.h File 116 B 0644
vga_switcheroo.h File 8.62 KB 0644
vgaarb.h File 2.81 KB 0644
vhost_iotlb.h File 1.43 KB 0644
via-core.h File 6.57 KB 0644
via.h File 932 B 0644
via_i2c.h File 844 B 0644
videodev2.h File 2.7 KB 0644
virtio.h File 10.57 KB 0644
virtio_anchor.h File 507 B 0644
virtio_byteorder.h File 1.46 KB 0644
virtio_caif.h File 513 B 0644
virtio_config.h File 18.11 KB 0644
virtio_dma_buf.h File 1.12 KB 0644
virtio_net.h File 6.53 KB 0644
virtio_pci_admin.h File 1.47 KB 0644
virtio_pci_legacy.h File 1.37 KB 0644
virtio_pci_modern.h File 4.39 KB 0644
virtio_ring.h File 3.2 KB 0644
virtio_vsock.h File 7.44 KB 0644
vm_event_item.h File 4.29 KB 0644
vmalloc.h File 10.61 KB 0644
vmcore_info.h File 3.08 KB 0644
vmpressure.h File 1.68 KB 0644
vmstat.h File 16.78 KB 0644
vmw_vmci_api.h File 2.88 KB 0644
vmw_vmci_defs.h File 29.93 KB 0644
vringh.h File 9.35 KB 0644
vt.h File 611 B 0644
vt_buffer.h File 1.13 KB 0644
vt_kern.h File 5.32 KB 0644
vtime.h File 4.47 KB 0644
w1.h File 8.93 KB 0644
wait.h File 43.03 KB 0644
wait_api.h File 24 B 0644
wait_bit.h File 22.51 KB 0644
watch_queue.h File 3.83 KB 0644
watchdog.h File 8.21 KB 0644
win_minmax.h File 831 B 0644
wireless.h File 1.56 KB 0644
wkup_m3_ipc.h File 1.58 KB 0644
wm97xx.h File 10.44 KB 0644
wmi.h File 3.36 KB 0644
wordpart.h File 1.5 KB 0644
workqueue.h File 29.84 KB 0644
workqueue_api.h File 29 B 0644
workqueue_types.h File 564 B 0644
writeback.h File 12.67 KB 0644
ww_mutex.h File 13.38 KB 0644
wwan.h File 6 KB 0644
xarray.h File 58.06 KB 0644
xattr.h File 4.5 KB 0644
xxhash.h File 8.27 KB 0644
xz.h File 15.66 KB 0644
yam.h File 2.18 KB 0644
zconf.h File 1.73 KB 0644
zlib.h File 28.11 KB 0644
zorro.h File 3.57 KB 0644
zpool.h File 2.84 KB 0644
zsmalloc.h File 1.71 KB 0644
zstd.h File 22.47 KB 0644
zstd_errors.h File 3.09 KB 0644
zstd_lib.h File 144.05 KB 0644
zswap.h File 1.82 KB 0644
zutil.h File 2.73 KB 0644
Filemanager