IRQ routing
[akaros.git] / kern / arch / riscv / smp.h
index 62da4eb..b71f0de 100644 (file)
@@ -1,22 +1,16 @@
-/*
- * Copyright (c) 2009 The Regents of the University of California
- * Barret Rhoden <brho@cs.berkeley.edu>
- * See LICENSE for details.
- */
-
 #ifndef ROS_ARCH_SMP_H
 #define ROS_ARCH_SMP_H
 
+#include <ros/common.h>
+#include <arch/arch.h>
 #include <atomic.h>
 
-// be careful changing this, esp if you go over 16
-#define NUM_HANDLER_WRAPPERS           5
-
-struct HandlerWrapper {
-       checklist_t* cpu_list;
-       uint8_t vector;
-};
+typedef volatile uint8_t wait_list_t[MAX_NUM_CPUS];
 
-typedef struct HandlerWrapper LCKD(&cpu_list->lock) handler_wrapper_t;
+typedef struct
+{
+       wait_list_t wait_list;
+       spinlock_t lock;
+} handler_wrapper_t;
 
 #endif /* !ROS_ARCH_SMP_H */