You've shown us the code you wrote (or copied, perhaps) for
irq_install_handler(), but not where you are calling it, and more importantly, you haven't shown us the actual interrupt handler code you are using (hint: the code in the linked page is
only for handling the mouse movement interrupt, those needed for any other interrupts you might need to handle such as mouse button input, keyboard input, timer interrupts, etc. would need to also be written and added).
Also, are you really sure that the function declaration
Code:
void irq_install_handler()(int n, uint32 handler)
is a valid declaration for a function which (based on the intended use) ought to take an unsigned byte and a function pointer as its arguments? Is this even a valid C function declaration at all, and if it is, what are its parameters? Does it match the function prototype, and if not, just how does it differ? Is either this line or the prototype correct, or is one (or both) incorrect? Does anything in this seem misplaced or in the wrong location to you?
When you compiled this code (which I am guessing isn't exactly the code you really compiled, did you get any warnings? Did you enable GCC warnings with the
-Wall option (which, despite its name, is really the minimum warning level you really want to be using)?
I would recommend reading the archetype/anti-pattern page
Duct von Tape before proceeding with any more code you have copied from elsewhere. In OS dev, existing code should be seen as a guideline, not something to be copypasta'ed willy-nilly.