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