BNX2X: Spatch dev_addr->ea
[akaros.git] / kern / include / trap.h
index 28d1cff..60e25d5 100644 (file)
@@ -14,6 +14,7 @@ typedef void (*isr_t)(struct hw_trapframe *hw_tf, void *data);
 
 void idt_init(void);
 int register_irq(int irq, isr_t handler, void *irq_arg, uint32_t tbdf);
+int route_irqs(int cpu_vec, int coreid);
 void print_trapframe(struct hw_trapframe *hw_tf);
 void print_user_ctx(struct user_context *ctx);
 /* Generic per-core timer interrupt handler.  set_percore_timer() will fire the
@@ -29,10 +30,6 @@ extern inline void init_fp_state(void);
 void set_stack_top(uintptr_t stacktop);
 uintptr_t get_stack_top(void);
 
-/* It's important that this is inline and that ctx is not a stack variable */
-static inline void save_kernel_ctx(struct kernel_ctx *ctx)
-                   __attribute__((always_inline, returns_twice));
-void pop_kernel_ctx(struct kernel_ctx *ctx) __attribute__((noreturn));
 void send_nmi(uint32_t os_coreid);
 void reflect_unhandled_trap(unsigned int trap_nr, unsigned int err,
                             unsigned long aux);
@@ -80,6 +77,7 @@ void kernel_msg_init(void);
 uint32_t send_kernel_message(uint32_t dst, amr_t pc, long arg0, long arg1,
                              long arg2, int type);
 void handle_kmsg_ipi(struct hw_trapframe *hw_tf, void *data);
+bool has_routine_kmsg(void);
 void process_routine_kmsg(void);
 void print_kmsgs(uint32_t coreid);