You need to first understand how interrupts work on ARM controllers. You have a vector table, which lists pointers to all the interrupt handler functions. They are simple C functions, nothing fancy. This table has to be located at the beginning of the flash memory. You can relocate it, but don't worry about that now, just assume that it has to be at the beginning.
The interrupt controller will fetch those vectors when it needs to execute an interrupt.
The interrupt controller itself looks just like any other peripheral (TC or SERCOM, for example). You can work with it using functions you normally use to access registers.