123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- /*
- 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.
- */
- #if !defined(LIBOFFLOAD_ERROR_CODES_H)
- #define LIBOFFLOAD_ERROR_CODES_H
- #include <stdarg.h>
- #include <stdlib.h>
- #include <stdio.h>
- typedef enum
- {
- c_device_is_not_available = 0,
- c_invalid_device_number,
- c_offload1,
- c_unknown_var_type,
- c_send_func_ptr,
- c_receive_func_ptr,
- c_malloc,
- c_offload_malloc,
- c_invalid_env_var_value,
- c_invalid_env_var_int_value,
- c_invalid_env_report_value,
- c_offload_signaled1,
- c_offload_signaled2,
- c_myotarget_checkresult,
- c_myowrapper_checkresult,
- c_offload_descriptor_offload,
- c_merge_var_descs1,
- c_merge_var_descs2,
- c_mic_parse_env_var_list1,
- c_mic_parse_env_var_list2,
- c_mic_process_exit_ret,
- c_mic_process_exit_sig,
- c_mic_process_exit,
- c_mic_init3,
- c_mic_init4,
- c_mic_init5,
- c_mic_init6,
- c_no_static_var_data,
- c_no_ptr_data,
- c_get_engine_handle,
- c_get_engine_index,
- c_process_create,
- c_process_get_func_handles,
- c_process_wait_shutdown,
- c_process_proxy_flush,
- c_load_library,
- c_pipeline_create,
- c_pipeline_run_func,
- c_pipeline_start_run_funcs,
- c_buf_create,
- c_buf_create_out_of_mem,
- c_buf_create_from_mem,
- c_buf_destroy,
- c_buf_map,
- c_buf_unmap,
- c_buf_read,
- c_buf_write,
- c_buf_copy,
- c_buf_get_address,
- c_buf_add_ref,
- c_buf_release_ref,
- c_buf_set_state,
- c_event_wait,
- c_zero_or_neg_ptr_len,
- c_zero_or_neg_transfer_size,
- c_bad_ptr_mem_range,
- c_different_src_and_dstn_sizes,
- c_ranges_dont_match,
- c_destination_is_over,
- c_slice_of_noncont_array,
- c_non_contiguous_dope_vector,
- c_pointer_array_mismatch,
- c_omp_invalid_device_num_env,
- c_omp_invalid_device_num,
- c_unknown_binary_type,
- c_multiple_target_exes,
- c_no_target_exe,
- c_report_host,
- c_report_target,
- c_report_title,
- c_report_from_file,
- c_report_file,
- c_report_line,
- c_report_tag,
- c_report_seconds,
- c_report_bytes,
- c_report_mic,
- c_report_cpu_time,
- c_report_cpu_to_mic_data,
- c_report_mic_time,
- c_report_mic_to_cpu_data,
- c_report_unknown_timer_node,
- c_report_unknown_trace_node,
- c_report_offload,
- c_report_w_tag,
- c_report_state,
- c_report_start,
- c_report_init,
- c_report_logical_card,
- c_report_physical_card,
- c_report_register,
- c_report_init_func,
- c_report_create_buf_host,
- c_report_create_buf_mic,
- c_report_send_pointer_data,
- c_report_sent_pointer_data,
- c_report_gather_copyin_data,
- c_report_copyin_data,
- c_report_state_signal,
- c_report_signal,
- c_report_wait,
- c_report_compute,
- c_report_receive_pointer_data,
- c_report_received_pointer_data,
- c_report_start_target_func,
- c_report_var,
- c_report_scatter_copyin_data,
- c_report_gather_copyout_data,
- c_report_scatter_copyout_data,
- c_report_copyout_data,
- c_report_unregister,
- c_report_destroy,
- c_report_myoinit,
- c_report_myoregister,
- c_report_myofini,
- c_report_mic_myo_shared,
- c_report_mic_myo_fptr,
- c_report_myosharedmalloc,
- c_report_myosharedfree,
- c_report_myosharedalignedmalloc,
- c_report_myosharedalignedfree,
- c_report_myoacquire,
- c_report_myorelease,
- c_coipipe_max_number
- } error_types;
- enum OffloadHostPhase {
- // Total time on host for entire offload
- c_offload_host_total_offload = 0,
- // Time to load target binary
- c_offload_host_initialize,
- // Time to acquire lrb availability dynamically
- c_offload_host_target_acquire,
- // Time to wait for dependencies
- c_offload_host_wait_deps,
- // Time to allocate pointer buffers, initiate writes for pointers
- // and calculate size of copyin/copyout buffer
- c_offload_host_setup_buffers,
- // Time to allocate pointer buffers
- c_offload_host_alloc_buffers,
- // Time to initialize misc data
- c_offload_host_setup_misc_data,
- // Time to allocate copyin/copyout buffer
- c_offload_host_alloc_data_buffer,
- // Time to initiate writes from host pointers to buffers
- c_offload_host_send_pointers,
- // Time to Gather IN data of offload into buffer
- c_offload_host_gather_inputs,
- // Time to map buffer
- c_offload_host_map_in_data_buffer,
- // Time to unmap buffer
- c_offload_host_unmap_in_data_buffer,
- // Time to start remote function call that does computation on lrb
- c_offload_host_start_compute,
- // Time to wait for compute to finish
- c_offload_host_wait_compute,
- // Time to initiate reads from pointer buffers
- c_offload_host_start_buffers_reads,
- // Time to update host variabels with OUT data from buffer
- c_offload_host_scatter_outputs,
- // Time to map buffer
- c_offload_host_map_out_data_buffer,
- // Time to unmap buffer
- c_offload_host_unmap_out_data_buffer,
- // Time to wait reads from buffers to finish
- c_offload_host_wait_buffers_reads,
- // Time to destroy buffers that are no longer needed
- c_offload_host_destroy_buffers,
- // LAST TIME MONITOR
- c_offload_host_max_phase
- };
- enum OffloadTargetPhase {
- // Total time spent on the target
- c_offload_target_total_time = 0,
- // Time to initialize offload descriptor
- c_offload_target_descriptor_setup,
- // Time to find target entry point in lookup table
- c_offload_target_func_lookup,
- // Total time spend executing offload entry
- c_offload_target_func_time,
- // Time to initialize target variables with IN values from buffer
- c_offload_target_scatter_inputs,
- // Time to add buffer reference for pointer buffers
- c_offload_target_add_buffer_refs,
- // Total time on lrb for computation
- c_offload_target_compute,
- // On lrb, time to copy OUT into buffer
- c_offload_target_gather_outputs,
- // Time to release buffer references
- c_offload_target_release_buffer_refs,
- // LAST TIME MONITOR
- c_offload_target_max_phase
- };
- #ifdef __cplusplus
- extern "C" {
- #endif
- void __liboffload_error_support(error_types input_tag, ...);
- void __liboffload_report_support(error_types input_tag, ...);
- char const *offload_get_message_str(int msgCode);
- char const * report_get_message_str(error_types input_tag);
- char const * report_get_host_stage_str(int i);
- char const * report_get_target_stage_str(int i);
- #ifdef __cplusplus
- }
- #endif
- #define test_msg_cat(nm, msg) \
- fprintf(stderr, "\t TEST for %s \n \t", nm); \
- __liboffload_error_support(msg);
- #define test_msg_cat1(nm, msg, ...) \
- fprintf(stderr, "\t TEST for %s \n \t", nm); \
- __liboffload_error_support(msg, __VA_ARGS__);
- void write_message(FILE * file, int msgCode, va_list args_p);
- #define LIBOFFLOAD_ERROR __liboffload_error_support
- #ifdef TARGET_WINNT
- #define LIBOFFLOAD_ABORT \
- _set_abort_behavior(0, _WRITE_ABORT_MSG); \
- abort()
- #else
- #define LIBOFFLOAD_ABORT \
- abort()
- #endif
- #endif // !defined(LIBOFFLOAD_ERROR_CODES_H)
|