19e05c084SJon Chesterfield //===--- amdgpu/impl/data.cpp ------------------------------------- C++ -*-===//
29e05c084SJon Chesterfield //
39e05c084SJon Chesterfield // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
49e05c084SJon Chesterfield // See https://llvm.org/LICENSE.txt for license information.
59e05c084SJon Chesterfield // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
69e05c084SJon Chesterfield //
79e05c084SJon Chesterfield //===----------------------------------------------------------------------===//
868ab93f4SJon Chesterfield #include "impl_runtime.h"
9a733bbbdSJon Chesterfield #include "hsa_api.h"
10d0b31295SJon Chesterfield #include "internal.h"
11d0b31295SJon Chesterfield #include "rt.h"
12d0b31295SJon Chesterfield #include <cassert>
13d0b31295SJon Chesterfield #include <stdio.h>
14d0b31295SJon Chesterfield #include <string.h>
15d0b31295SJon Chesterfield #include <vector>
16d0b31295SJon Chesterfield
17d0b31295SJon Chesterfield using core::TaskImpl;
18d0b31295SJon Chesterfield
19d0b31295SJon Chesterfield namespace core {
20*3153bdd5SJon Chesterfield namespace Runtime {
HostMalloc(void ** ptr,size_t size,hsa_amd_memory_pool_t MemoryPool)21*3153bdd5SJon Chesterfield hsa_status_t HostMalloc(void **ptr, size_t size,
229b8b7c11SPushpinder Singh hsa_amd_memory_pool_t MemoryPool) {
239b8b7c11SPushpinder Singh hsa_status_t err = hsa_amd_memory_pool_allocate(MemoryPool, size, 0, ptr);
24*3153bdd5SJon Chesterfield DP("Malloced %p\n", *ptr);
259b8b7c11SPushpinder Singh if (err == HSA_STATUS_SUCCESS) {
269b8b7c11SPushpinder Singh err = core::allow_access_to_all_gpu_agents(*ptr);
27d0b31295SJon Chesterfield }
28*3153bdd5SJon Chesterfield return err;
29d0b31295SJon Chesterfield }
30d0b31295SJon Chesterfield
Memfree(void * ptr)31*3153bdd5SJon Chesterfield hsa_status_t Memfree(void *ptr) {
32d18fb09cSJon Chesterfield hsa_status_t err = hsa_amd_memory_pool_free(ptr);
33*3153bdd5SJon Chesterfield DP("Freed %p\n", ptr);
34*3153bdd5SJon Chesterfield return err;
35d0b31295SJon Chesterfield }
36*3153bdd5SJon Chesterfield } // namespace Runtime
37d0b31295SJon Chesterfield } // namespace core
38