124c77594SElena Agostini /* SPDX-License-Identifier: BSD-3-Clause 224c77594SElena Agostini * Copyright (c) 2022 NVIDIA Corporation & Affiliates 324c77594SElena Agostini */ 424c77594SElena Agostini 524c77594SElena Agostini #ifndef CUDA_COMMON_H 624c77594SElena Agostini #define CUDA_COMMON_H 724c77594SElena Agostini 824c77594SElena Agostini #include <dlfcn.h> 940c7e960SThomas Monjalon #include <errno.h> 1024c77594SElena Agostini 1124c77594SElena Agostini #include <rte_common.h> 1224c77594SElena Agostini #include <rte_log.h> 1324c77594SElena Agostini #include <rte_errno.h> 1424c77594SElena Agostini 1524c77594SElena Agostini extern int cuda_logtype; 16*2b843cacSDavid Marchand #define RTE_LOGTYPE_CUDA cuda_logtype 1724c77594SElena Agostini 1824c77594SElena Agostini /* Helper macro for logging */ 1924c77594SElena Agostini #define rte_cuda_log(level, fmt, ...) \ 20*2b843cacSDavid Marchand RTE_LOG_LINE(level, CUDA, fmt, ##__VA_ARGS__) 2124c77594SElena Agostini 2224c77594SElena Agostini #define rte_cuda_debug(fmt, ...) \ 2324c77594SElena Agostini rte_cuda_log(DEBUG, RTE_STR(__LINE__) ":%s() " fmt, __func__, \ 2424c77594SElena Agostini ##__VA_ARGS__) 2524c77594SElena Agostini 2624c77594SElena Agostini #ifdef DRIVERS_GPU_CUDA_GDRCOPY_H 2724c77594SElena Agostini #include <gdrapi.h> 2824c77594SElena Agostini #else 2924c77594SElena Agostini struct gdr; 3024c77594SElena Agostini typedef struct gdr *gdr_t; 3124c77594SElena Agostini struct gdr_mh_s { unsigned long h; }; 3224c77594SElena Agostini typedef struct gdr_mh_s gdr_mh_t; 3324c77594SElena Agostini #endif 3424c77594SElena Agostini 3524c77594SElena Agostini int gdrcopy_pin(gdr_t *gdrc_h, __rte_unused gdr_mh_t *mh, 3624c77594SElena Agostini uint64_t d_addr, size_t size, void **h_addr); 3724c77594SElena Agostini int gdrcopy_unpin(gdr_t gdrc_h, __rte_unused gdr_mh_t mh, 3824c77594SElena Agostini void *d_addr, size_t size); 3924c77594SElena Agostini 4024c77594SElena Agostini #endif /* CUDA_COMMON_H */ 41