Warum nicht einfach aus der ISR jeweils dieselbe Funktion aufrufen:

Code:
SIGNAL( SIG_INTERRUPT0 )
{
	serveISR();
}

SIGNAL( SIG_INTERRUPT1 )
{
	serveISR();
}

void serveISR()
{
}
Unterm Strich sorgt das Makro SIGNAL nur dafür, dass ein entsprechendes GCC __attribute(signal) hinter die Funktionsdefinition gesetzt wird, was den Compiler anweist, die Adresse der Funktion in der Interruptvektortabelle zu hinterlegen. Das einizige, was hier hinzu kommt, ist ein weiterer Funktionsaufruf.