compressdev: add missing C++ guards
[dpdk.git] / lib / compressdev / rte_compressdev_internal.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017-2018 Intel Corporation
3  */
4
5 #ifndef _RTE_COMPRESSDEV_INTERNAL_H_
6 #define _RTE_COMPRESSDEV_INTERNAL_H_
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 /* rte_compressdev_internal.h
13  * This file holds Compressdev private data structures.
14  */
15 #include <rte_log.h>
16
17 #include "rte_comp.h"
18
19 #define RTE_COMPRESSDEV_NAME_MAX_LEN    (64)
20 /**< Max length of name of comp PMD */
21
22 /* Logging Macros */
23 extern int compressdev_logtype;
24 #define COMPRESSDEV_LOG(level, fmt, args...) \
25         rte_log(RTE_LOG_ ## level, compressdev_logtype, "%s(): "fmt "\n", \
26                         __func__, ##args)
27
28 /**
29  * Dequeue processed packets from queue pair of a device.
30  *
31  * @param qp
32  *   The queue pair from which to retrieve
33  *   processed operations.
34  * @param ops
35  *   The address of an array of pointers to
36  *   *rte_comp_op* structures that must be
37  *   large enough to store *nb_ops* pointers in it
38  * @param nb_ops
39  *   The maximum number of operations to dequeue
40  * @return
41  *   - The number of operations actually dequeued, which is the number
42  *   of pointers to *rte_comp_op* structures effectively supplied to the
43  *   *ops* array.
44  */
45 typedef uint16_t (*compressdev_dequeue_pkt_burst_t)(void *qp,
46                 struct rte_comp_op **ops, uint16_t nb_ops);
47
48 /**
49  * Enqueue a burst of operations for processing.
50  *
51  * @param qp
52  *   The queue pair on which operations
53  *   are to be enqueued for processing
54  * @param ops
55  *   The address of an array of *nb_ops* pointers
56  *   to *rte_comp_op* structures which contain
57  *   the operations to be processed
58  * @param nb_ops
59  *   The number of operations to process
60  * @return
61  *   The number of operations actually enqueued on the device. The return
62  *   value can be less than the value of the *nb_ops* parameter when the
63  *   comp devices queue is full or if invalid parameters are specified in
64  *   a *rte_comp_op*.
65  */
66
67 typedef uint16_t (*compressdev_enqueue_pkt_burst_t)(void *qp,
68                 struct rte_comp_op **ops, uint16_t nb_ops);
69
70 /** The data structure associated with each comp device. */
71 struct rte_compressdev {
72         compressdev_dequeue_pkt_burst_t dequeue_burst;
73         /**< Pointer to PMD receive function */
74         compressdev_enqueue_pkt_burst_t enqueue_burst;
75         /**< Pointer to PMD transmit function */
76
77         struct rte_compressdev_data *data;
78         /**< Pointer to device data */
79         struct rte_compressdev_ops *dev_ops;
80         /**< Functions exported by PMD */
81         uint64_t feature_flags;
82         /**< Supported features */
83         struct rte_device *device;
84         /**< Backing device */
85
86         __extension__
87         uint8_t attached : 1;
88         /**< Flag indicating the device is attached */
89 } __rte_cache_aligned;
90
91 /**
92  *
93  * The data part, with no function pointers, associated with each device.
94  *
95  * This structure is safe to place in shared memory to be common among
96  * different processes in a multi-process configuration.
97  */
98 struct rte_compressdev_data {
99         uint8_t dev_id;
100         /**< Compress device identifier */
101         uint8_t socket_id;
102         /**< Socket identifier where memory is allocated */
103         char name[RTE_COMPRESSDEV_NAME_MAX_LEN];
104         /**< Unique identifier name */
105
106         __extension__
107         uint8_t dev_started : 1;
108         /**< Device state: STARTED(1)/STOPPED(0) */
109
110         void **queue_pairs;
111         /**< Array of pointers to queue pairs. */
112         uint16_t nb_queue_pairs;
113         /**< Number of device queue pairs */
114
115         void *dev_private;
116         /**< PMD-specific private data */
117 } __rte_cache_aligned;
118
119 #ifdef __cplusplus
120 }
121 #endif
122
123 #endif