modify the signal handler/dispatch code (sorry zecke, no offense, I just had some different ideas)
* introduce new notion of subsystem in addition to signal number
* no need for bitmasks of 'areas' (aka subsystems)
* pass subsystem/signal_nr/... per argument rather than by data structure

diff --git a/src/gsm_04_11.c b/src/gsm_04_11.c
index d354663..a7b603e 100644
--- a/src/gsm_04_11.c
+++ b/src/gsm_04_11.c
@@ -119,14 +119,7 @@
 			"UserData: \"%s\"\n", sms->mti, sms->vpf, sms->msg_ref,
 			sms->pid, sms->dcs, sms->ud_len, sms->user_data);
 
-	struct sms_signal_data sig = {
-		.data = {
-			.area   = S_SMS,
-		},
-
-		.sms = sms,
-	};
-	dispatch_signal(&sig.data);
+	dispatch_signal(SS_SMS, 0, sms);
 
 	free(sms);