]> git.proxmox.com Git - ceph.git/blob - ceph/src/seastar/dpdk/lib/librte_ipsec/misc.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / seastar / dpdk / lib / librte_ipsec / misc.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2018 Intel Corporation
3 */
4
5 #ifndef _MISC_H_
6 #define _MISC_H_
7
8 /**
9 * @file misc.h
10 * Contains miscellaneous functions/structures/macros used internally
11 * by ipsec library.
12 */
13
14 /*
15 * Move bad (unprocessed) mbufs beyond the good (processed) ones.
16 * bad_idx[] contains the indexes of bad mbufs inside the mb[].
17 */
18 static inline void
19 move_bad_mbufs(struct rte_mbuf *mb[], const uint32_t bad_idx[], uint32_t nb_mb,
20 uint32_t nb_bad)
21 {
22 uint32_t i, j, k;
23 struct rte_mbuf *drb[nb_bad];
24
25 j = 0;
26 k = 0;
27
28 /* copy bad ones into a temp place */
29 for (i = 0; i != nb_mb; i++) {
30 if (j != nb_bad && i == bad_idx[j])
31 drb[j++] = mb[i];
32 else
33 mb[k++] = mb[i];
34 }
35
36 /* copy bad ones after the good ones */
37 for (i = 0; i != nb_bad; i++)
38 mb[k + i] = drb[i];
39 }
40
41 #endif /* _MISC_H_ */