Fixed typelib reading to correctly use the offset of the typelib that
[wine/multimedia.git] / server / trace.c
blobb7110aafeb829507e68e1163a1e1debe0595cff2
1 /*
2 * Server request tracing
4 * Copyright (C) 1999 Alexandre Julliard
5 */
7 #include <stdio.h>
8 #include <sys/types.h>
9 #include <sys/uio.h>
10 #include "request.h"
13 /* dumping for functions for requests that have a variable part */
15 static void dump_varargs_select( struct select_request *req )
17 int i;
18 for (i = 0; i < req->count; i++)
19 fprintf( stderr, "%c%d", i ? ',' : '{', req->handles[i] );
20 fprintf( stderr, "}" );
23 static void dump_varargs_get_apcs( struct get_apcs_request *req )
25 int i;
26 for (i = 0; i < 2 * req->count; i++)
27 fprintf( stderr, "%c%p", i ? ',' : '{', req->apcs[i] );
28 fprintf( stderr, "}" );
32 typedef void (*dump_func)( const void *req );
34 /* Everything below this line is generated automatically by tools/make_requests */
35 /* ### make_requests begin ### */
37 static void dump_new_process_request( struct new_process_request *req )
39 fprintf( stderr, " inherit=%d,", req->inherit );
40 fprintf( stderr, " inherit_all=%d,", req->inherit_all );
41 fprintf( stderr, " create_flags=%d,", req->create_flags );
42 fprintf( stderr, " start_flags=%d,", req->start_flags );
43 fprintf( stderr, " hstdin=%d,", req->hstdin );
44 fprintf( stderr, " hstdout=%d,", req->hstdout );
45 fprintf( stderr, " hstderr=%d,", req->hstderr );
46 fprintf( stderr, " cmd_show=%d,", req->cmd_show );
47 fprintf( stderr, " env_ptr=%p,", req->env_ptr );
48 fprintf( stderr, " cmdline=\"%s\"", req->cmdline );
51 static void dump_new_process_reply( struct new_process_request *req )
53 fprintf( stderr, " pid=%p,", req->pid );
54 fprintf( stderr, " handle=%d", req->handle );
57 static void dump_new_thread_request( struct new_thread_request *req )
59 fprintf( stderr, " pid=%p,", req->pid );
60 fprintf( stderr, " suspend=%d,", req->suspend );
61 fprintf( stderr, " inherit=%d", req->inherit );
64 static void dump_new_thread_reply( struct new_thread_request *req )
66 fprintf( stderr, " tid=%p,", req->tid );
67 fprintf( stderr, " handle=%d", req->handle );
70 static void dump_set_debug_request( struct set_debug_request *req )
72 fprintf( stderr, " level=%d", req->level );
75 static void dump_init_process_request( struct init_process_request *req )
79 static void dump_init_process_reply( struct init_process_request *req )
81 fprintf( stderr, " start_flags=%d,", req->start_flags );
82 fprintf( stderr, " hstdin=%d,", req->hstdin );
83 fprintf( stderr, " hstdout=%d,", req->hstdout );
84 fprintf( stderr, " hstderr=%d,", req->hstderr );
85 fprintf( stderr, " cmd_show=%d,", req->cmd_show );
86 fprintf( stderr, " env_ptr=%p,", req->env_ptr );
87 fprintf( stderr, " cmdline=\"%s\"", req->cmdline );
90 static void dump_init_thread_request( struct init_thread_request *req )
92 fprintf( stderr, " unix_pid=%d,", req->unix_pid );
93 fprintf( stderr, " teb=%p", req->teb );
96 static void dump_init_thread_reply( struct init_thread_request *req )
98 fprintf( stderr, " pid=%p,", req->pid );
99 fprintf( stderr, " tid=%p", req->tid );
102 static void dump_get_thread_buffer_request( struct get_thread_buffer_request *req )
104 fprintf( stderr, " dummy=%d", req->dummy );
107 static void dump_terminate_process_request( struct terminate_process_request *req )
109 fprintf( stderr, " handle=%d,", req->handle );
110 fprintf( stderr, " exit_code=%d", req->exit_code );
113 static void dump_terminate_thread_request( struct terminate_thread_request *req )
115 fprintf( stderr, " handle=%d,", req->handle );
116 fprintf( stderr, " exit_code=%d", req->exit_code );
119 static void dump_get_process_info_request( struct get_process_info_request *req )
121 fprintf( stderr, " handle=%d", req->handle );
124 static void dump_get_process_info_reply( struct get_process_info_request *req )
126 fprintf( stderr, " pid=%p,", req->pid );
127 fprintf( stderr, " exit_code=%d,", req->exit_code );
128 fprintf( stderr, " priority=%d,", req->priority );
129 fprintf( stderr, " process_affinity=%d,", req->process_affinity );
130 fprintf( stderr, " system_affinity=%d", req->system_affinity );
133 static void dump_set_process_info_request( struct set_process_info_request *req )
135 fprintf( stderr, " handle=%d,", req->handle );
136 fprintf( stderr, " mask=%d,", req->mask );
137 fprintf( stderr, " priority=%d,", req->priority );
138 fprintf( stderr, " affinity=%d", req->affinity );
141 static void dump_get_thread_info_request( struct get_thread_info_request *req )
143 fprintf( stderr, " handle=%d", req->handle );
146 static void dump_get_thread_info_reply( struct get_thread_info_request *req )
148 fprintf( stderr, " tid=%p,", req->tid );
149 fprintf( stderr, " exit_code=%d,", req->exit_code );
150 fprintf( stderr, " priority=%d", req->priority );
153 static void dump_set_thread_info_request( struct set_thread_info_request *req )
155 fprintf( stderr, " handle=%d,", req->handle );
156 fprintf( stderr, " mask=%d,", req->mask );
157 fprintf( stderr, " priority=%d,", req->priority );
158 fprintf( stderr, " affinity=%d", req->affinity );
161 static void dump_suspend_thread_request( struct suspend_thread_request *req )
163 fprintf( stderr, " handle=%d", req->handle );
166 static void dump_suspend_thread_reply( struct suspend_thread_request *req )
168 fprintf( stderr, " count=%d", req->count );
171 static void dump_resume_thread_request( struct resume_thread_request *req )
173 fprintf( stderr, " handle=%d", req->handle );
176 static void dump_resume_thread_reply( struct resume_thread_request *req )
178 fprintf( stderr, " count=%d", req->count );
181 static void dump_debugger_request( struct debugger_request *req )
183 fprintf( stderr, " op=%d", req->op );
186 static void dump_queue_apc_request( struct queue_apc_request *req )
188 fprintf( stderr, " handle=%d,", req->handle );
189 fprintf( stderr, " func=%p,", req->func );
190 fprintf( stderr, " param=%p", req->param );
193 static void dump_get_apcs_request( struct get_apcs_request *req )
197 static void dump_get_apcs_reply( struct get_apcs_request *req )
199 fprintf( stderr, " count=%d,", req->count );
200 fprintf( stderr, " apcs=" );
201 dump_varargs_get_apcs( req );
204 static void dump_close_handle_request( struct close_handle_request *req )
206 fprintf( stderr, " handle=%d", req->handle );
209 static void dump_get_handle_info_request( struct get_handle_info_request *req )
211 fprintf( stderr, " handle=%d", req->handle );
214 static void dump_get_handle_info_reply( struct get_handle_info_request *req )
216 fprintf( stderr, " flags=%d", req->flags );
219 static void dump_set_handle_info_request( struct set_handle_info_request *req )
221 fprintf( stderr, " handle=%d,", req->handle );
222 fprintf( stderr, " flags=%d,", req->flags );
223 fprintf( stderr, " mask=%d", req->mask );
226 static void dump_dup_handle_request( struct dup_handle_request *req )
228 fprintf( stderr, " src_process=%d,", req->src_process );
229 fprintf( stderr, " src_handle=%d,", req->src_handle );
230 fprintf( stderr, " dst_process=%d,", req->dst_process );
231 fprintf( stderr, " access=%08x,", req->access );
232 fprintf( stderr, " inherit=%d,", req->inherit );
233 fprintf( stderr, " options=%d", req->options );
236 static void dump_dup_handle_reply( struct dup_handle_request *req )
238 fprintf( stderr, " handle=%d", req->handle );
241 static void dump_open_process_request( struct open_process_request *req )
243 fprintf( stderr, " pid=%p,", req->pid );
244 fprintf( stderr, " access=%08x,", req->access );
245 fprintf( stderr, " inherit=%d", req->inherit );
248 static void dump_open_process_reply( struct open_process_request *req )
250 fprintf( stderr, " handle=%d", req->handle );
253 static void dump_select_request( struct select_request *req )
255 fprintf( stderr, " count=%d,", req->count );
256 fprintf( stderr, " flags=%d,", req->flags );
257 fprintf( stderr, " timeout=%d,", req->timeout );
258 fprintf( stderr, " handles=" );
259 dump_varargs_select( req );
262 static void dump_select_reply( struct select_request *req )
264 fprintf( stderr, " signaled=%d", req->signaled );
267 static void dump_create_event_request( struct create_event_request *req )
269 fprintf( stderr, " manual_reset=%d,", req->manual_reset );
270 fprintf( stderr, " initial_state=%d,", req->initial_state );
271 fprintf( stderr, " inherit=%d,", req->inherit );
272 fprintf( stderr, " name=\"%s\"", req->name );
275 static void dump_create_event_reply( struct create_event_request *req )
277 fprintf( stderr, " handle=%d", req->handle );
280 static void dump_event_op_request( struct event_op_request *req )
282 fprintf( stderr, " handle=%d,", req->handle );
283 fprintf( stderr, " op=%d", req->op );
286 static void dump_open_event_request( struct open_event_request *req )
288 fprintf( stderr, " access=%08x,", req->access );
289 fprintf( stderr, " inherit=%d,", req->inherit );
290 fprintf( stderr, " name=\"%s\"", req->name );
293 static void dump_open_event_reply( struct open_event_request *req )
295 fprintf( stderr, " handle=%d", req->handle );
298 static void dump_create_mutex_request( struct create_mutex_request *req )
300 fprintf( stderr, " owned=%d,", req->owned );
301 fprintf( stderr, " inherit=%d,", req->inherit );
302 fprintf( stderr, " name=\"%s\"", req->name );
305 static void dump_create_mutex_reply( struct create_mutex_request *req )
307 fprintf( stderr, " handle=%d", req->handle );
310 static void dump_release_mutex_request( struct release_mutex_request *req )
312 fprintf( stderr, " handle=%d", req->handle );
315 static void dump_open_mutex_request( struct open_mutex_request *req )
317 fprintf( stderr, " access=%08x,", req->access );
318 fprintf( stderr, " inherit=%d,", req->inherit );
319 fprintf( stderr, " name=\"%s\"", req->name );
322 static void dump_open_mutex_reply( struct open_mutex_request *req )
324 fprintf( stderr, " handle=%d", req->handle );
327 static void dump_create_semaphore_request( struct create_semaphore_request *req )
329 fprintf( stderr, " initial=%08x,", req->initial );
330 fprintf( stderr, " max=%08x,", req->max );
331 fprintf( stderr, " inherit=%d,", req->inherit );
332 fprintf( stderr, " name=\"%s\"", req->name );
335 static void dump_create_semaphore_reply( struct create_semaphore_request *req )
337 fprintf( stderr, " handle=%d", req->handle );
340 static void dump_release_semaphore_request( struct release_semaphore_request *req )
342 fprintf( stderr, " handle=%d,", req->handle );
343 fprintf( stderr, " count=%08x", req->count );
346 static void dump_release_semaphore_reply( struct release_semaphore_request *req )
348 fprintf( stderr, " prev_count=%08x", req->prev_count );
351 static void dump_open_semaphore_request( struct open_semaphore_request *req )
353 fprintf( stderr, " access=%08x,", req->access );
354 fprintf( stderr, " inherit=%d,", req->inherit );
355 fprintf( stderr, " name=\"%s\"", req->name );
358 static void dump_open_semaphore_reply( struct open_semaphore_request *req )
360 fprintf( stderr, " handle=%d", req->handle );
363 static void dump_create_file_request( struct create_file_request *req )
365 fprintf( stderr, " access=%08x,", req->access );
366 fprintf( stderr, " inherit=%d,", req->inherit );
367 fprintf( stderr, " sharing=%08x,", req->sharing );
368 fprintf( stderr, " create=%d,", req->create );
369 fprintf( stderr, " attrs=%08x,", req->attrs );
370 fprintf( stderr, " name=\"%s\"", req->name );
373 static void dump_create_file_reply( struct create_file_request *req )
375 fprintf( stderr, " handle=%d", req->handle );
378 static void dump_alloc_file_handle_request( struct alloc_file_handle_request *req )
380 fprintf( stderr, " access=%08x", req->access );
383 static void dump_alloc_file_handle_reply( struct alloc_file_handle_request *req )
385 fprintf( stderr, " handle=%d", req->handle );
388 static void dump_get_read_fd_request( struct get_read_fd_request *req )
390 fprintf( stderr, " handle=%d", req->handle );
393 static void dump_get_write_fd_request( struct get_write_fd_request *req )
395 fprintf( stderr, " handle=%d", req->handle );
398 static void dump_set_file_pointer_request( struct set_file_pointer_request *req )
400 fprintf( stderr, " handle=%d,", req->handle );
401 fprintf( stderr, " low=%d,", req->low );
402 fprintf( stderr, " high=%d,", req->high );
403 fprintf( stderr, " whence=%d", req->whence );
406 static void dump_set_file_pointer_reply( struct set_file_pointer_request *req )
408 fprintf( stderr, " new_low=%d,", req->new_low );
409 fprintf( stderr, " new_high=%d", req->new_high );
412 static void dump_truncate_file_request( struct truncate_file_request *req )
414 fprintf( stderr, " handle=%d", req->handle );
417 static void dump_set_file_time_request( struct set_file_time_request *req )
419 fprintf( stderr, " handle=%d,", req->handle );
420 fprintf( stderr, " access_time=%ld,", req->access_time );
421 fprintf( stderr, " write_time=%ld", req->write_time );
424 static void dump_flush_file_request( struct flush_file_request *req )
426 fprintf( stderr, " handle=%d", req->handle );
429 static void dump_get_file_info_request( struct get_file_info_request *req )
431 fprintf( stderr, " handle=%d", req->handle );
434 static void dump_get_file_info_reply( struct get_file_info_request *req )
436 fprintf( stderr, " type=%d,", req->type );
437 fprintf( stderr, " attr=%d,", req->attr );
438 fprintf( stderr, " access_time=%ld,", req->access_time );
439 fprintf( stderr, " write_time=%ld,", req->write_time );
440 fprintf( stderr, " size_high=%d,", req->size_high );
441 fprintf( stderr, " size_low=%d,", req->size_low );
442 fprintf( stderr, " links=%d,", req->links );
443 fprintf( stderr, " index_high=%d,", req->index_high );
444 fprintf( stderr, " index_low=%d,", req->index_low );
445 fprintf( stderr, " serial=%08x", req->serial );
448 static void dump_lock_file_request( struct lock_file_request *req )
450 fprintf( stderr, " handle=%d,", req->handle );
451 fprintf( stderr, " offset_low=%08x,", req->offset_low );
452 fprintf( stderr, " offset_high=%08x,", req->offset_high );
453 fprintf( stderr, " count_low=%08x,", req->count_low );
454 fprintf( stderr, " count_high=%08x", req->count_high );
457 static void dump_unlock_file_request( struct unlock_file_request *req )
459 fprintf( stderr, " handle=%d,", req->handle );
460 fprintf( stderr, " offset_low=%08x,", req->offset_low );
461 fprintf( stderr, " offset_high=%08x,", req->offset_high );
462 fprintf( stderr, " count_low=%08x,", req->count_low );
463 fprintf( stderr, " count_high=%08x", req->count_high );
466 static void dump_create_pipe_request( struct create_pipe_request *req )
468 fprintf( stderr, " inherit=%d", req->inherit );
471 static void dump_create_pipe_reply( struct create_pipe_request *req )
473 fprintf( stderr, " handle_read=%d,", req->handle_read );
474 fprintf( stderr, " handle_write=%d", req->handle_write );
477 static void dump_alloc_console_request( struct alloc_console_request *req )
479 fprintf( stderr, " access=%08x,", req->access );
480 fprintf( stderr, " inherit=%d", req->inherit );
483 static void dump_alloc_console_reply( struct alloc_console_request *req )
485 fprintf( stderr, " handle_in=%d,", req->handle_in );
486 fprintf( stderr, " handle_out=%d", req->handle_out );
489 static void dump_free_console_request( struct free_console_request *req )
491 fprintf( stderr, " dummy=%d", req->dummy );
494 static void dump_open_console_request( struct open_console_request *req )
496 fprintf( stderr, " output=%d,", req->output );
497 fprintf( stderr, " access=%08x,", req->access );
498 fprintf( stderr, " inherit=%d", req->inherit );
501 static void dump_open_console_reply( struct open_console_request *req )
503 fprintf( stderr, " handle=%d", req->handle );
506 static void dump_set_console_fd_request( struct set_console_fd_request *req )
508 fprintf( stderr, " handle=%d,", req->handle );
509 fprintf( stderr, " file_handle=%d,", req->file_handle );
510 fprintf( stderr, " pid=%d", req->pid );
513 static void dump_get_console_mode_request( struct get_console_mode_request *req )
515 fprintf( stderr, " handle=%d", req->handle );
518 static void dump_get_console_mode_reply( struct get_console_mode_request *req )
520 fprintf( stderr, " mode=%d", req->mode );
523 static void dump_set_console_mode_request( struct set_console_mode_request *req )
525 fprintf( stderr, " handle=%d,", req->handle );
526 fprintf( stderr, " mode=%d", req->mode );
529 static void dump_set_console_info_request( struct set_console_info_request *req )
531 fprintf( stderr, " handle=%d,", req->handle );
532 fprintf( stderr, " mask=%d,", req->mask );
533 fprintf( stderr, " cursor_size=%d,", req->cursor_size );
534 fprintf( stderr, " cursor_visible=%d,", req->cursor_visible );
535 fprintf( stderr, " title=\"%s\"", req->title );
538 static void dump_get_console_info_request( struct get_console_info_request *req )
540 fprintf( stderr, " handle=%d", req->handle );
543 static void dump_get_console_info_reply( struct get_console_info_request *req )
545 fprintf( stderr, " cursor_size=%d,", req->cursor_size );
546 fprintf( stderr, " cursor_visible=%d,", req->cursor_visible );
547 fprintf( stderr, " pid=%d,", req->pid );
548 fprintf( stderr, " title=\"%s\"", req->title );
551 static void dump_write_console_input_request( struct write_console_input_request *req )
553 fprintf( stderr, " handle=%d,", req->handle );
554 fprintf( stderr, " count=%d", req->count );
557 static void dump_write_console_input_reply( struct write_console_input_request *req )
559 fprintf( stderr, " written=%d", req->written );
562 static void dump_read_console_input_request( struct read_console_input_request *req )
564 fprintf( stderr, " handle=%d,", req->handle );
565 fprintf( stderr, " count=%d,", req->count );
566 fprintf( stderr, " flush=%d", req->flush );
569 static void dump_read_console_input_reply( struct read_console_input_request *req )
571 fprintf( stderr, " read=%d", req->read );
574 static void dump_create_change_notification_request( struct create_change_notification_request *req )
576 fprintf( stderr, " subtree=%d,", req->subtree );
577 fprintf( stderr, " filter=%d", req->filter );
580 static void dump_create_change_notification_reply( struct create_change_notification_request *req )
582 fprintf( stderr, " handle=%d", req->handle );
585 static void dump_create_mapping_request( struct create_mapping_request *req )
587 fprintf( stderr, " size_high=%d,", req->size_high );
588 fprintf( stderr, " size_low=%d,", req->size_low );
589 fprintf( stderr, " protect=%d,", req->protect );
590 fprintf( stderr, " inherit=%d,", req->inherit );
591 fprintf( stderr, " file_handle=%d,", req->file_handle );
592 fprintf( stderr, " name=\"%s\"", req->name );
595 static void dump_create_mapping_reply( struct create_mapping_request *req )
597 fprintf( stderr, " handle=%d", req->handle );
600 static void dump_open_mapping_request( struct open_mapping_request *req )
602 fprintf( stderr, " access=%08x,", req->access );
603 fprintf( stderr, " inherit=%d,", req->inherit );
604 fprintf( stderr, " name=\"%s\"", req->name );
607 static void dump_open_mapping_reply( struct open_mapping_request *req )
609 fprintf( stderr, " handle=%d", req->handle );
612 static void dump_get_mapping_info_request( struct get_mapping_info_request *req )
614 fprintf( stderr, " handle=%d", req->handle );
617 static void dump_get_mapping_info_reply( struct get_mapping_info_request *req )
619 fprintf( stderr, " size_high=%d,", req->size_high );
620 fprintf( stderr, " size_low=%d,", req->size_low );
621 fprintf( stderr, " protect=%d", req->protect );
624 static void dump_create_device_request( struct create_device_request *req )
626 fprintf( stderr, " access=%08x,", req->access );
627 fprintf( stderr, " inherit=%d,", req->inherit );
628 fprintf( stderr, " id=%d", req->id );
631 static void dump_create_device_reply( struct create_device_request *req )
633 fprintf( stderr, " handle=%d", req->handle );
636 static void dump_create_snapshot_request( struct create_snapshot_request *req )
638 fprintf( stderr, " inherit=%d,", req->inherit );
639 fprintf( stderr, " flags=%d", req->flags );
642 static void dump_create_snapshot_reply( struct create_snapshot_request *req )
644 fprintf( stderr, " handle=%d", req->handle );
647 static void dump_next_process_request( struct next_process_request *req )
649 fprintf( stderr, " handle=%d,", req->handle );
650 fprintf( stderr, " reset=%d", req->reset );
653 static void dump_next_process_reply( struct next_process_request *req )
655 fprintf( stderr, " pid=%p,", req->pid );
656 fprintf( stderr, " threads=%d,", req->threads );
657 fprintf( stderr, " priority=%d", req->priority );
660 static void dump_wait_debug_event_request( struct wait_debug_event_request *req )
662 fprintf( stderr, " timeout=%d", req->timeout );
665 static void dump_wait_debug_event_reply( struct wait_debug_event_request *req )
667 fprintf( stderr, " code=%d,", req->code );
668 fprintf( stderr, " pid=%p,", req->pid );
669 fprintf( stderr, " tid=%p", req->tid );
672 static void dump_send_debug_event_request( struct send_debug_event_request *req )
674 fprintf( stderr, " code=%d", req->code );
677 static void dump_send_debug_event_reply( struct send_debug_event_request *req )
679 fprintf( stderr, " status=%d", req->status );
682 static void dump_continue_debug_event_request( struct continue_debug_event_request *req )
684 fprintf( stderr, " pid=%p,", req->pid );
685 fprintf( stderr, " tid=%p,", req->tid );
686 fprintf( stderr, " status=%d", req->status );
689 static void dump_debug_process_request( struct debug_process_request *req )
691 fprintf( stderr, " pid=%p", req->pid );
694 static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
695 (dump_func)dump_new_process_request,
696 (dump_func)dump_new_thread_request,
697 (dump_func)dump_set_debug_request,
698 (dump_func)dump_init_process_request,
699 (dump_func)dump_init_thread_request,
700 (dump_func)dump_get_thread_buffer_request,
701 (dump_func)dump_terminate_process_request,
702 (dump_func)dump_terminate_thread_request,
703 (dump_func)dump_get_process_info_request,
704 (dump_func)dump_set_process_info_request,
705 (dump_func)dump_get_thread_info_request,
706 (dump_func)dump_set_thread_info_request,
707 (dump_func)dump_suspend_thread_request,
708 (dump_func)dump_resume_thread_request,
709 (dump_func)dump_debugger_request,
710 (dump_func)dump_queue_apc_request,
711 (dump_func)dump_get_apcs_request,
712 (dump_func)dump_close_handle_request,
713 (dump_func)dump_get_handle_info_request,
714 (dump_func)dump_set_handle_info_request,
715 (dump_func)dump_dup_handle_request,
716 (dump_func)dump_open_process_request,
717 (dump_func)dump_select_request,
718 (dump_func)dump_create_event_request,
719 (dump_func)dump_event_op_request,
720 (dump_func)dump_open_event_request,
721 (dump_func)dump_create_mutex_request,
722 (dump_func)dump_release_mutex_request,
723 (dump_func)dump_open_mutex_request,
724 (dump_func)dump_create_semaphore_request,
725 (dump_func)dump_release_semaphore_request,
726 (dump_func)dump_open_semaphore_request,
727 (dump_func)dump_create_file_request,
728 (dump_func)dump_alloc_file_handle_request,
729 (dump_func)dump_get_read_fd_request,
730 (dump_func)dump_get_write_fd_request,
731 (dump_func)dump_set_file_pointer_request,
732 (dump_func)dump_truncate_file_request,
733 (dump_func)dump_set_file_time_request,
734 (dump_func)dump_flush_file_request,
735 (dump_func)dump_get_file_info_request,
736 (dump_func)dump_lock_file_request,
737 (dump_func)dump_unlock_file_request,
738 (dump_func)dump_create_pipe_request,
739 (dump_func)dump_alloc_console_request,
740 (dump_func)dump_free_console_request,
741 (dump_func)dump_open_console_request,
742 (dump_func)dump_set_console_fd_request,
743 (dump_func)dump_get_console_mode_request,
744 (dump_func)dump_set_console_mode_request,
745 (dump_func)dump_set_console_info_request,
746 (dump_func)dump_get_console_info_request,
747 (dump_func)dump_write_console_input_request,
748 (dump_func)dump_read_console_input_request,
749 (dump_func)dump_create_change_notification_request,
750 (dump_func)dump_create_mapping_request,
751 (dump_func)dump_open_mapping_request,
752 (dump_func)dump_get_mapping_info_request,
753 (dump_func)dump_create_device_request,
754 (dump_func)dump_create_snapshot_request,
755 (dump_func)dump_next_process_request,
756 (dump_func)dump_wait_debug_event_request,
757 (dump_func)dump_send_debug_event_request,
758 (dump_func)dump_continue_debug_event_request,
759 (dump_func)dump_debug_process_request,
762 static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
763 (dump_func)dump_new_process_reply,
764 (dump_func)dump_new_thread_reply,
765 (dump_func)0,
766 (dump_func)dump_init_process_reply,
767 (dump_func)dump_init_thread_reply,
768 (dump_func)0,
769 (dump_func)0,
770 (dump_func)0,
771 (dump_func)dump_get_process_info_reply,
772 (dump_func)0,
773 (dump_func)dump_get_thread_info_reply,
774 (dump_func)0,
775 (dump_func)dump_suspend_thread_reply,
776 (dump_func)dump_resume_thread_reply,
777 (dump_func)0,
778 (dump_func)0,
779 (dump_func)dump_get_apcs_reply,
780 (dump_func)0,
781 (dump_func)dump_get_handle_info_reply,
782 (dump_func)0,
783 (dump_func)dump_dup_handle_reply,
784 (dump_func)dump_open_process_reply,
785 (dump_func)dump_select_reply,
786 (dump_func)dump_create_event_reply,
787 (dump_func)0,
788 (dump_func)dump_open_event_reply,
789 (dump_func)dump_create_mutex_reply,
790 (dump_func)0,
791 (dump_func)dump_open_mutex_reply,
792 (dump_func)dump_create_semaphore_reply,
793 (dump_func)dump_release_semaphore_reply,
794 (dump_func)dump_open_semaphore_reply,
795 (dump_func)dump_create_file_reply,
796 (dump_func)dump_alloc_file_handle_reply,
797 (dump_func)0,
798 (dump_func)0,
799 (dump_func)dump_set_file_pointer_reply,
800 (dump_func)0,
801 (dump_func)0,
802 (dump_func)0,
803 (dump_func)dump_get_file_info_reply,
804 (dump_func)0,
805 (dump_func)0,
806 (dump_func)dump_create_pipe_reply,
807 (dump_func)dump_alloc_console_reply,
808 (dump_func)0,
809 (dump_func)dump_open_console_reply,
810 (dump_func)0,
811 (dump_func)dump_get_console_mode_reply,
812 (dump_func)0,
813 (dump_func)0,
814 (dump_func)dump_get_console_info_reply,
815 (dump_func)dump_write_console_input_reply,
816 (dump_func)dump_read_console_input_reply,
817 (dump_func)dump_create_change_notification_reply,
818 (dump_func)dump_create_mapping_reply,
819 (dump_func)dump_open_mapping_reply,
820 (dump_func)dump_get_mapping_info_reply,
821 (dump_func)dump_create_device_reply,
822 (dump_func)dump_create_snapshot_reply,
823 (dump_func)dump_next_process_reply,
824 (dump_func)dump_wait_debug_event_reply,
825 (dump_func)dump_send_debug_event_reply,
826 (dump_func)0,
827 (dump_func)0,
830 static const char * const req_names[REQ_NB_REQUESTS] = {
831 "new_process",
832 "new_thread",
833 "set_debug",
834 "init_process",
835 "init_thread",
836 "get_thread_buffer",
837 "terminate_process",
838 "terminate_thread",
839 "get_process_info",
840 "set_process_info",
841 "get_thread_info",
842 "set_thread_info",
843 "suspend_thread",
844 "resume_thread",
845 "debugger",
846 "queue_apc",
847 "get_apcs",
848 "close_handle",
849 "get_handle_info",
850 "set_handle_info",
851 "dup_handle",
852 "open_process",
853 "select",
854 "create_event",
855 "event_op",
856 "open_event",
857 "create_mutex",
858 "release_mutex",
859 "open_mutex",
860 "create_semaphore",
861 "release_semaphore",
862 "open_semaphore",
863 "create_file",
864 "alloc_file_handle",
865 "get_read_fd",
866 "get_write_fd",
867 "set_file_pointer",
868 "truncate_file",
869 "set_file_time",
870 "flush_file",
871 "get_file_info",
872 "lock_file",
873 "unlock_file",
874 "create_pipe",
875 "alloc_console",
876 "free_console",
877 "open_console",
878 "set_console_fd",
879 "get_console_mode",
880 "set_console_mode",
881 "set_console_info",
882 "get_console_info",
883 "write_console_input",
884 "read_console_input",
885 "create_change_notification",
886 "create_mapping",
887 "open_mapping",
888 "get_mapping_info",
889 "create_device",
890 "create_snapshot",
891 "next_process",
892 "wait_debug_event",
893 "send_debug_event",
894 "continue_debug_event",
895 "debug_process",
898 /* ### make_requests end ### */
899 /* Everything above this line is generated automatically by tools/make_requests */
901 void trace_request( enum request req, int fd )
903 current->last_req = req;
904 if (req < REQ_NB_REQUESTS)
906 fprintf( stderr, "%08x: %s(", (unsigned int)current, req_names[req] );
907 req_dumpers[req]( current->buffer );
909 else
910 fprintf( stderr, "%08x: %d(", (unsigned int)current, req );
911 if (fd != -1) fprintf( stderr, " ) fd=%d\n", fd );
912 else fprintf( stderr, " )\n" );
915 void trace_timeout(void)
917 fprintf( stderr, "%08x: *timeout*\n", (unsigned int)current );
920 void trace_kill( int exit_code )
922 fprintf( stderr,"%08x: *killed* exit_code=%d\n",
923 (unsigned int)current, exit_code );
926 void trace_reply( struct thread *thread, unsigned int res, int pass_fd )
928 fprintf( stderr, "%08x: %s() = %d",
929 (unsigned int)thread, req_names[thread->last_req], res );
930 if (reply_dumpers[thread->last_req])
932 fprintf( stderr, " {" );
933 reply_dumpers[thread->last_req]( thread->buffer );
934 fprintf( stderr, " }" );
936 if (pass_fd != -1) fprintf( stderr, " fd=%d\n", pass_fd );
937 else fprintf( stderr, "\n" );