diff options
Diffstat (limited to 'liboffloadmic/runtime/liboffload_error.c')
-rw-r--r-- | liboffloadmic/runtime/liboffload_error.c | 475 |
1 files changed, 475 insertions, 0 deletions
diff --git a/liboffloadmic/runtime/liboffload_error.c b/liboffloadmic/runtime/liboffload_error.c new file mode 100644 index 00000000000..eb5699d3c5c --- /dev/null +++ b/liboffloadmic/runtime/liboffload_error.c @@ -0,0 +1,475 @@ +/* + Copyright (c) 2014 Intel Corporation. All Rights Reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + + +#include <stdio.h> +#include <stdarg.h> +#ifndef va_copy +#define va_copy(dst, src) ((dst) = (src)) +#endif + +#include "liboffload_msg.h" + +#include "liboffload_error_codes.h" + +/***********************************************/ +/* error-handling function, liboffload_error_support */ +/***********************************************/ + +void __liboffload_error_support(error_types input_tag, ...) +{ + va_list args; + va_start(args, input_tag); + + switch (input_tag) { + case c_device_is_not_available: + write_message(stderr, msg_c_device_is_not_available, args); + break; + case c_invalid_device_number: + write_message(stderr, msg_c_invalid_device_number, args); + break; + case c_send_func_ptr: + write_message(stderr, msg_c_send_func_ptr, args); + break; + case c_receive_func_ptr: + write_message(stderr, msg_c_receive_func_ptr, args); + break; + case c_malloc: + write_message(stderr, msg_c_malloc, args); + break; + case c_offload_malloc: + write_message(stderr, msg_c_offload_malloc, args); + break; + case c_offload1: + write_message(stderr, msg_c_offload1, args); + break; + case c_unknown_var_type: + write_message(stderr, c_unknown_var_type, args); + break; + case c_invalid_env_var_value: + write_message(stderr, msg_c_invalid_env_var_value, args); + break; + case c_invalid_env_var_int_value: + write_message(stderr, msg_c_invalid_env_var_int_value, args); + break; + case c_invalid_env_report_value: + write_message(stderr, msg_c_invalid_env_report_value, args); + break; + case c_offload_signaled1: + write_message(stderr, msg_c_offload_signaled1, args); + break; + case c_offload_signaled2: + write_message(stderr, msg_c_offload_signaled2, args); + break; + case c_myowrapper_checkresult: + write_message(stderr, msg_c_myowrapper_checkresult, args); + break; + case c_myotarget_checkresult: + write_message(stderr, msg_c_myotarget_checkresult, args); + break; + case c_offload_descriptor_offload: + write_message(stderr, msg_c_offload_descriptor_offload, args); + break; + case c_merge_var_descs1: + write_message(stderr, msg_c_merge_var_descs1, args); + break; + case c_merge_var_descs2: + write_message(stderr, msg_c_merge_var_descs2, args); + break; + case c_mic_parse_env_var_list1: + write_message(stderr, msg_c_mic_parse_env_var_list1, args); + break; + case c_mic_parse_env_var_list2: + write_message(stderr, msg_c_mic_parse_env_var_list2, args); + break; + case c_mic_process_exit_ret: + write_message(stderr, msg_c_mic_process_exit_ret, args); + break; + case c_mic_process_exit_sig: + write_message(stderr, msg_c_mic_process_exit_sig, args); + break; + case c_mic_process_exit: + write_message(stderr, msg_c_mic_process_exit, args); + break; + case c_mic_init3: + write_message(stderr, msg_c_mic_init3, args); + break; + case c_mic_init4: + write_message(stderr, msg_c_mic_init4, args); + break; + case c_mic_init5: + write_message(stderr, msg_c_mic_init5, args); + break; + case c_mic_init6: + write_message(stderr, msg_c_mic_init6, args); + break; + case c_no_static_var_data: + write_message(stderr, msg_c_no_static_var_data, args); + break; + case c_no_ptr_data: + write_message(stderr, msg_c_no_ptr_data, args); + break; + case c_get_engine_handle: + write_message(stderr, msg_c_get_engine_handle, args); + break; + case c_get_engine_index: + write_message(stderr, msg_c_get_engine_index, args); + break; + case c_process_create: + write_message(stderr, msg_c_process_create, args); + break; + case c_process_wait_shutdown: + write_message(stderr, msg_c_process_wait_shutdown, args); + break; + case c_process_proxy_flush: + write_message(stderr, msg_c_process_proxy_flush, args); + break; + case c_process_get_func_handles: + write_message(stderr, msg_c_process_get_func_handles, args); + break; + case c_load_library: + write_message(stderr, msg_c_load_library, args); + break; + case c_coipipe_max_number: + write_message(stderr, msg_c_coi_pipeline_max_number, args); + break; + case c_pipeline_create: + write_message(stderr, msg_c_pipeline_create, args); + break; + case c_pipeline_run_func: + write_message(stderr, msg_c_pipeline_run_func, args); + break; + case c_pipeline_start_run_funcs: + write_message(stderr, msg_c_pipeline_start_run_funcs, args); + break; + case c_buf_create: + write_message(stderr, msg_c_buf_create, args); + break; + case c_buf_create_out_of_mem: + write_message(stderr, msg_c_buf_create_out_of_mem, args); + break; + case c_buf_create_from_mem: + write_message(stderr, msg_c_buf_create_from_mem, args); + break; + case c_buf_destroy: + write_message(stderr, msg_c_buf_destroy, args); + break; + case c_buf_map: + write_message(stderr, msg_c_buf_map, args); + break; + case c_buf_unmap: + write_message(stderr, msg_c_buf_unmap, args); + break; + case c_buf_read: + write_message(stderr, msg_c_buf_read, args); + break; + case c_buf_write: + write_message(stderr, msg_c_buf_write, args); + break; + case c_buf_copy: + write_message(stderr, msg_c_buf_copy, args); + break; + case c_buf_get_address: + write_message(stderr, msg_c_buf_get_address, args); + break; + case c_buf_add_ref: + write_message(stderr, msg_c_buf_add_ref, args); + break; + case c_buf_release_ref: + write_message(stderr, msg_c_buf_release_ref, args); + break; + case c_buf_set_state: + write_message(stderr, msg_c_buf_set_state, args); + break; + case c_event_wait: + write_message(stderr, msg_c_event_wait, args); + break; + case c_zero_or_neg_ptr_len: + write_message(stderr, msg_c_zero_or_neg_ptr_len, args); + break; + case c_zero_or_neg_transfer_size: + write_message(stderr, msg_c_zero_or_neg_transfer_size, args); + break; + case c_bad_ptr_mem_range: + write_message(stderr, msg_c_bad_ptr_mem_range, args); + break; + case c_different_src_and_dstn_sizes: + write_message(stderr, msg_c_different_src_and_dstn_sizes, args); + break; + case c_ranges_dont_match: + write_message(stderr, msg_c_ranges_dont_match, args); + break; + case c_destination_is_over: + write_message(stderr, msg_c_destination_is_over, args); + break; + case c_slice_of_noncont_array: + write_message(stderr, msg_c_slice_of_noncont_array, args); + break; + case c_non_contiguous_dope_vector: + write_message(stderr, msg_c_non_contiguous_dope_vector, args); + break; + case c_pointer_array_mismatch: + write_message(stderr, msg_c_pointer_array_mismatch, args); + break; + case c_omp_invalid_device_num_env: + write_message(stderr, msg_c_omp_invalid_device_num_env, args); + break; + case c_omp_invalid_device_num: + write_message(stderr, msg_c_omp_invalid_device_num, args); + break; + case c_unknown_binary_type: + write_message(stderr, msg_c_unknown_binary_type, args); + break; + case c_multiple_target_exes: + write_message(stderr, msg_c_multiple_target_exes, args); + break; + case c_no_target_exe: + write_message(stderr, msg_c_no_target_exe, args); + break; + case c_report_unknown_timer_node: + write_message(stderr, msg_c_report_unknown_timer_node, args); + break; + case c_report_unknown_trace_node: + write_message(stderr, msg_c_report_unknown_trace_node, args); + break; + } + va_end(args); +} + +char const * report_get_message_str(error_types input_tag) +{ + switch (input_tag) { + case c_report_title: + return (offload_get_message_str(msg_c_report_title)); + case c_report_from_file: + return (offload_get_message_str(msg_c_report_from_file)); + case c_report_offload: + return (offload_get_message_str(msg_c_report_offload)); + case c_report_mic: + return (offload_get_message_str(msg_c_report_mic)); + case c_report_file: + return (offload_get_message_str(msg_c_report_file)); + case c_report_line: + return (offload_get_message_str(msg_c_report_line)); + case c_report_host: + return (offload_get_message_str(msg_c_report_host)); + case c_report_tag: + return (offload_get_message_str(msg_c_report_tag)); + case c_report_cpu_time: + return (offload_get_message_str(msg_c_report_cpu_time)); + case c_report_seconds: + return (offload_get_message_str(msg_c_report_seconds)); + case c_report_cpu_to_mic_data: + return (offload_get_message_str(msg_c_report_cpu_to_mic_data)); + case c_report_bytes: + return (offload_get_message_str(msg_c_report_bytes)); + case c_report_mic_time: + return (offload_get_message_str(msg_c_report_mic_time)); + case c_report_mic_to_cpu_data: + return (offload_get_message_str(msg_c_report_mic_to_cpu_data)); + case c_report_compute: + return (offload_get_message_str(msg_c_report_compute)); + case c_report_copyin_data: + return (offload_get_message_str(msg_c_report_copyin_data)); + case c_report_copyout_data: + return (offload_get_message_str(msg_c_report_copyout_data)); + case c_report_create_buf_host: + return (offload_get_message_str(c_report_create_buf_host)); + case c_report_create_buf_mic: + return (offload_get_message_str(msg_c_report_create_buf_mic)); + case c_report_destroy: + return (offload_get_message_str(msg_c_report_destroy)); + case c_report_gather_copyin_data: + return (offload_get_message_str(msg_c_report_gather_copyin_data)); + case c_report_gather_copyout_data: + return (offload_get_message_str(msg_c_report_gather_copyout_data)); + case c_report_state_signal: + return (offload_get_message_str(msg_c_report_state_signal)); + case c_report_signal: + return (offload_get_message_str(msg_c_report_signal)); + case c_report_wait: + return (offload_get_message_str(msg_c_report_wait)); + case c_report_init: + return (offload_get_message_str(msg_c_report_init)); + case c_report_init_func: + return (offload_get_message_str(msg_c_report_init_func)); + case c_report_logical_card: + return (offload_get_message_str(msg_c_report_logical_card)); + case c_report_mic_myo_fptr: + return (offload_get_message_str(msg_c_report_mic_myo_fptr)); + case c_report_mic_myo_shared: + return (offload_get_message_str(msg_c_report_mic_myo_shared)); + case c_report_myoacquire: + return (offload_get_message_str(msg_c_report_myoacquire)); + case c_report_myofini: + return (offload_get_message_str(msg_c_report_myofini)); + case c_report_myoinit: + return (offload_get_message_str(msg_c_report_myoinit)); + case c_report_myoregister: + return (offload_get_message_str(msg_c_report_myoregister)); + case c_report_myorelease: + return (offload_get_message_str(msg_c_report_myorelease)); + case c_report_myosharedalignedfree: + return ( + offload_get_message_str(msg_c_report_myosharedalignedfree)); + case c_report_myosharedalignedmalloc: + return ( + offload_get_message_str(msg_c_report_myosharedalignedmalloc)); + case c_report_myosharedfree: + return (offload_get_message_str(msg_c_report_myosharedfree)); + case c_report_myosharedmalloc: + return (offload_get_message_str(msg_c_report_myosharedmalloc)); + case c_report_physical_card: + return (offload_get_message_str(msg_c_report_physical_card)); + case c_report_receive_pointer_data: + return ( + offload_get_message_str(msg_c_report_receive_pointer_data)); + case c_report_received_pointer_data: + return ( + offload_get_message_str(msg_c_report_received_pointer_data)); + case c_report_register: + return (offload_get_message_str(msg_c_report_register)); + case c_report_scatter_copyin_data: + return (offload_get_message_str(msg_c_report_scatter_copyin_data)); + case c_report_scatter_copyout_data: + return ( + offload_get_message_str(msg_c_report_scatter_copyout_data)); + case c_report_send_pointer_data: + return (offload_get_message_str(msg_c_report_send_pointer_data)); + case c_report_sent_pointer_data: + return (offload_get_message_str(msg_c_report_sent_pointer_data)); + case c_report_start: + return (offload_get_message_str(msg_c_report_start)); + case c_report_start_target_func: + return (offload_get_message_str(msg_c_report_start_target_func)); + case c_report_state: + return (offload_get_message_str(msg_c_report_state)); + case c_report_unregister: + return (offload_get_message_str(msg_c_report_unregister)); + case c_report_var: + return (offload_get_message_str(msg_c_report_var)); + + default: + LIBOFFLOAD_ERROR(c_report_unknown_trace_node); + abort(); + } +} + +char const * report_get_host_stage_str(int i) +{ + switch (i) { + case c_offload_host_total_offload: + return ( + offload_get_message_str(msg_c_report_host_total_offload_time)); + case c_offload_host_initialize: + return (offload_get_message_str(msg_c_report_host_initialize)); + case c_offload_host_target_acquire: + return ( + offload_get_message_str(msg_c_report_host_target_acquire)); + case c_offload_host_wait_deps: + return (offload_get_message_str(msg_c_report_host_wait_deps)); + case c_offload_host_setup_buffers: + return (offload_get_message_str(msg_c_report_host_setup_buffers)); + case c_offload_host_alloc_buffers: + return (offload_get_message_str(msg_c_report_host_alloc_buffers)); + case c_offload_host_setup_misc_data: + return ( + offload_get_message_str(msg_c_report_host_setup_misc_data)); + case c_offload_host_alloc_data_buffer: + return ( + offload_get_message_str(msg_c_report_host_alloc_data_buffer)); + case c_offload_host_send_pointers: + return (offload_get_message_str(msg_c_report_host_send_pointers)); + case c_offload_host_gather_inputs: + return (offload_get_message_str(msg_c_report_host_gather_inputs)); + case c_offload_host_map_in_data_buffer: + return ( + offload_get_message_str(msg_c_report_host_map_in_data_buffer)); + case c_offload_host_unmap_in_data_buffer: + return (offload_get_message_str( + msg_c_report_host_unmap_in_data_buffer)); + case c_offload_host_start_compute: + return (offload_get_message_str(msg_c_report_host_start_compute)); + case c_offload_host_wait_compute: + return (offload_get_message_str(msg_c_report_host_wait_compute)); + case c_offload_host_start_buffers_reads: + return (offload_get_message_str( + msg_c_report_host_start_buffers_reads)); + case c_offload_host_scatter_outputs: + return ( + offload_get_message_str(msg_c_report_host_scatter_outputs)); + case c_offload_host_map_out_data_buffer: + return (offload_get_message_str( + msg_c_report_host_map_out_data_buffer)); + case c_offload_host_unmap_out_data_buffer: + return (offload_get_message_str( + msg_c_report_host_unmap_out_data_buffer)); + case c_offload_host_wait_buffers_reads: + return ( + offload_get_message_str(msg_c_report_host_wait_buffers_reads)); + case c_offload_host_destroy_buffers: + return ( + offload_get_message_str(msg_c_report_host_destroy_buffers)); + default: + LIBOFFLOAD_ERROR(c_report_unknown_timer_node); + abort(); + } +} + +char const * report_get_target_stage_str(int i) +{ + switch (i) { + case c_offload_target_total_time: + return (offload_get_message_str(msg_c_report_target_total_time)); + case c_offload_target_descriptor_setup: + return ( + offload_get_message_str(msg_c_report_target_descriptor_setup)); + case c_offload_target_func_lookup: + return (offload_get_message_str(msg_c_report_target_func_lookup)); + case c_offload_target_func_time: + return (offload_get_message_str(msg_c_report_target_func_time)); + case c_offload_target_scatter_inputs: + return ( + offload_get_message_str(msg_c_report_target_scatter_inputs)); + case c_offload_target_add_buffer_refs: + return ( + offload_get_message_str(msg_c_report_target_add_buffer_refs)); + case c_offload_target_compute: + return (offload_get_message_str(msg_c_report_target_compute)); + case c_offload_target_gather_outputs: + return (offload_get_message_str + (msg_c_report_target_gather_outputs)); + case c_offload_target_release_buffer_refs: + return (offload_get_message_str( + msg_c_report_target_release_buffer_refs)); + default: + LIBOFFLOAD_ERROR(c_report_unknown_timer_node); + abort(); + } +} |