Index: kernel/generic/include/ipc/ipc.h
===================================================================
--- kernel/generic/include/ipc/ipc.h	(revision 21580dd3dd9a49828a6c8dd3988e651a60708c10)
+++ kernel/generic/include/ipc/ipc.h	(revision da1bafb8cf9a3b3be8ef21bc114daaa476a85190)
@@ -36,13 +36,16 @@
 #define KERN_IPC_H_
 
-/* Length of data being transfered with IPC call */
-/* - the uspace may not be able to utilize full length */
-#define IPC_CALL_LEN		6	
+/** Length of data being transfered with IPC call
+ *
+ * The uspace may not be able to utilize full length
+ *
+ */
+#define IPC_CALL_LEN  6
 
 /** Maximum active async calls per thread */
 #ifdef CONFIG_DEBUG
-#define IPC_MAX_ASYNC_CALLS	4
+	#define IPC_MAX_ASYNC_CALLS  4
 #else
-#define IPC_MAX_ASYNC_CALLS	4000
+	#define IPC_MAX_ASYNC_CALLS  4000
 #endif
 
@@ -50,52 +53,61 @@
 
 /** This is answer to a call */
-#define IPC_CALL_ANSWERED	(1 << 0)
+#define IPC_CALL_ANSWERED  (1 << 0)
+
 /** Answer will not be passed to userspace, will be discarded */
-#define IPC_CALL_DISCARD_ANSWER (1 << 1)
+#define IPC_CALL_DISCARD_ANSWER  (1 << 1)
+
 /** Call was forwarded */
-#define IPC_CALL_FORWARDED	(1 << 2)
+#define IPC_CALL_FORWARDED  (1 << 2)
+
 /** Identify connect_me_to answer */
-#define IPC_CALL_CONN_ME_TO	(1 << 3)
+#define IPC_CALL_CONN_ME_TO  (1 << 3)
+
 /** Interrupt notification */
-#define IPC_CALL_NOTIF		(1 << 4)
-
-/*
- * Bits used in call hashes.
+#define IPC_CALL_NOTIF  (1 << 4)
+
+
+/** Bits used in call hashes.
+ *
  * The addresses are aligned at least to 4 that is why we can use the 2 least
  * significant bits of the call address.
- */
+ *
+ */
+
 /** Type of this call is 'answer' */
-#define IPC_CALLID_ANSWERED	1
+#define IPC_CALLID_ANSWERED  1
+
 /** Type of this call is 'notification' */
-#define IPC_CALLID_NOTIFICATION	2
+#define IPC_CALLID_NOTIFICATION  2
 
 /* Return values from sys_ipc_call_async(). */
-#define IPC_CALLRET_FATAL	-1
-#define IPC_CALLRET_TEMPORARY	-2
+#define IPC_CALLRET_FATAL      -1
+#define IPC_CALLRET_TEMPORARY  -2
 
 
 /* Macros for manipulating calling data */
-#define IPC_SET_RETVAL(data, retval)	((data).args[0] = (retval))
-#define IPC_SET_METHOD(data, val)	((data).args[0] = (val))
-#define IPC_SET_ARG1(data, val)		((data).args[1] = (val))
-#define IPC_SET_ARG2(data, val)		((data).args[2] = (val))
-#define IPC_SET_ARG3(data, val)		((data).args[3] = (val))
-#define IPC_SET_ARG4(data, val)		((data).args[4] = (val))
-#define IPC_SET_ARG5(data, val)		((data).args[5] = (val))
-
-#define IPC_GET_METHOD(data)		((data).args[0])
-#define IPC_GET_RETVAL(data)		((data).args[0])
-
-#define IPC_GET_ARG1(data)		((data).args[1])
-#define IPC_GET_ARG2(data)		((data).args[2])
-#define IPC_GET_ARG3(data)		((data).args[3])
-#define IPC_GET_ARG4(data)		((data).args[4])
-#define IPC_GET_ARG5(data)		((data).args[5])
+#define IPC_SET_RETVAL(data, retval)  ((data).args[0] = (retval))
+#define IPC_SET_METHOD(data, val)     ((data).args[0] = (val))
+#define IPC_SET_ARG1(data, val)       ((data).args[1] = (val))
+#define IPC_SET_ARG2(data, val)       ((data).args[2] = (val))
+#define IPC_SET_ARG3(data, val)       ((data).args[3] = (val))
+#define IPC_SET_ARG4(data, val)       ((data).args[4] = (val))
+#define IPC_SET_ARG5(data, val)       ((data).args[5] = (val))
+
+#define IPC_GET_METHOD(data)  ((data).args[0])
+#define IPC_GET_RETVAL(data)  ((data).args[0])
+
+#define IPC_GET_ARG1(data)  ((data).args[1])
+#define IPC_GET_ARG2(data)  ((data).args[2])
+#define IPC_GET_ARG3(data)  ((data).args[3])
+#define IPC_GET_ARG4(data)  ((data).args[4])
+#define IPC_GET_ARG5(data)  ((data).args[5])
 
 /* Well known phone descriptors */
-#define PHONE_NS	0
+#define PHONE_NS  0
 
 /* Forwarding flags. */
-#define IPC_FF_NONE		0
+#define IPC_FF_NONE  0
+
 /**
  * The call will be routed as though it was initially sent via the phone used to
@@ -104,10 +116,13 @@
  * calls that were initially sent by the forwarder to the same destination. This
  * flag has no imapct on routing replies.
- */
-#define IPC_FF_ROUTE_FROM_ME	(1 << 0)
-
-/* System-specific methods - only through special syscalls
+ *
+ */
+#define IPC_FF_ROUTE_FROM_ME  (1 << 0)
+
+/** System-specific methods - only through special syscalls
  * These methods have special behaviour
- */
+ *
+ */
+
 /** Clone connection.
  *
@@ -115,19 +130,24 @@
  *
  * - ARG1 - The caller sets ARG1 to the phone of the cloned connection.
- *	  - The callee gets the new phone from ARG1.
+ *        - The callee gets the new phone from ARG1.
+ *
  * - on answer, the callee acknowledges the new connection by sending EOK back
  *   or the kernel closes it
- */
-#define IPC_M_CONNECTION_CLONE	1
+ *
+ */
+#define IPC_M_CONNECTION_CLONE  1
+
 /** Protocol for CONNECT - ME
  *
  * Through this call, the recipient learns about the new cloned connection. 
- * 
+ *
  * - ARG5 - the kernel sets ARG5 to contain the hash of the used phone
  * - on asnwer, the callee acknowledges the new connection by sending EOK back
  *   or the kernel closes it
- */
-#define IPC_M_CONNECT_ME	2
-/** Protocol for CONNECT - TO - ME 
+ *
+ */
+#define IPC_M_CONNECT_ME  2
+
+/** Protocol for CONNECT - TO - ME
  *
  * Calling process asks the callee to create a callback connection,
@@ -144,6 +164,8 @@
  *                     - the allocated phoneid is passed to userspace 
  *                       (on the receiving side) as ARG5 of the call.
- */
-#define IPC_M_CONNECT_TO_ME	3	
+ *
+ */
+#define IPC_M_CONNECT_TO_ME  3
+
 /** Protocol for CONNECT - ME - TO
  *
@@ -163,9 +185,10 @@
  *
  */
-#define IPC_M_CONNECT_ME_TO	4	
-/** This message is sent to answerbox when the phone
- * is hung up
- */
-#define IPC_M_PHONE_HUNGUP	5
+#define IPC_M_CONNECT_ME_TO  4
+
+/** This message is sent to answerbox when the phone is hung up
+ *
+ */
+#define IPC_M_PHONE_HUNGUP  5
 
 /** Send as_area over IPC.
@@ -173,9 +196,10 @@
  * - ARG2 - size of source as_area (filled automatically by kernel)
  * - ARG3 - flags of the as_area being sent
- * 
+ *
  * on answer, the recipient must set:
  * - ARG1 - dst as_area base adress
- */
-#define IPC_M_SHARE_OUT		6	
+ *
+ */
+#define IPC_M_SHARE_OUT  6
 
 /** Receive as_area over IPC.
@@ -183,11 +207,12 @@
  * - ARG2 - destination as_area size
  * - ARG3 - user defined argument
- * 
+ *
  * on answer, the recipient must set:
  *
  * - ARG1 - source as_area base address
  * - ARG2 - flags that will be used for sharing
- */
-#define IPC_M_SHARE_IN		7	
+ *
+ */
+#define IPC_M_SHARE_IN  7
 
 /** Send data to another address space over IPC.
@@ -199,6 +224,7 @@
  * - ARG1 - final destination address space virtual address
  * - ARG2 - final size of data to be copied
- */
-#define IPC_M_DATA_WRITE	8
+ *
+ */
+#define IPC_M_DATA_WRITE  8
 
 /** Receive data from another address space over IPC.
@@ -210,18 +236,21 @@
  * - ARG1 - source virtual address in the destination address space
  * - ARG2 - final size of data to be copied
- */
-#define IPC_M_DATA_READ		9
+ *
+ */
+#define IPC_M_DATA_READ  9
 
 /** Debug the recipient.
  * - ARG1 - specifies the debug method (from udebug_method_t)
  * - other arguments are specific to the debug method
- */
-#define IPC_M_DEBUG_ALL		10
+ *
+ */
+#define IPC_M_DEBUG_ALL  10
 
 /* Well-known methods */
-#define IPC_M_LAST_SYSTEM	511
-#define IPC_M_PING		512
+#define IPC_M_LAST_SYSTEM  511
+#define IPC_M_PING         512
+
 /* User methods */
-#define IPC_FIRST_USER_METHOD	1024
+#define IPC_FIRST_USER_METHOD  1024
 
 #ifdef KERNEL
@@ -259,23 +288,24 @@
 
 typedef struct answerbox {
-	SPINLOCK_DECLARE(lock);
-
+	IRQ_SPINLOCK_DECLARE(lock);
+	
 	struct task *task;
-
+	
 	waitq_t wq;
-
+	
 	/** Linkage for the list of task's synchronous answerboxes. */
 	link_t sync_box_link;
-
+	
 	/** Phones connected to this answerbox. */
 	link_t connected_phones;
 	/** Received calls. */
-	link_t calls;			
-	link_t dispatched_calls;	/* Should be hash table in the future */
-
+	link_t calls;
+	link_t dispatched_calls;  /* Should be hash table in the future */
+	
 	/** Answered calls. */
 	link_t answers;
-
-	SPINLOCK_DECLARE(irq_lock);
+	
+	IRQ_SPINLOCK_DECLARE(irq_lock);
+	
 	/** Notifications from IRQ handlers. */
 	link_t irq_notifs;
@@ -291,43 +321,46 @@
 typedef struct {
 	link_t link;
-
-	int flags;
-
+	
+	unsigned int flags;
+	
 	/** Identification of the caller. */
 	struct task *sender;
-	/** The caller box is different from sender->answerbox for synchronous
-	 *  calls. */
+	
+	/*
+	 * The caller box is different from sender->answerbox
+	 * for synchronous calls.
+	 *
+	 */
 	answerbox_t *callerbox;
-
+	
 	/** Private data to internal IPC. */
 	unative_t priv;
-
+	
 	/** Data passed from/to userspace. */
 	ipc_data_t data;
-
+	
 	/** Buffer for IPC_M_DATA_WRITE and IPC_M_DATA_READ. */
 	uint8_t *buffer;
-
+	
 	/*
 	 * The forward operation can masquerade the caller phone. For those
 	 * cases, we must keep it aside so that the answer is processed
 	 * correctly.
+	 *
 	 */
 	phone_t *caller_phone;
 } call_t;
 
-
 extern answerbox_t *ipc_phone_0;
 
-
 extern void ipc_init(void);
 
-extern call_t * ipc_call_alloc(int);
+extern call_t *ipc_call_alloc(unsigned int);
 extern void ipc_call_free(call_t *);
 
 extern int ipc_call(phone_t *, call_t *);
 extern int ipc_call_sync(phone_t *, call_t *);
-extern call_t * ipc_wait_for_call(answerbox_t *, uint32_t, int);
-extern int ipc_forward(call_t *, phone_t *, answerbox_t *, int);
+extern call_t * ipc_wait_for_call(answerbox_t *, uint32_t, unsigned int);
+extern int ipc_forward(call_t *, phone_t *, answerbox_t *, unsigned int);
 extern void ipc_answer(answerbox_t *, call_t *);
 
@@ -345,8 +378,8 @@
 extern void ipc_print_task(task_id_t);
 
+#endif /* KERNEL */
+
 #endif
 
-#endif
-
 /** @}
  */
