Made event manipulation routines public.

diff --git a/server/event.c b/server/event.c
index 81d4ba7..100adb8 100644
--- a/server/event.c
+++ b/server/event.c
@@ -59,45 +59,29 @@
     return event;
 }
 
-static int pulse_event( int handle )
+struct event *get_event_obj( struct process *process, int handle, unsigned int access )
 {
-    struct event *event;
+    return (struct event *)get_handle_obj( current->process, handle, access, &event_ops );
+}
 
-    if (!(event = (struct event *)get_handle_obj( current->process, handle,
-                                                  EVENT_MODIFY_STATE, &event_ops )))
-        return 0;
+void pulse_event( struct event *event )
+{
     event->signaled = 1;
     /* wake up all waiters if manual reset, a single one otherwise */
     wake_up( &event->obj, !event->manual_reset );
     event->signaled = 0;
-    release_object( event );
-    return 1;
 }
 
-static int set_event( int handle )
+void set_event( struct event *event )
 {
-    struct event *event;
-
-    if (!(event = (struct event *)get_handle_obj( current->process, handle,
-                                                  EVENT_MODIFY_STATE, &event_ops )))
-        return 0;
     event->signaled = 1;
     /* wake up all waiters if manual reset, a single one otherwise */
     wake_up( &event->obj, !event->manual_reset );
-    release_object( event );
-    return 1;
 }
 
-static int reset_event( int handle )
+void reset_event( struct event *event )
 {
-    struct event *event;
-
-    if (!(event = (struct event *)get_handle_obj( current->process, handle,
-                                                  EVENT_MODIFY_STATE, &event_ops )))
-        return 0;
     event->signaled = 0;
-    release_object( event );
-    return 1;
 }
 
 static void event_dump( struct object *obj, int verbose )
@@ -149,18 +133,22 @@
 /* do an event operation */
 DECL_HANDLER(event_op)
 {
+    struct event *event;
+
+    if (!(event = get_event_obj( current->process, req->handle, EVENT_MODIFY_STATE ))) return;
     switch(req->op)
     {
     case PULSE_EVENT:
-        pulse_event( req->handle );
+        pulse_event( event );
         break;
     case SET_EVENT:
-        set_event( req->handle );
+        set_event( event );
         break;
     case RESET_EVENT:
-        reset_event( req->handle );
+        reset_event( event );
         break;
     default:
         fatal_protocol_error( current, "event_op: invalid operation %d\n", req->op );
     }
+    release_object( event );
 }
diff --git a/server/object.h b/server/object.h
index b8fd638..2ff0f71 100644
--- a/server/object.h
+++ b/server/object.h
@@ -126,6 +126,15 @@
 extern void client_pass_fd( struct client *client, int pass_fd );
 extern void client_reply( struct client *client, unsigned int res );
 
+/* event functions */
+
+struct event;
+
+extern struct event *get_event_obj( struct process *process, int handle, unsigned int access );
+extern void pulse_event( struct event *event );
+extern void set_event( struct event *event );
+extern void reset_event( struct event *event );
+
 /* mutex functions */
 
 extern void abandon_mutexes( struct thread *thread );