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/paging.c b/src/paging.c
index ed40c07..8597463 100644
--- a/src/paging.c
+++ b/src/paging.c
@@ -164,7 +164,7 @@
 	INIT_LLIST_HEAD(&bts->paging.pending_requests);
 
 	/* Large number, until we get a proper message */
-	bts->paging.available_slots = 0x0;
+	bts->paging.available_slots = 10;
 }
 
 static int paging_pending_request(struct gsm_bts_paging_state *bts,
@@ -182,20 +182,16 @@
 static void paging_T3113_expired(void *data)
 {
 	struct gsm_paging_request *req = (struct gsm_paging_request *)data;
+	struct paging_signal_data sig_data;
 
 	DEBUGP(DPAG, "T3113 expired for request %p (%s)\n",
 		req, req->subscr->imsi);
 	
-	struct paging_signal_data sig_data = {
-		.data = {
-			.area = S_PAGING,
-		},
-		.subscr = req->subscr,
-		.bts	= req->bts,
-		.lchan	= NULL,
-	};
+	sig_data.subscr = req->subscr,
+	sig_data.bts	= req->bts,
+	sig_data.lchan	= NULL,
 
-	dispatch_signal(&sig_data.data);
+	dispatch_signal(SS_PAGING, S_PAGING_COMPLETED, &sig_data);
 	paging_remove_request(&req->bts->paging, req);
 }