xref: /dpdk/drivers/gpu/cuda/common.h (revision 2b843cac232eb3f2fa79e4254e21766817e2019f)
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