18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _ASM_S390_ISC_H
38c2ecf20Sopenharmony_ci#define _ASM_S390_ISC_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#include <linux/types.h>
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci/*
88c2ecf20Sopenharmony_ci * I/O interruption subclasses used by drivers.
98c2ecf20Sopenharmony_ci * Please add all used iscs here so that it is possible to distribute
108c2ecf20Sopenharmony_ci * isc usage between drivers.
118c2ecf20Sopenharmony_ci * Reminder: 0 is highest priority, 7 lowest.
128c2ecf20Sopenharmony_ci */
138c2ecf20Sopenharmony_ci#define MAX_ISC 7
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci/* Regular I/O interrupts. */
168c2ecf20Sopenharmony_ci#define IO_SCH_ISC 3			/* regular I/O subchannels */
178c2ecf20Sopenharmony_ci#define CONSOLE_ISC 1			/* console I/O subchannel */
188c2ecf20Sopenharmony_ci#define EADM_SCH_ISC 4			/* EADM subchannels */
198c2ecf20Sopenharmony_ci#define CHSC_SCH_ISC 7			/* CHSC subchannels */
208c2ecf20Sopenharmony_ci#define VFIO_CCW_ISC IO_SCH_ISC		/* VFIO-CCW I/O subchannels */
218c2ecf20Sopenharmony_ci/* Adapter interrupts. */
228c2ecf20Sopenharmony_ci#define QDIO_AIRQ_ISC IO_SCH_ISC	/* I/O subchannel in qdio mode */
238c2ecf20Sopenharmony_ci#define PCI_ISC 2			/* PCI I/O subchannels */
248c2ecf20Sopenharmony_ci#define GAL_ISC 5			/* GIB alert */
258c2ecf20Sopenharmony_ci#define AP_ISC 6			/* adjunct processor (crypto) devices */
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci/* Functions for registration of I/O interruption subclasses */
288c2ecf20Sopenharmony_civoid isc_register(unsigned int isc);
298c2ecf20Sopenharmony_civoid isc_unregister(unsigned int isc);
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci#endif /* _ASM_S390_ISC_H */
32