1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_S390_ISC_H
3#define _ASM_S390_ISC_H
4
5#include <linux/types.h>
6
7/*
8 * I/O interruption subclasses used by drivers.
9 * Please add all used iscs here so that it is possible to distribute
10 * isc usage between drivers.
11 * Reminder: 0 is highest priority, 7 lowest.
12 */
13#define MAX_ISC 7
14
15/* Regular I/O interrupts. */
16#define IO_SCH_ISC 3			/* regular I/O subchannels */
17#define CONSOLE_ISC 1			/* console I/O subchannel */
18#define EADM_SCH_ISC 4			/* EADM subchannels */
19#define CHSC_SCH_ISC 7			/* CHSC subchannels */
20#define VFIO_CCW_ISC IO_SCH_ISC		/* VFIO-CCW I/O subchannels */
21/* Adapter interrupts. */
22#define QDIO_AIRQ_ISC IO_SCH_ISC	/* I/O subchannel in qdio mode */
23#define PCI_ISC 2			/* PCI I/O subchannels */
24#define GAL_ISC 5			/* GIB alert */
25#define AP_ISC 6			/* adjunct processor (crypto) devices */
26
27/* Functions for registration of I/O interruption subclasses */
28void isc_register(unsigned int isc);
29void isc_unregister(unsigned int isc);
30
31#endif /* _ASM_S390_ISC_H */
32