/* -------------------------------------------------------------------------

 * This file is part of the MindStudio project.

 * Copyright (c) 2025 Huawei Technologies Co.,Ltd.

 *

 * MindStudio is licensed under Mulan PSL v2.

 * You can use this software according to the terms and conditions of the Mulan PSL v2.

 * You may obtain a copy of Mulan PSL v2 at:

 *

 *          http://license.coscl.org.cn/MulanPSL2

 *

 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,

 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,

 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.

 * See the Mulan PSL v2 for more details.

 * -------------------------------------------------------------------------

 */



#ifndef HAL_HOOKS_H

#define HAL_HOOKS_H



#include "ascend_hal.h"

#include "event_report.h"



/// Interfaces to be hooked use C ABI

extern "C"

{

    drvError_t halMemAlloc(void **pp, unsigned long long size, unsigned long long flag);

    drvError_t halMemFree(void *pp);

    drvError_t halMemCreate(drv_mem_handle_t **handle, size_t size, const struct drv_mem_prop *prop, uint64_t flag);

    drvError_t halMemRelease(drv_mem_handle_t *handle);

    aclError aclrtHostRegisterV2(void *ptr, uint64_t size, uint32_t flag);

    aclError aclrtHostUnregister(void *ptr);

}  // extern "C"



#endif