Index: kernel/arch/xen32/include/hypercall.h
===================================================================
--- kernel/arch/xen32/include/hypercall.h	(revision 5b23a82c8d68ae8b01f1fbb9ace30e2377050d55)
+++ kernel/arch/xen32/include/hypercall.h	(revision b4fa652eb2b10684af9602bd804587917a8ed99d)
@@ -41,6 +41,18 @@
 	uint8_t flags;      /**< 0-3: privilege level; 4: clear event enable */
 	uint16_t cs;        /**< Code selector */
-	uintptr_t address;  /**< Code offset */
+	void *address;      /**< Code offset */
 } trap_info_t;
+
+
+typedef struct {
+	evtchn_t port;
+} evtchn_send_t;
+
+typedef struct {
+	uint32_t cmd;
+	union {
+		evtchn_send_t send;
+    };
+} evtchn_op_t;
 
 
@@ -49,4 +61,5 @@
 #define XEN_SET_CALLBACKS		4
 #define XEN_UPDATE_VA_MAPPING	14
+#define XEN_EVENT_CHANNEL_OP	16
 #define XEN_VERSION				17
 #define XEN_CONSOLE_IO			18
@@ -79,4 +92,7 @@
 
 
+#define EVTCHNOP_SEND			4
+
+
 #define UVMF_NONE				0        /**< No flushing at all */
 #define UVMF_TLB_FLUSH			1        /**< Flush entire TLB(s) */
@@ -227,3 +243,12 @@
 }
 
+static inline int xen_notify_remote(evtchn_t channel)
+{
+    evtchn_op_t op;
+	
+    op.cmd = EVTCHNOP_SEND;
+    op.send.port = channel;
+    return hypercall1(XEN_EVENT_CHANNEL_OP, &op);
+}
+
 #endif
