From af7caa3997f3313e2f27d7590e9bfc008ce949eb Mon Sep 17 00:00:00 2001 From: Sean Keely Date: Wed, 10 Jun 2020 21:52:59 -0500 Subject: [PATCH] Move loader interface functions into rocr namespace. For static linking all non-API functions must have internal linkage or be in project namespace to avoid colliding with application symbols. Change-Id: I3398e40a387cca36f3ddef2b978306c765161d72 [ROCm/ROCR-Runtime commit: 0be21c54a6632bfc8d5ab3b2cb9ba7704fadb27e] --- .../core/inc/hsa_ven_amd_loader_impl.h | 83 +++++++++++++++++++ .../runtime/hsa-runtime/core/runtime/hsa.cpp | 2 +- .../core/runtime/hsa_ven_amd_loader.cpp | 12 +-- 3 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 projects/rocr-runtime/runtime/hsa-runtime/core/inc/hsa_ven_amd_loader_impl.h diff --git a/projects/rocr-runtime/runtime/hsa-runtime/core/inc/hsa_ven_amd_loader_impl.h b/projects/rocr-runtime/runtime/hsa-runtime/core/inc/hsa_ven_amd_loader_impl.h new file mode 100644 index 0000000000..51ba4289cf --- /dev/null +++ b/projects/rocr-runtime/runtime/hsa-runtime/core/inc/hsa_ven_amd_loader_impl.h @@ -0,0 +1,83 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// The University of Illinois/NCSA +// Open Source License (NCSA) +// +// Copyright (c) 2020-2020, Advanced Micro Devices, Inc. All rights reserved. +// +// Developed by: +// +// AMD Research and AMD HSA Software Development +// +// Advanced Micro Devices, Inc. +// +// www.amd.com +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal with the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// - Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimers. +// - Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimers in +// the documentation and/or other materials provided with the distribution. +// - Neither the names of Advanced Micro Devices, Inc, +// nor the names of its contributors may be used to endorse or promote +// products derived from this Software without specific prior written +// permission. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR +// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS WITH THE SOFTWARE. +// +//////////////////////////////////////////////////////////////////////////////// +#ifndef HSA_RUNTME_CORE_INC_HSA_VEN_AMD_LOADER_IMPL_H_ +#define HSA_RUNTME_CORE_INC_HSA_VEN_AMD_LOADER_IMPL_H_ + +#include "inc/hsa_ven_amd_loader.h" + +namespace rocr { + + hsa_status_t hsa_ven_amd_loader_query_host_address( + const void *device_address, + const void **host_address); + + hsa_status_t hsa_ven_amd_loader_query_segment_descriptors( + hsa_ven_amd_loader_segment_descriptor_t *segment_descriptors, + size_t *num_segment_descriptors); + + hsa_status_t hsa_ven_amd_loader_query_executable( + const void *device_address, + hsa_executable_t *executable); + + hsa_status_t hsa_ven_amd_loader_executable_iterate_loaded_code_objects( + hsa_executable_t executable, + hsa_status_t (*callback)( + hsa_executable_t executable, + hsa_loaded_code_object_t loaded_code_object, + void *data), + void *data); + + hsa_status_t hsa_ven_amd_loader_loaded_code_object_get_info( + hsa_loaded_code_object_t loaded_code_object, + hsa_ven_amd_loader_loaded_code_object_info_t attribute, + void *value); + + hsa_status_t + hsa_ven_amd_loader_code_object_reader_create_from_file_with_offset_size( + hsa_file_t file, + size_t offset, + size_t size, + hsa_code_object_reader_t *code_object_reader); + +} // namespace rocr + +#endif diff --git a/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa.cpp b/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa.cpp index 48425212b6..6cdbc1996c 100644 --- a/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa.cpp +++ b/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa.cpp @@ -56,7 +56,7 @@ #include "core/inc/signal.h" #include "core/inc/cache.h" #include "core/inc/amd_loader_context.hpp" -#include "inc/hsa_ven_amd_loader.h" +#include "core/inc/hsa_ven_amd_loader_impl.h" #include "inc/hsa_ven_amd_aqlprofile.h" #include "core/inc/hsa_ext_amd_impl.h" diff --git a/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa_ven_amd_loader.cpp b/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa_ven_amd_loader.cpp index fafaf400eb..a806e3f349 100644 --- a/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa_ven_amd_loader.cpp +++ b/projects/rocr-runtime/runtime/hsa-runtime/core/runtime/hsa_ven_amd_loader.cpp @@ -40,15 +40,15 @@ // //////////////////////////////////////////////////////////////////////////////// -#include "inc/hsa_ven_amd_loader.h" +#include "core/inc/hsa_ven_amd_loader_impl.h" #include "core/inc/amd_hsa_loader.hpp" #include "core/inc/runtime.h" -//TODO SPK: These functions are not exports. They must be wrapped under rocr. - -using namespace rocr::amd::hsa; -using namespace rocr::core; +namespace rocr { + +using namespace amd::hsa; +using namespace core; using loader::CodeObjectReaderWrapper; using loader::Executable; @@ -265,3 +265,5 @@ hsa_ven_amd_loader_code_object_reader_create_from_file_with_offset_size( *code_object_reader = CodeObjectReaderWrapper::Handle(wrapper); return HSA_STATUS_SUCCESS; } + +} // namespace rocr