mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

It's cumbersome and error-prone to keep adding fixed IRQ numbers, and for proper device wakeup support for the virtio/vhost-user support we need to have different IRQs for each device. Even if in theory two IRQs (with and without wake) might be sufficient, it's much easier to reason about it when we have dynamic number assignment. It also makes it easier to add new devices that may dynamically exist or depending on the configuration, etc. Add support for this, up to 64 IRQs (the same limit as epoll FDs we have right now). Since it's not easy to port all the existing places to dynamic allocation (some data is statically initialized) keep the low numbers are reserved for the existing hard-coded IRQ numbers. Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Acked-By: Anton Ivanov <anton.ivanov@cambridgegreys.com> Signed-off-by: Richard Weinberger <richard@nod.at>
37 lines
699 B
C
37 lines
699 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __UM_IRQ_H
|
|
#define __UM_IRQ_H
|
|
|
|
#define TIMER_IRQ 0
|
|
#define UMN_IRQ 1
|
|
#define CONSOLE_IRQ 2
|
|
#define CONSOLE_WRITE_IRQ 3
|
|
#define UBD_IRQ 4
|
|
#define UM_ETH_IRQ 5
|
|
#define SSL_IRQ 6
|
|
#define SSL_WRITE_IRQ 7
|
|
#define ACCEPT_IRQ 8
|
|
#define MCONSOLE_IRQ 9
|
|
#define WINCH_IRQ 10
|
|
#define SIGIO_WRITE_IRQ 11
|
|
#define TELNETD_IRQ 12
|
|
#define XTERM_IRQ 13
|
|
#define RANDOM_IRQ 14
|
|
#define VIRTIO_IRQ 15
|
|
|
|
#ifdef CONFIG_UML_NET_VECTOR
|
|
|
|
#define VECTOR_BASE_IRQ (VIRTIO_IRQ + 1)
|
|
#define VECTOR_IRQ_SPACE 8
|
|
|
|
#define UM_FIRST_DYN_IRQ (VECTOR_IRQ_SPACE + VECTOR_BASE_IRQ)
|
|
|
|
#else
|
|
|
|
#define UM_FIRST_DYN_IRQ (VIRTIO_IRQ + 1)
|
|
|
|
#endif
|
|
|
|
#define NR_IRQS 64
|
|
|
|
#endif
|