New set of macros for server calls; makes requests without variable
part somewhat faster.

diff --git a/dlls/kernel/debugger.c b/dlls/kernel/debugger.c
index cfcb1c4..3747156 100644
--- a/dlls/kernel/debugger.c
+++ b/dlls/kernel/debugger.c
@@ -36,13 +36,11 @@
     for (;;)
     {
         HANDLE wait = 0;
-        SERVER_START_REQ
+        debug_event_t *data;
+        SERVER_START_VAR_REQ( wait_debug_event, sizeof(*data) )
         {
-            debug_event_t *data;
-            struct wait_debug_event_request *req = server_alloc_req( sizeof(*req), sizeof(*data) );
-
             req->get_handle = (timeout != 0);
-            if (!(ret = !server_call( REQ_WAIT_DEBUG_EVENT ))) goto done;
+            if (!(ret = !SERVER_CALL_ERR())) goto done;
 
             if (!server_data_size(req))  /* timeout */
             {
@@ -108,7 +106,7 @@
             }
         done:
         }
-        SERVER_END_REQ;
+        SERVER_END_VAR_REQ;
         if (ret) return TRUE;
         if (!wait) break;
         res = WaitForSingleObject( wait, timeout );
@@ -137,13 +135,12 @@
     DWORD status) /* [in] The rule to apply to unhandled exeptions. */
 {
     BOOL ret;
-    SERVER_START_REQ
+    SERVER_START_REQ( continue_debug_event )
     {
-        struct continue_debug_event_request *req = server_alloc_req( sizeof(*req), 0 );
         req->pid    = (void *)pid;
         req->tid    = (void *)tid;
         req->status = status;
-        ret = !server_call( REQ_CONTINUE_DEBUG_EVENT );
+        ret = !SERVER_CALL_ERR();
     }
     SERVER_END_REQ;
     return ret;
@@ -163,11 +160,10 @@
     DWORD pid) /* [in] The process to be debugged. */
 {
     BOOL ret;
-    SERVER_START_REQ
+    SERVER_START_REQ( debug_process )
     {
-        struct debug_process_request *req = server_alloc_req( sizeof(*req), 0 );
         req->pid = (void *)pid;
-        ret = !server_call( REQ_DEBUG_PROCESS );
+        ret = !SERVER_CALL_ERR();
     }
     SERVER_END_REQ;
     return ret;
@@ -184,13 +180,12 @@
 void WINAPI OutputDebugStringA(
     LPCSTR str) /* [in] The message to be logged and given to the debugger. */
 {
-    SERVER_START_REQ
+    SERVER_START_REQ( output_debug_string )
     {
-        struct output_debug_string_request *req = server_alloc_req( sizeof(*req), 0 );
         req->string  = (void *)str;
         req->unicode = 0;
         req->length  = strlen(str) + 1;
-        server_call_noerr( REQ_OUTPUT_DEBUG_STRING );
+        SERVER_CALL();
     }
     SERVER_END_REQ;
     WARN("%s\n", str);
@@ -206,13 +201,12 @@
 void WINAPI OutputDebugStringW(
     LPCWSTR str) /* [in] The message to be logged and given to the debugger. */
 {
-    SERVER_START_REQ
+    SERVER_START_REQ( output_debug_string )
     {
-        struct output_debug_string_request *req = server_alloc_req( sizeof(*req), 0 );
         req->string  = (void *)str;
         req->unicode = 1;
         req->length  = (lstrlenW(str) + 1) * sizeof(WCHAR);
-        server_call_noerr( REQ_OUTPUT_DEBUG_STRING );
+        SERVER_CALL();
     }
     SERVER_END_REQ;
     WARN("%s\n", debugstr_w(str));
@@ -282,11 +276,10 @@
 BOOL WINAPI IsDebuggerPresent(void)
 {
     BOOL ret = FALSE;
-    SERVER_START_REQ
+    SERVER_START_REQ( get_process_info )
     {
-        struct get_process_info_request *req = server_alloc_req( sizeof(*req), 0 );
         req->handle = GetCurrentProcess();
-        if (!server_call( REQ_GET_PROCESS_INFO )) ret = req->debugged;
+        if (!SERVER_CALL_ERR()) ret = req->debugged;
     }
     SERVER_END_REQ;
     return ret;