Hey,
I'm not sure if I understand your question correctly, but usually a signal is only raised in the own process using
raise and sent to other processes using
kill.
The signal implementation provided by Newlib is basically just an emulation (works only within the current process). You will have to implement real signal handling in your kernel. (
http://wiki.osdev.org/Porting_Newlib#Signal_handling). It takes quite some work to implement it; the state of the interrupted process must be stored, the appropriate signal handler called in user space and then the old state must be restored once the signal handler has finished it's work.
Greets