MCPcopy Create free account
hub / github.com/F-Stack/f-stack / write_dma_client_oob

Function write_dma_client_oob

dpdk/drivers/net/mana/gdma.c:27–60  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25}
26
27static uint32_t
28write_dma_client_oob(uint8_t *work_queue_buffer_pointer,
29 const struct gdma_work_request *work_request,
30 uint32_t client_oob_size)
31{
32 uint8_t *p = work_queue_buffer_pointer;
33
34 struct gdma_wqe_dma_oob *header = (struct gdma_wqe_dma_oob *)p;
35
36 memset(header, 0, sizeof(struct gdma_wqe_dma_oob));
37 header->num_sgl_entries = work_request->num_sgl_elements;
38 header->inline_client_oob_size_in_dwords =
39 client_oob_size / sizeof(uint32_t);
40 header->client_data_unit = work_request->client_data_unit;
41
42 DP_LOG(DEBUG, "queue buf %p sgl %u oob_h %u du %u oob_buf %p oob_b %u",
43 work_queue_buffer_pointer, header->num_sgl_entries,
44 header->inline_client_oob_size_in_dwords,
45 header->client_data_unit, work_request->inline_oob_data,
46 work_request->inline_oob_size_in_bytes);
47
48 p += sizeof(struct gdma_wqe_dma_oob);
49 if (work_request->inline_oob_data &&
50 work_request->inline_oob_size_in_bytes > 0) {
51 memcpy(p, work_request->inline_oob_data,
52 work_request->inline_oob_size_in_bytes);
53 if (client_oob_size > work_request->inline_oob_size_in_bytes)
54 memset(p + work_request->inline_oob_size_in_bytes, 0,
55 client_oob_size -
56 work_request->inline_oob_size_in_bytes);
57 }
58
59 return sizeof(struct gdma_wqe_dma_oob) + client_oob_size;
60}
61
62static uint32_t
63write_scatter_gather_list(uint8_t *work_queue_head_pointer,

Callers 1

gdma_post_work_requestFunction · 0.85

Calls 2

memsetFunction · 0.85
memcpyFunction · 0.50

Tested by

no test coverage detected