//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.txt for details. // //===----------------------------------------------------------------------===// //The interface between offload library and the COI API on the target. #ifndef COI_SERVER_H_INCLUDED #define COI_SERVER_H_INCLUDED #include #include #include #include #include #include #include #include #include #include "../liboffload_error_codes.h" // wrappers for COI API #define PipelineStartExecutingRunFunctions() \ { \ COIRESULT res = COIPipelineStartExecutingRunFunctions(); \ if (res != COI_SUCCESS) { \ LIBOFFLOAD_ERROR(c_pipeline_start_run_funcs, mic_index, res); \ exit(1); \ } \ } #define ProcessWaitForShutdown() \ { \ COIRESULT res = COIProcessWaitForShutdown(); \ if (res != COI_SUCCESS) { \ LIBOFFLOAD_ERROR(c_process_wait_shutdown, mic_index, res); \ exit(1); \ } \ } #define BufferAddRef(buf) \ { \ COIRESULT res = COIBufferAddRef(buf); \ if (res != COI_SUCCESS) { \ LIBOFFLOAD_ERROR(c_buf_add_ref, mic_index, res); \ exit(1); \ } \ } #define BufferReleaseRef(buf) \ { \ COIRESULT res = COIBufferReleaseRef(buf); \ if (res != COI_SUCCESS) { \ LIBOFFLOAD_ERROR(c_buf_release_ref, mic_index, res); \ exit(1); \ } \ } #define EngineGetIndex(index) \ { \ COI_ISA_TYPE isa_type; \ COIRESULT res = COIEngineGetIndex(&isa_type, index); \ if (res != COI_SUCCESS) { \ LIBOFFLOAD_ERROR(c_get_engine_index, mic_index, res); \ exit(1); \ } \ } #endif // COI_SERVER_H_INCLUDED