rework external irq system, introduce hierarchical irq
[lunaix-os.git] / lunaix-os / arch / x86 / includes / asm / x86_isrm.h
index b48608017342e060b2a83bbeac7c756ddd7afd6d..4d6fb4444d2c69e533ae1e4741e23cfc67457c32 100644 (file)
@@ -3,14 +3,6 @@
 
 #include <asm-generic/isrm.h>
 
-/**
- * @brief Bind a given irq and associated handler to an iv
- *
- * @param iv iv allocated by system
- */
-int
-isrm_bindirq(int irq, isr_cb irq_handler);
-
 /**
  * @brief Bind given iv with it's associated handler
  *
@@ -39,4 +31,28 @@ isrm_ivosalloc(isr_cb handler);
 int
 isrm_ivexalloc(isr_cb handler);
 
+/**
+ * @brief Release a iv resource
+ *
+ * @param iv
+ */
+void
+isrm_ivfree(int iv);
+
+/**
+ * @brief Get the handler associated with the given iv
+ *
+ * @param iv
+ * @return isr_cb
+ */
+isr_cb
+isrm_get(int iv);
+
+ptr_t
+isrm_get_payload(const struct hart_state*);
+
+void
+isrm_set_payload(int iv, ptr_t);
+
+
 #endif /* __LUNAIX_X86_ISRM_H */