LCOV - code coverage report
Current view: top level - base_comm/resources/hccp/common - dl_hal_function.c (source / functions) Coverage Total Hit
Test: coverage.info Lines: 82.3 % 351 289
Test Date: 2026-08-04 10:52:23 Functions: 74.6 % 67 50

            Line data    Source code
       1              : /**
       2              :  * Copyright (c) 2025 Huawei Technologies Co., Ltd.
       3              :  * This program is free software, you can redistribute it and/or modify it under the terms and conditions of
       4              :  * CANN Open Software License Agreement Version 2.0 (the "License").
       5              :  * Please refer to the License for details. You may not use this file except in compliance with the License.
       6              :  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
       7              :  * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
       8              :  * See LICENSE in the root of the software repository for the full text of the License.
       9              :  */
      10              : 
      11              : #include <pthread.h>
      12              : #include "errno.h"
      13              : #include "ascend_hal_dl.h"
      14              : #include "network_comm.h"
      15              : #include "dl_hal_function.h"
      16              : 
      17              : #define DL_API_IS_NULL_CHECK(handle, ptr, str) do { \
      18              :     if ((handle) == NULL) { \
      19              :         roce_err("g_hal_api_handle is NULL!"); \
      20              :         return (-EINVAL); \
      21              :     } \
      22              :     if ((ptr) == NULL) { \
      23              :         roce_err("[%s] is NULL!", (str)); \
      24              :         return (-EINVAL); \
      25              :     } \
      26              : } while (0)
      27              : 
      28              : static pthread_mutex_t gHalApiLock = PTHREAD_MUTEX_INITIALIZER;
      29              : static void *gHalApiHandle = NULL;
      30              : static struct DlHalOps gHalOps;
      31              : static int gHalApiRefcnt = 0;
      32              : 
      33           42 : static void DlHalApiDevInit(void)
      34              : {
      35           42 :     gHalOps.dlDrvGetDevNum = (int (*)(unsigned int *numDev))
      36           42 :         AscendHalDlsym(gHalApiHandle, "drvGetDevNum");
      37              : 
      38           42 :     gHalOps.dlDrvGetLocalDevIdByHostDevId = (int (*)(uint32_t devId, uint32_t* chipId))
      39           42 :         AscendHalDlsym(gHalApiHandle, "drvGetLocalDevIDByHostDevID");
      40              : 
      41           42 :     gHalOps.dlDrvGetDevIdByLocalDevId = (int (*)(uint32_t localDevId, uint32_t *devId))
      42           42 :         AscendHalDlsym(gHalApiHandle, "drvGetDevIDByLocalDevID");
      43              : 
      44           42 :     gHalOps.dlDrvDeviceGetIndexByPhyId = (int (*)(uint32_t phyId, uint32_t *devIndex))
      45           42 :         AscendHalDlsym(gHalApiHandle, "drvDeviceGetIndexByPhyId");
      46              : 
      47           42 :     gHalOps.dlDrvDeviceGetPhyIdByIndex = (int (*)(unsigned int devIndex, unsigned int *phyId))
      48           42 :         AscendHalDlsym(gHalApiHandle, "drvDeviceGetPhyIdByIndex");
      49              : 
      50           42 :     gHalOps.dlHalGetPhyDevIdByudevId = (int (*)(unsigned int udevId, unsigned int *phyDevId))
      51           42 :         AscendHalDlsym(gHalApiHandle, "halGetPhyDevIdByUdevId");
      52              : 
      53           42 :     gHalOps.dlDrvDeviceGetBareTgid = (pid_t (*)(void))
      54           42 :         AscendHalDlsym(gHalApiHandle, "drvDeviceGetBareTgid");
      55              : 
      56           42 :     gHalOps.dlHalGetDeviceInfo = (int (*)(uint32_t devId, int32_t moduleType, int32_t infoType, int64_t *value))
      57           42 :         AscendHalDlsym(gHalApiHandle, "halGetDeviceInfo");
      58              : 
      59           42 :     gHalOps.dlHalQueryDevPid = (drvError_t (*)(struct halQueryDevpidInfo info, pid_t *devPid))
      60           42 :         AscendHalDlsym(gHalApiHandle, "halQueryDevpid");
      61              : 
      62           42 :     gHalOps.dlDrvQueryProcessHostPid = (drvError_t (*)(int pid, unsigned int *chipId, unsigned int *vfid,
      63              :         unsigned int *hostPid, unsigned int *cpType))
      64           42 :             AscendHalDlsym(gHalApiHandle, "drvQueryProcessHostPid");
      65              : 
      66           42 :     gHalOps.dlDrvGetProcessSign = (int (*)(struct process_sign *sign))
      67           42 :         AscendHalDlsym(gHalApiHandle, "drvGetProcessSign");
      68              : 
      69           42 :     gHalOps.dlDrvGetPlatformInfo = (int (*)(uint32_t* info))
      70           42 :         AscendHalDlsym(gHalApiHandle, "drvGetPlatformInfo");
      71              : 
      72           42 :     gHalOps.dlHalGetChipInfo = (int (*)(unsigned int devId, halChipInfo *chipInfo))
      73           42 :         AscendHalDlsym(gHalApiHandle, "halGetChipInfo");
      74           42 : }
      75              : 
      76           42 : static void DlHalApiHdcInit(void)
      77              : {
      78           42 :     gHalOps.dlHalHdcGetSessionAttr = (int (*)(HDC_SESSION session, int attr, int *value))
      79           42 :         AscendHalDlsym(gHalApiHandle, "halHdcGetSessionAttr");
      80              : 
      81           42 :     gHalOps.dlDrvHdcGetCapacity = (hdcError_t (*)(struct drvHdcCapacity *capacity))
      82           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcGetCapacity");
      83              : 
      84           42 :     gHalOps.dlDrvHdcClientCreate = (hdcError_t (*)(HDC_CLIENT *client, int maxSessionNum,
      85           42 :         int serviceType, int flag))AscendHalDlsym(gHalApiHandle, "drvHdcClientCreate");
      86              : 
      87           42 :     gHalOps.dlDrvHdcClientDestroy = (hdcError_t (*)(HDC_CLIENT client))
      88           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcClientDestroy");
      89              : 
      90           42 :     gHalOps.dlDrvHdcSessionConnect =
      91           42 :         (hdcError_t (*)(int peerNode, int peerDevid, HDC_CLIENT client, HDC_SESSION *session))
      92           42 :             AscendHalDlsym(gHalApiHandle, "drvHdcSessionConnect");
      93              : 
      94           42 :     gHalOps.dlDrvHdcServerCreate = (hdcError_t (*)(int devid, int serviceType, HDC_SERVER *pServer))
      95           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcServerCreate");
      96              : 
      97           42 :     gHalOps.dlDrvHdcServerDestroy = (hdcError_t (*)(HDC_SERVER server))
      98           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcServerDestroy");
      99              : 
     100           42 :     gHalOps.dlDrvHdcSessionAccept = (hdcError_t (*)(HDC_SERVER server, HDC_SESSION *session))
     101           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcSessionAccept");
     102              : 
     103           42 :     gHalOps.dlDrvHdcSessionClose = (hdcError_t (*)(HDC_SESSION session))
     104           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcSessionClose");
     105              : 
     106           42 :     gHalOps.dlDrvHdcFreeMsg = (hdcError_t (*)(struct drvHdcMsg *msg))
     107           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcFreeMsg");
     108              : 
     109           42 :     gHalOps.dlDrvHdcReuseMsg = (hdcError_t (*)(struct drvHdcMsg *msg))
     110           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcReuseMsg");
     111              : 
     112           42 :     gHalOps.dlDrvHdcAddMsgBuffer = (hdcError_t (*)(struct drvHdcMsg *msg, char *pBuf, int len))
     113           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcAddMsgBuffer");
     114              : 
     115           42 :     gHalOps.dlDrvHdcGetMsgBuffer = (hdcError_t (*)(struct drvHdcMsg *msg, int index, char **pBuf, int *pLen))
     116           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcGetMsgBuffer");
     117              : 
     118           42 :     gHalOps.dlHalHdcRecv =
     119           42 :         (hdcError_t (*)(HDC_SESSION session, struct drvHdcMsg *pMsg, int bufLen, UINT64 flag, int *recvBufCount,
     120           42 :             UINT32 timeout))AscendHalDlsym(gHalApiHandle, "halHdcRecv");
     121              : 
     122           42 :     gHalOps.dlHalHdcSend = (hdcError_t (*)(HDC_SESSION session, struct drvHdcMsg *pMsg, UINT64 flag,
     123           42 :         UINT32 timeout))AscendHalDlsym(gHalApiHandle, "halHdcSend");
     124              : 
     125           42 :     gHalOps.dlDrvHdcAllocMsg = (hdcError_t (*)(HDC_SESSION session, struct drvHdcMsg **ppMsg, int count))
     126           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcAllocMsg");
     127              : 
     128           42 :     gHalOps.dlDrvHdcSetSessionReference = (hdcError_t (*)(HDC_SESSION session))
     129           42 :         AscendHalDlsym(gHalApiHandle, "drvHdcSetSessionReference");
     130              : 
     131           42 :     gHalOps.dlHalHdcSessionConnectEx = (hdcError_t(*)(int peer_node, int peer_devid, int peer_pid,
     132           42 :         HDC_CLIENT client, HDC_SESSION *pSession))AscendHalDlsym(gHalApiHandle, "halHdcSessionConnectEx");
     133           42 : }
     134              : 
     135           42 : static void DlHalApiMemInit(void)
     136              : {
     137           42 :     gHalOps.dlHalMemAlloc = (int (*)(void **pp, unsigned long long size, unsigned long long flag))
     138           42 :         AscendHalDlsym(gHalApiHandle, "halMemAlloc");
     139              : 
     140           42 :     gHalOps.dlHalMemFree = (int (*)(void *pp))
     141           42 :         AscendHalDlsym(gHalApiHandle, "halMemFree");
     142              : 
     143              : #ifndef HNS_ROCE_LLT
     144              :     gHalOps.dlHalMemCtl =
     145              :         (int (*)(int type, void *paramValue, size_t paramValueSize, void *outValue, size_t *outSizeRet))
     146              :             AscendHalDlsym(gHalApiHandle, "halMemCtl");
     147              : #endif
     148           42 :     gHalOps.dlHalMemGetInfoEx = (drvError_t (*)(unsigned int devId, unsigned int type, struct MemInfo *info))
     149           42 :             AscendHalDlsym(gHalApiHandle, "halMemGetInfoEx");
     150              : 
     151           42 :     gHalOps.dlHalMemBindSibling =
     152           42 :         (drvError_t (*)(int hostPid, int aicpuPid, unsigned int vfid, unsigned int devId, unsigned int flag))
     153           42 :             AscendHalDlsym(gHalApiHandle, "halMemBindSibling");
     154              : 
     155           42 :     gHalOps.dlHalBuffAllocAlignEx = (int (*)(uint64_t size, unsigned int align, unsigned long flag, int grpId,
     156              :         void **buff))
     157           42 :             AscendHalDlsym(gHalApiHandle, "halBuffAllocAlignEx");
     158              : 
     159           42 :     gHalOps.dlHalBuffFree = (int (*)(void *buff))
     160           42 :             AscendHalDlsym(gHalApiHandle, "halBuffFree");
     161              : 
     162           42 :     gHalOps.dlHalBindCgroup = (int (*)(BIND_CGROUP_TYPE bindType))
     163           42 :         AscendHalDlsym(gHalApiHandle, "halBindCgroup");
     164              : 
     165           42 :     gHalOps.dlHalNotifyGetInfo = (int (*)(uint32_t devId, uint32_t tsId, uint32_t type, uint32_t *val))
     166           42 :         AscendHalDlsym(gHalApiHandle, "halNotifyGetInfo");
     167              : 
     168           42 :     gHalOps.dlHalGrpQuery = (int (*)(GroupQueryCmdType cmd, void *inBuff, unsigned int inLen, void *outBuff,
     169              :         unsigned int *outLen))
     170           42 :             AscendHalDlsym(gHalApiHandle, "halGrpQuery");
     171              : 
     172           42 :     gHalOps.dlHalMemRegUbSegment = (drvError_t (*)(uint32_t devId, uint64_t va, uint64_t size))
     173           42 :         AscendHalDlsym(gHalApiHandle, "halMemRegUbSegment");
     174              : 
     175           42 :     gHalOps.dlHalMemUnRegUbSegment = (drvError_t (*)(uint32_t devId, uint64_t va))
     176           42 :         AscendHalDlsym(gHalApiHandle, "halMemUnRegUbSegment");
     177              : 
     178           42 :     gHalOps.dlDrvMemGetAttribute = (DVresult (*)(DVdeviceptr vptr, struct DVattribute *attr))
     179           42 :         AscendHalDlsym(gHalApiHandle, "drvMemGetAttribute");
     180           42 : }
     181              : 
     182           42 : static void DlHalApiSensorInit(void)
     183              : {
     184           42 :     gHalOps.dlHalSensorNodeRegister =
     185           42 :         (drvError_t (*)(uint32_t devid, struct halSensorNodeCfg *cfg, uint64_t *handle))
     186           42 :         AscendHalDlsym(gHalApiHandle, "halSensorNodeRegister");
     187              : 
     188           42 :     gHalOps.dlHalSensorNodeUnregister = (drvError_t (*)(uint32_t devid, uint64_t handle))
     189           42 :         AscendHalDlsym(gHalApiHandle, "halSensorNodeUnregister");
     190              : 
     191           42 :     gHalOps.dlHalSensorNodeUpdateState =
     192           42 :         (drvError_t (*)(uint32_t devid, uint64_t handle, int val, halGeneralEventType_t assertion))
     193           42 :         AscendHalDlsym(gHalApiHandle, "halSensorNodeUpdateState");
     194           42 : }
     195              : 
     196           42 : static void DlHalApiEschedInit(void)
     197              : {
     198           42 :     gHalOps.dlHalEschedSubmitEvent = (int (*)(uint32_t devId, struct event_summary *event))
     199           42 :         AscendHalDlsym(gHalApiHandle, "halEschedSubmitEvent");
     200              : 
     201           42 :     gHalOps.dlHalEschedAttachDevice = (int (*)(uint32_t devId))
     202           42 :         AscendHalDlsym(gHalApiHandle, "halEschedAttachDevice");
     203              : 
     204           42 :     gHalOps.dlHalEschedCreateGrp = (int (*)(uint32_t devId, uint32_t grpId, GROUP_TYPE type))
     205           42 :         AscendHalDlsym(gHalApiHandle, "halEschedCreateGrp");
     206              : 
     207           42 :     gHalOps.dlHalEschedSubscribeEvent = (int (*)(uint32_t devId, uint32_t grpId, uint32_t threadId,
     208           42 :         uint64_t eventBitmap))AscendHalDlsym(gHalApiHandle, "halEschedSubscribeEvent");
     209              : 
     210           42 :     gHalOps.dlHalEschedWaitEvent = (int (*)(uint32_t devId, uint32_t grpId, uint32_t threadId, int32_t timeout,
     211           42 :         struct event_info *event))AscendHalDlsym(gHalApiHandle, "halEschedWaitEvent");
     212           42 : }
     213              : 
     214           42 : static void DlHalApiResInit(void)
     215              : {
     216           42 :     gHalOps.dlHalResAddrMapV2 = (drvError_t (*)(unsigned int devId, struct res_map_info_in *resInfoIn,
     217           42 :         struct res_map_info_out *resInfoOut))AscendHalDlsym(gHalApiHandle, "halResAddrMapV2");
     218              : 
     219           42 :     gHalOps.dlHalResAddrUnmapV2 = (drvError_t (*)(unsigned int devId, struct res_map_info_in *resInfoIn))
     220           42 :         AscendHalDlsym(gHalApiHandle, "halResAddrUnmapV2");
     221           42 : }
     222              : 
     223           42 : static void DlHalApiHostInit(void)
     224              : {
     225           42 :     gHalOps.dlHalHostRegister = (drvError_t (*)(void *srcPtr, uint64_t size, uint32_t flag, uint32_t devId, void **dstPtr))
     226           42 :         AscendHalDlsym(gHalApiHandle, "halHostRegister");
     227              : 
     228           42 :     gHalOps.dlHalHostUnregister = (drvError_t (*)(void *src_ptr, uint32_t devid))
     229           42 :         AscendHalDlsym(gHalApiHandle, "halHostUnregister");
     230              : 
     231           42 :     gHalOps.dlHalHostUnregisterEx = (drvError_t (*)(void *src_ptr, uint32_t devid, uint32_t flag))
     232           42 :         AscendHalDlsym(gHalApiHandle, "halHostUnregisterEx");
     233           42 :     return;
     234              : }
     235              : 
     236           42 : static void DlHalApiInit(void)
     237              : {
     238           42 :     DlHalApiDevInit();
     239              : 
     240           42 :     DlHalApiHdcInit();
     241              : 
     242           42 :     DlHalApiMemInit();
     243              : 
     244           42 :     DlHalApiSensorInit();
     245              : 
     246           42 :     DlHalApiEschedInit();
     247              : 
     248           42 :     DlHalApiResInit();
     249              : 
     250           42 :     DlHalApiHostInit();
     251              : 
     252           42 :     return;
     253              : }
     254              : 
     255          214 : void DlHalDeinit(void)
     256              : {
     257          214 :     pthread_mutex_lock(&gHalApiLock);
     258          214 :     if (gHalApiHandle != NULL) {
     259          214 :         gHalApiRefcnt--;
     260          214 :         if (gHalApiRefcnt > 0) {
     261          174 :             pthread_mutex_unlock(&gHalApiLock);
     262          174 :             roce_info("dl_hal_deinit success, no need to dlclose libascend_hal.so!");
     263          174 :             return;
     264              :         }
     265              : 
     266           40 :         (void)AscendHalDlclose(gHalApiHandle);
     267           40 :         gHalApiHandle = NULL;
     268              :     }
     269              : 
     270           40 :     pthread_mutex_unlock(&gHalApiLock);
     271           40 :     roce_info("dl_hal_deinit success!");
     272           40 :     return;
     273              : }
     274              : 
     275          219 : int DlHalInit(void)
     276              : {
     277          219 :     pthread_mutex_lock(&gHalApiLock);
     278          219 :     if (gHalApiHandle != NULL) {
     279          177 :         gHalApiRefcnt++;
     280          177 :         pthread_mutex_unlock(&gHalApiLock);
     281          177 :         roce_info("dl_hal_init success, no need to dlopen libascend_hal.so!");
     282          177 :         return 0;
     283              :     }
     284              : 
     285           42 :     gHalApiHandle = AscendHalDlopen("libascend_hal.so", RTLD_NOW);
     286           42 :     if (gHalApiHandle == NULL) {
     287            0 :         pthread_mutex_unlock(&gHalApiLock);
     288            0 :         roce_err("dlopen libascend_hal.so failed! error_no=[%d]", errno);
     289            0 :         return -EINVAL;
     290              :     }
     291              : 
     292           42 :     DlHalApiInit();
     293           42 :     gHalApiRefcnt++;
     294              : 
     295           42 :     pthread_mutex_unlock(&gHalApiLock);
     296           42 :     roce_info("dl_hal_init success!");
     297           42 :     return 0;
     298              : }
     299              : 
     300           46 : int DlDrvGetDevNum(unsigned int *numDev)
     301              : {
     302           46 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvGetDevNum, "dl_drv_get_dev_num");
     303              : 
     304           46 :     return DlRetConvert(gHalOps.dlDrvGetDevNum(numDev));
     305              : }
     306              : 
     307            3 : int DlDrvGetLocalDevIdByHostDevId(unsigned int devId, unsigned int* chipId)
     308              : {
     309            3 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvGetLocalDevIdByHostDevId,
     310              :         "dl_drv_get_local_dev_id_by_host_dev_id");
     311              : 
     312            1 :     return DlRetConvert(gHalOps.dlDrvGetLocalDevIdByHostDevId(devId, chipId));
     313              : }
     314              : 
     315          154 : int DlDrvDeviceGetIndexByPhyId(uint32_t phyId, uint32_t *devIndex)
     316              : {
     317          154 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvDeviceGetIndexByPhyId,
     318              :         "dl_drv_device_get_index_by_phy_id");
     319              : 
     320          154 :     return DlRetConvert(gHalOps.dlDrvDeviceGetIndexByPhyId(phyId, devIndex));
     321              : }
     322              : 
     323           15 : int DlDrvGetDevIdByLocalDevId(unsigned int localDevId, unsigned int *devId)
     324              : {
     325           15 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvGetDevIdByLocalDevId,
     326              :         "dl_drv_get_dev_id_by_local_dev_id");
     327              : 
     328           15 :     return DlRetConvert(gHalOps.dlDrvGetDevIdByLocalDevId(localDevId, devId));
     329              : }
     330              : 
     331           12 : int DlDrvDeviceGetPhyIdByIndex(unsigned int devIndex, unsigned int *phyId)
     332              : {
     333           12 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvDeviceGetPhyIdByIndex,
     334              :         "dl_drv_device_get_phy_id_by_index");
     335              : 
     336            8 :     return DlRetConvert(gHalOps.dlDrvDeviceGetPhyIdByIndex(devIndex, phyId));
     337              : }
     338              : 
     339          124 : int DlHalGetPhyDevIdByudevId(unsigned int udevId, unsigned int *phyDevId)
     340              : {
     341          124 :     CHK_PRT_RETURN(gHalApiHandle == NULL, roce_err("gHalApiHandle is NULL"), -EINVAL);
     342          124 :     CHK_PRT_RETURN(phyDevId == NULL, roce_err("phyDevId is NULL"), -EINVAL);
     343              :     // use udevId as phyDevId for API compatibility issue(abnormal in mdev scenario)
     344          124 :     *phyDevId = udevId;
     345          124 :     CHK_PRT_RETURN(gHalOps.dlHalGetPhyDevIdByudevId == NULL, roce_warn("dlHalGetPhyDevIdByudevId is NULL"), 0);
     346            0 :     return DlRetConvert(gHalOps.dlHalGetPhyDevIdByudevId(udevId, phyDevId));
     347              : }
     348              : 
     349            2 : drvError_t DlHalQueryDevPid(struct halQueryDevpidInfo info, pid_t *devPid)
     350              : {
     351            2 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalQueryDevPid, "dl_hal_query_dev_pid");
     352              : 
     353            2 :     return DlRetConvert(gHalOps.dlHalQueryDevPid(info, devPid));
     354              : }
     355              : 
     356            1 : drvError_t DlHalMemBindSibling(int hostPid, int aicpuPid, unsigned int vfid, unsigned int devId,
     357              :     unsigned int flag)
     358              : {
     359            1 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalMemBindSibling, "dl_hal_mem_bind_sibling");
     360              : 
     361            1 :     return DlRetConvert(gHalOps.dlHalMemBindSibling(hostPid, aicpuPid, vfid, devId, flag));
     362              : }
     363              : 
     364          391 : drvError_t DlDrvQueryProcessHostPid(int pid, unsigned int *chipId, unsigned int *vfid, unsigned int *hostPid,
     365              :     unsigned int *cpType)
     366              : {
     367          391 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvQueryProcessHostPid, "dl_drv_query_process_host_pid");
     368              : 
     369          391 :     return DlRetConvert(gHalOps.dlDrvQueryProcessHostPid(pid, chipId, vfid, hostPid, cpType));
     370              : }
     371              : 
     372            1 : drvError_t DlHalMemGetInfoEx(unsigned int devId, unsigned int type, struct MemInfo *info)
     373              : {
     374            1 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalMemGetInfoEx, "dl_hal_mem_get_info_ex");
     375              : 
     376            1 :     return DlRetConvert(gHalOps.dlHalMemGetInfoEx(devId, type, info));
     377              : }
     378              : 
     379            1 : int DlHalGrpQuery(GroupQueryCmdType cmd, void *inBuff, unsigned int inLen, void *outBuff, unsigned int *outLen)
     380              : {
     381            1 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalGrpQuery, "dl_hal_grp_query");
     382              : 
     383            1 :     return DlRetConvert(gHalOps.dlHalGrpQuery(cmd, inBuff, inLen, outBuff, outLen));
     384              : }
     385              : 
     386          119 : int DlHalHdcGetSessionAttr(HDC_SESSION session, int attr, int *value)
     387              : {
     388          119 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalHdcGetSessionAttr, "dl_hal_hdc_get_session_attr");
     389              : 
     390          119 :     return DlRetConvert(gHalOps.dlHalHdcGetSessionAttr(session, attr, value));
     391              : }
     392              : 
     393            0 : hdcError_t DlDrvHdcGetCapacity(struct drvHdcCapacity *capacity)
     394              : {
     395            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcGetCapacity, "dl_drv_hdc_get_capacity");
     396              : 
     397            0 :     return DlRetConvert(gHalOps.dlDrvHdcGetCapacity(capacity));
     398              : }
     399              : 
     400           29 : hdcError_t DlDrvHdcClientCreate(HDC_CLIENT *client, int maxSessionNum, int serviceType, int flag)
     401              : {
     402           29 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcClientCreate, "dl_drv_hdc_client_create");
     403              : 
     404           29 :     return DlRetConvert(gHalOps.dlDrvHdcClientCreate(client, maxSessionNum, serviceType, flag));
     405              : }
     406              : 
     407           30 : hdcError_t DlDrvHdcClientDestroy(HDC_CLIENT client)
     408              : {
     409           30 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcClientDestroy, "dl_drv_hdc_client_destroy");
     410              : 
     411           30 :     return DlRetConvert(gHalOps.dlDrvHdcClientDestroy(client));
     412              : }
     413              : 
     414           29 : hdcError_t DlDrvHdcSessionConnect(int peerNode, int peerDevid, HDC_CLIENT client, HDC_SESSION *session)
     415              : {
     416           29 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcSessionConnect, "dl_drv_hdc_session_connect");
     417              : 
     418           29 :     return DlRetConvert(gHalOps.dlDrvHdcSessionConnect(peerNode, peerDevid, client, session));
     419              : }
     420              : 
     421            0 : hdcError_t DlHalHdcSessionConnectEx(int peerNode, int peerDevid, int peerPid, HDC_CLIENT client,
     422              :     HDC_SESSION *pSession)
     423              : {
     424            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalHdcSessionConnectEx, "dl_hal_hdc_session_connect_ex");
     425              : 
     426            0 :     return DlRetConvert(gHalOps.dlHalHdcSessionConnectEx(peerNode, peerDevid, peerPid, client, pSession));
     427              : }
     428              : 
     429          122 : hdcError_t DlDrvHdcServerCreate(int devid, int serviceType, HDC_SERVER *pServer)
     430              : {
     431          122 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcServerCreate, "dl_drv_hdc_server_create");
     432              : 
     433          122 :     return DlRetConvert(gHalOps.dlDrvHdcServerCreate(devid, serviceType, pServer));
     434              : }
     435              : 
     436            0 : hdcError_t DlDrvHdcServerDestroy(HDC_SERVER server)
     437              : {
     438            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcServerDestroy, "dl_drv_hdc_server_destroy");
     439              : 
     440            0 :     return DlRetConvert(gHalOps.dlDrvHdcServerDestroy(server));
     441              : }
     442              : 
     443          237 : hdcError_t DlDrvHdcSessionAccept(HDC_SERVER server, HDC_SESSION *session)
     444              : {
     445          237 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcSessionAccept, "dl_drv_hdc_session_accept");
     446              : 
     447          237 :     return DlRetConvert(gHalOps.dlDrvHdcSessionAccept(server, session));
     448              : }
     449              : 
     450          147 : hdcError_t DlDrvHdcSessionClose(HDC_SESSION session)
     451              : {
     452          147 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcSessionClose, "dl_drv_hdc_session_close");
     453              : 
     454          147 :     return DlRetConvert(gHalOps.dlDrvHdcSessionClose(session));
     455              : }
     456              : 
     457          327 : hdcError_t DlDrvHdcFreeMsg(struct drvHdcMsg *msg)
     458              : {
     459          327 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcFreeMsg, "dl_drv_hdc_free_msg");
     460              : 
     461          327 :     return DlRetConvert(gHalOps.dlDrvHdcFreeMsg(msg));
     462              : }
     463              : 
     464          322 : hdcError_t DlDrvHdcReuseMsg(struct drvHdcMsg *msg)
     465              : {
     466          322 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcReuseMsg, "dl_drv_hdc_reuse_msg");
     467              : 
     468          322 :     return DlRetConvert(gHalOps.dlDrvHdcReuseMsg(msg));
     469              : }
     470              : 
     471          326 : hdcError_t DlDrvHdcAddMsgBuffer(struct drvHdcMsg *msg, char *pBuf, int len)
     472              : {
     473          326 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcAddMsgBuffer, "dl_drv_hdc_add_msg_buffer");
     474              : 
     475          326 :     return DlRetConvert(gHalOps.dlDrvHdcAddMsgBuffer(msg, pBuf, len));
     476              : }
     477              : 
     478          321 : hdcError_t DlDrvHdcGetMsgBuffer(struct drvHdcMsg *msg, int index, char **pBuf, int *pLen)
     479              : {
     480          321 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcGetMsgBuffer, "dl_drv_hdc_get_msg_buffer");
     481              : 
     482          321 :     return DlRetConvert(gHalOps.dlDrvHdcGetMsgBuffer(msg, index, pBuf, pLen));
     483              : }
     484              : 
     485          322 : hdcError_t DlHalHdcRecv(HDC_SESSION session, struct drvHdcMsg *pMsg, int bufLen, UINT64 flag,
     486              :     int *recvBufCount, UINT32 timeout)
     487              : {
     488          322 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalHdcRecv, "dl_hal_hdc_recv");
     489              : 
     490          322 :     return DlRetConvert(gHalOps.dlHalHdcRecv(session, pMsg, bufLen, flag, recvBufCount, timeout));
     491              : }
     492              : 
     493          323 : hdcError_t DlHalHdcSend(HDC_SESSION session, struct drvHdcMsg *pMsg, UINT64 flag, UINT32 timeout)
     494              : {
     495          323 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalHdcSend, "dl_hal_hdc_send");
     496              : 
     497          323 :     return DlRetConvert(gHalOps.dlHalHdcSend(session, pMsg, flag, timeout));
     498              : }
     499              : 
     500          328 : hdcError_t DlDrvHdcAllocMsg(HDC_SESSION session, struct drvHdcMsg **ppMsg, int count)
     501              : {
     502          328 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcAllocMsg, "dl_drv_hdc_alloc_msg");
     503              : 
     504          328 :     return DlRetConvert(gHalOps.dlDrvHdcAllocMsg(session, ppMsg, count));
     505              : }
     506              : 
     507          147 : hdcError_t DlDrvHdcSetSessionReference(HDC_SESSION session)
     508              : {
     509          147 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvHdcSetSessionReference,
     510              :         "dl_drv_hdc_set_session_reference");
     511              : 
     512          147 :     return DlRetConvert(gHalOps.dlDrvHdcSetSessionReference(session));
     513              : }
     514              : 
     515            4 : int DlDrvGetProcessSign(struct process_sign *sign)
     516              : {
     517            4 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvGetProcessSign, "dl_drv_get_process_sign");
     518              : 
     519            4 :     return DlRetConvert(gHalOps.dlDrvGetProcessSign(sign));
     520              : }
     521              : 
     522          296 : pid_t DlDrvDeviceGetBareTgid(void)
     523              : {
     524          296 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvDeviceGetBareTgid, "dl_drv_device_get_bare_tgid");
     525              : 
     526          291 :     return gHalOps.dlDrvDeviceGetBareTgid();
     527              : }
     528              : 
     529           17 : int DlHalNotifyGetInfo(uint32_t devId, uint32_t tsId, uint32_t type, uint32_t *val)
     530              : {
     531           17 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalNotifyGetInfo, "dl_hal_notify_get_info");
     532              : 
     533           17 :     return DlRetConvert(gHalOps.dlHalNotifyGetInfo(devId, tsId, type, val));
     534              : }
     535              : 
     536           11 : int DlHalMemAlloc(void **pp, unsigned long long size, unsigned long long flag)
     537              : {
     538           11 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalMemAlloc, "dl_hal_mem_alloc");
     539              : 
     540           11 :     return DlRetConvert(gHalOps.dlHalMemAlloc(pp, size, flag));
     541              : }
     542              : 
     543           20 : int DlHalMemFree(void *pp)
     544              : {
     545           20 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalMemFree, "dl_hal_mem_free");
     546              : 
     547           20 :     return DlRetConvert(gHalOps.dlHalMemFree(pp));
     548              : }
     549              : 
     550            0 : int DlHalEschedSubmitEvent(uint32_t devId, struct event_summary *event)
     551              : {
     552            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalEschedSubmitEvent, "dl_hal_esched_submit_event");
     553              : 
     554            0 :     return DlRetConvert(gHalOps.dlHalEschedSubmitEvent(devId, event));
     555              : }
     556              : 
     557            0 : int DlHalMemCtl(int type, void *paramValue, size_t paramValueSize, void *outValue, size_t *outSizeRet)
     558              : {
     559            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalMemCtl, "dl_hal_mem_ctl");
     560              : 
     561            0 :     return DlRetConvert(gHalOps.dlHalMemCtl(type, paramValue, paramValueSize, outValue, outSizeRet));
     562              : }
     563              : 
     564            0 : int DlHalBuffAllocAlignEx(uint64_t size, unsigned int align, unsigned long flag, int grpId, void **buff)
     565              : {
     566            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalBuffAllocAlignEx, "dl_hal_buff_alloc_align_ex");
     567              : 
     568            0 :     return DlRetConvert(gHalOps.dlHalBuffAllocAlignEx(size, align, flag, grpId, buff));
     569              : }
     570              : 
     571            4 : int DlHalBuffFree(void *buff)
     572              : {
     573            4 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalBuffFree, "dl_hal_buff_free");
     574              : 
     575            0 :     return DlRetConvert(gHalOps.dlHalBuffFree(buff));
     576              : }
     577              : 
     578            1 : int DlHalBindCgroup(BIND_CGROUP_TYPE bindType)
     579              : {
     580            1 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalBindCgroup, "dl_hal_bind_cgroup");
     581              : 
     582            1 :     return DlRetConvert(gHalOps.dlHalBindCgroup(bindType));
     583              : }
     584              : 
     585           40 : int DlDrvGetPlatformInfo(uint32_t* info)
     586              : {
     587           40 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvGetPlatformInfo, "dl_drv_get_platform_info");
     588              : 
     589           40 :     return DlRetConvert(gHalOps.dlDrvGetPlatformInfo(info));
     590              : }
     591              : 
     592          476 : int DlHalGetDeviceInfo(uint32_t devId, int32_t moduleType, int32_t infoType, int64_t *value)
     593              : {
     594          476 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalGetDeviceInfo, "dl_hal_get_device_info");
     595              : 
     596          475 :     return DlRetConvert(gHalOps.dlHalGetDeviceInfo(devId, moduleType, infoType, value));
     597              : }
     598              : 
     599           17 : int DlHalGetChipInfo(unsigned int devId, halChipInfo *chipInfo)
     600              : {
     601           17 :     if (gHalApiHandle == NULL) {
     602            0 :         roce_err("g_hal_api_handle is NULL!");
     603            0 :         return -EINVAL;
     604              :     }
     605              : 
     606           17 :     if (gHalOps.dlHalGetChipInfo == NULL) {
     607            0 :         roce_warn("dl_hal_get_chip_info is NULL!");
     608            0 :         return -EINVAL;
     609              :     }
     610              : 
     611           17 :     return DlRetConvert(gHalOps.dlHalGetChipInfo(devId, chipInfo));
     612              : }
     613              : 
     614           25 : int DlHalSensorNodeRegister(uint32_t devid, struct halSensorNodeCfg *cfg, uint64_t *handle)
     615              : {
     616           25 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalSensorNodeRegister, "dl_hal_sensor_node_register");
     617              : 
     618           25 :     return DlRetConvert(gHalOps.dlHalSensorNodeRegister(devid, cfg, handle));
     619              : }
     620              : 
     621           31 : int DlHalSensorNodeUnregister(uint32_t devid, uint64_t handle)
     622              : {
     623              :     /* sensor may not support, handle is 0 */
     624           31 :     if (handle == 0) {
     625            6 :         return 0;
     626              :     }
     627              : 
     628           25 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalSensorNodeUnregister, "dl_hal_sensor_node_unregister");
     629              : 
     630           25 :     return DlRetConvert(gHalOps.dlHalSensorNodeUnregister(devid, handle));
     631              : }
     632              : 
     633            0 : int DlHalSensorNodeUpdateState(uint32_t devid, uint64_t handle, int val, halGeneralEventType_t assertion)
     634              : {
     635            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalSensorNodeUpdateState,
     636              :         "dl_hal_sensor_node_update_state");
     637              : 
     638            0 :     return DlRetConvert(gHalOps.dlHalSensorNodeUpdateState(devid, handle, val, assertion));
     639              : }
     640              : 
     641            0 : int DlHalEschedAttachDevice(uint32_t devId)
     642              : {
     643            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalEschedAttachDevice, "dl_hal_esched_attach_device");
     644              : 
     645            0 :     return DlRetConvert(gHalOps.dlHalEschedAttachDevice(devId));
     646              : }
     647              : 
     648            0 : int DlHalEschedCreateGrp(uint32_t devId, uint32_t grpId, GROUP_TYPE type)
     649              : {
     650            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalEschedCreateGrp, "dl_hal_esched_create_grp");
     651              : 
     652            0 :     return DlRetConvert(gHalOps.dlHalEschedCreateGrp(devId, grpId, type));
     653              : }
     654              : 
     655            0 : int DlHalEschedSubscribeEvent(uint32_t devId, uint32_t grpId, uint32_t threadId, uint64_t eventBitmap)
     656              : {
     657            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalEschedSubscribeEvent, "dl_hal_esched_subscribe_event");
     658              : 
     659            0 :     return DlRetConvert(gHalOps.dlHalEschedSubscribeEvent(devId, grpId, threadId, eventBitmap));
     660              : }
     661              : 
     662            0 : int DlHalEschedWaitEvent(uint32_t devId, uint32_t grpId, uint32_t threadId, int32_t timeout,
     663              :     struct event_info *event)
     664              : {
     665            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalEschedWaitEvent, "dl_hal_esched_wait_event");
     666              : 
     667            0 :     return DlRetConvert(gHalOps.dlHalEschedWaitEvent(devId, grpId, threadId, timeout, event));
     668              : }
     669              : 
     670            2 : int DlHalResAddrMapV2(unsigned int devId, struct res_map_info_in *resInfoIn, struct res_map_info_out *resInfoOut)
     671              : {
     672            2 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalResAddrMapV2, "dlHalResAddrMapV2");
     673              : 
     674            0 :     return DlRetConvert(gHalOps.dlHalResAddrMapV2(devId, resInfoIn, resInfoOut));
     675              : }
     676              : 
     677            0 : int DlHalResAddrUnmapV2(unsigned int devId, struct res_map_info_in *resInfoIn)
     678              : {
     679            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalResAddrUnmapV2, "dlHalResAddrUnmapV2");
     680              : 
     681            0 :     return DlRetConvert(gHalOps.dlHalResAddrUnmapV2(devId, resInfoIn));
     682              : }
     683              : 
     684            0 : int DlHalMemRegUbSegment(uint32_t devId, uint64_t va, uint64_t size)
     685              : {
     686            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalMemRegUbSegment, "dlHalMemRegUbSegment");
     687              : 
     688            0 :     return DlRetConvert(gHalOps.dlHalMemRegUbSegment(devId, va, size));
     689              : }
     690              : 
     691            0 : int DlHalMemUnRegUbSegment(uint32_t devId, uint64_t va)
     692              : {
     693            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalMemUnRegUbSegment, "dlHalMemUnRegUbSegment");
     694              : 
     695            0 :     return DlRetConvert(gHalOps.dlHalMemUnRegUbSegment(devId, va));
     696              : }
     697              : 
     698            0 : int DlDrvMemGetAttribute(DVdeviceptr vptr, struct DVattribute *attr)
     699              : {
     700            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlDrvMemGetAttribute, "dlDrvMemGetAttribute");
     701              : 
     702            0 :     return DlRetConvert(gHalOps.dlDrvMemGetAttribute(vptr, attr));
     703              : }
     704              : 
     705            2 : int DlHalHostRegister(void *srcPtr, uint64_t size, uint32_t flag, uint32_t devId, void **dstPtr)
     706              : {
     707            2 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalHostRegister, "dlHalHostRegister");
     708              : 
     709            0 :     return DlRetConvert(gHalOps.dlHalHostRegister(srcPtr, size, flag, devId, dstPtr));
     710              : }
     711              : 
     712            0 : int DlHalHostUnRegister(void *srcPtr, uint32_t devId)
     713              : {
     714            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalHostUnregister, "dlHalHostUnregister");
     715              : 
     716            0 :     return DlRetConvert(gHalOps.dlHalHostUnregister(srcPtr, devId));
     717              : }
     718              : 
     719            0 : int DlHalHostUnRegisterEx(void *srcPtr, uint32_t devId, uint32_t flag)
     720              : {
     721            0 :     DL_API_IS_NULL_CHECK(gHalApiHandle, gHalOps.dlHalHostUnregisterEx, "dlHalHostUnregisterEx");
     722              : 
     723            0 :     return DlRetConvert(gHalOps.dlHalHostUnregisterEx(srcPtr, devId, flag));
     724              : }
        

Generated by: LCOV version 2.0-1