commit b0b32f66a1f4efc1755282d7f35d55dd0e058b28
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Wed Jul 15 21:57:42 2020 +0200

    Fix xen build
    
    * device/ds_routines.c (ds_device_intr_register, ds_device_intr_ack)
    [MACH_XEN]: Return D_INVALID_OPERATION.
    * i386/Makefrag.am [!PLATFORM_at] (libkernel_a_SOURCES): Remove
    i386/i386/irq.c and i386/i386/irq.h.
    * i386/i386/irq.c: Include <kern/assert.h>.

diff --git a/device/ds_routines.c b/device/ds_routines.c
index 78ff51fe..826005f2 100644
--- a/device/ds_routines.c
+++ b/device/ds_routines.c
@@ -325,6 +325,9 @@ io_return_t
 ds_device_intr_register (device_t dev, int id,
                          int flags, ipc_port_t receive_port)
 {
+#ifdef MACH_XEN
+  return D_INVALID_OPERATION;
+#else /* MACH_XEN */
   kern_return_t err;
   mach_device_t mdev = dev->emul_data;
 
@@ -355,11 +358,15 @@ ds_device_intr_register (device_t dev, int id,
       ip_reference (receive_port);
     }
   return err;
+#endif /* MACH_XEN */
 }
 
 kern_return_t
 ds_device_intr_ack (device_t dev, ipc_port_t receive_port)
 {
+#ifdef MACH_XEN
+  return D_INVALID_OPERATION;
+#else /* MACH_XEN */
   mach_device_t mdev = dev->emul_data;
 
   /* Refuse if device is dead or not completely open.  */
@@ -371,6 +378,7 @@ ds_device_intr_ack (device_t dev, ipc_port_t receive_port)
     return D_INVALID_OPERATION;
 
   return irq_acknowledge(receive_port);
+#endif /* MACH_XEN */
 }
 
 boolean_t
diff --git a/i386/Makefrag.am b/i386/Makefrag.am
index 59571416..b2b4f77f 100644
--- a/i386/Makefrag.am
+++ b/i386/Makefrag.am
@@ -102,8 +102,6 @@ libkernel_a_SOURCES += \
 	i386/i386/io_perm.c \
 	i386/i386/io_perm.h \
 	i386/i386/ipl.h \
-	i386/i386/irq.c \
-	i386/i386/irq.h \
 	i386/i386/ktss.c \
 	i386/i386/ktss.h \
 	i386/i386/kttd_interface.c \
@@ -157,6 +155,8 @@ libkernel_a_SOURCES += \
 	i386/i386/hardclock.c \
 	i386/i386/hardclock.h \
 	i386/i386/io_map.c \
+	i386/i386/irq.c \
+	i386/i386/irq.h \
 	i386/i386/pic.c \
 	i386/i386/pic.h \
 	i386/i386/pit.c \
diff --git a/i386/i386/irq.c b/i386/i386/irq.c
index c65d2ea2..35681191 100644
--- a/i386/i386/irq.c
+++ b/i386/i386/irq.c
@@ -21,6 +21,7 @@
 #include <device/intr.h>
 #include <mach/kern_return.h>
 #include <kern/queue.h>
+#include <kern/assert.h>
 #include <machine/machspl.h>
 
 extern queue_head_t main_intr_queue;
