54 size_t export_desc_len,
55 const char *src_buffer,
56 size_t src_buffer_len,
57 char *export_desc_file_path,
58 char *buffer_info_file_path)
61 uint64_t buffer_addr = (
uintptr_t)src_buffer;
62 uint64_t buffer_len = (uint64_t)src_buffer_len;
64 fp = fopen(export_desc_file_path,
"wb");
70 if (fwrite(export_desc, 1, export_desc_len, fp) != export_desc_len) {
78 fp = fopen(buffer_info_file_path,
"w");
84 fprintf(fp,
"%" PRIu64
"\n", buffer_addr);
85 fprintf(fp,
"%" PRIu64
"", buffer_len);
104 size_t src_buffer_size,
105 char *export_desc_file_path,
106 char *buffer_info_file_name)
109 const void *export_desc;
110 size_t export_desc_len;
125 goto destroy_resources;
132 goto destroy_resources;
138 goto destroy_resources;
145 goto destroy_resources;
148 DOCA_LOG_INFO(
"Please copy %s and %s to the DPU and run DMA Copy DPU sample",
149 export_desc_file_path,
150 buffer_info_file_name);
157 export_desc_file_path,
158 buffer_info_file_name);
161 goto destroy_resources;
165 DOCA_LOG_INFO(
"Wait till the DPU has finished and press enter");
166 while (enter !=
'\r' && enter !=
'\n')
doca_error_t destroy_dma_host_resources(struct program_core_objects *state)
doca_error_t allocate_dma_host_resources(const char *pcie_addr, struct program_core_objects *state)
doca_error_t dma_copy_host(const char *pcie_addr, char *src_buffer, size_t src_buffer_size, char *export_desc_file_path, char *buffer_info_file_name)
DOCA_LOG_REGISTER(DMA_COPY_HOST)
static doca_error_t save_config_info_to_files(const void *export_desc, size_t export_desc_len, const char *src_buffer, size_t src_buffer_len, char *export_desc_file_path, char *buffer_info_file_path)
#define DOCA_ERROR_PROPAGATE(r, t)
Save the first encountered doca_error_t.
enum doca_error doca_error_t
DOCA API return codes.
DOCA_STABLE const char * doca_error_get_descr(doca_error_t error)
Returns the description string of an error code.
#define DOCA_LOG_ERR(format,...)
Generates an ERROR application log message.
#define DOCA_LOG_INFO(format,...)
Generates an INFO application log message.
DOCA_STABLE doca_error_t doca_mmap_set_memrange(struct doca_mmap *mmap, void *addr, size_t len)
Set the memory range of DOCA memory map.
DOCA_STABLE doca_error_t doca_mmap_set_permissions(struct doca_mmap *mmap, uint32_t access_mask)
Set access flags of the registered memory.
DOCA_STABLE doca_error_t doca_mmap_export_pci(struct doca_mmap *mmap, const struct doca_dev *dev, const void **export_desc, size_t *export_desc_len)
Compose memory map representation for later import with doca_mmap_create_from_export() for one of the...
DOCA_STABLE doca_error_t doca_mmap_start(struct doca_mmap *mmap)
Start DOCA Memory Map.
@ DOCA_ACCESS_FLAG_PCI_READ_ONLY
__UINTPTR_TYPE__ uintptr_t
struct doca_mmap * src_mmap