1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4 /**
5 *****************************************************************************
6 * @file icp_buffer_desc.h
7 *
8 * @defgroup icp_BufferDesc Buffer descriptor for LAC
9 *
10 * @ingroup LacCommon
11 *
12 * @description
13 * This file contains details of the hardware buffer descriptors used to
14 * communicate with the QAT.
15 *
16 *****************************************************************************/
17 #ifndef ICP_BUFFER_DESC_H
18 #define ICP_BUFFER_DESC_H
19
20 #include "cpa.h"
21
22 typedef Cpa64U icp_qat_addr_width_t; // hi32 first, lo32 second
23
24 // Alignement constraint of the buffer list.
25 #define ICP_DESCRIPTOR_ALIGNMENT_BYTES 8
26
27 /**
28 *****************************************************************************
29 * @ingroup icp_BufferDesc
30 * Buffer descriptors for FlatBuffers - used in communications with
31 * the QAT.
32 *
33 * @description
34 * A QAT friendly buffer descriptor.
35 * All buffer descriptor described in this structure are physcial
36 * and are 64 bit wide.
37 *
38 * Updates in the CpaFlatBuffer should be also reflected in this
39 * structure
40 *
41 *****************************************************************************/
42 typedef struct icp_flat_buffer_desc_s {
43 Cpa32U dataLenInBytes;
44 Cpa32U reserved;
45 icp_qat_addr_width_t phyBuffer;
46 /**< The client will allocate memory for this using API function calls
47 * and the access layer will fill it and the QAT will read it.
48 */
49 } icp_flat_buffer_desc_t;
50
51 /**
52 *****************************************************************************
53 * @ingroup icp_BufferDesc
54 * Buffer descriptors for BuffersLists - used in communications with
55 * the QAT.
56 *
57 * @description
58 * A QAT friendly buffer descriptor.
59 * All buffer descriptor described in this structure are physcial
60 * and are 64 bit wide.
61 *
62 * Updates in the CpaBufferList should be also reflected in this structure
63 *
64 *****************************************************************************/
65 typedef struct icp_buffer_list_desc_s {
66 Cpa64U resrvd;
67 Cpa32U numBuffers;
68 Cpa32U reserved;
69 icp_flat_buffer_desc_t phyBuffers[];
70 /**< Unbounded array of physical buffer pointers, these point to the
71 * FlatBufferDescs. The client will allocate memory for this using
72 * API function calls and the access layer will fill it and the QAT
73 * will read it.
74 */
75 } icp_buffer_list_desc_t;
76
77 #endif /* ICP_BUFFER_DESC_H */
Cache object: dded54b415886cdaf0c15ce3b8fc4007
|