DPDK
19.02.0
Main Page
Related Pages
Data Structures
Files
Examples
File List
Globals
lib
librte_eal
common
include
rte_fbarray.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(c) 2017-2018 Intel Corporation
3
*/
4
5
#ifndef RTE_FBARRAY_H
6
#define RTE_FBARRAY_H
7
33
#ifdef __cplusplus
34
extern
"C"
{
35
#endif
36
37
#include <stdbool.h>
38
#include <stdio.h>
39
40
#include <rte_compat.h>
41
#include <
rte_rwlock.h
>
42
43
#define RTE_FBARRAY_NAME_LEN 64
44
45
struct
rte_fbarray {
46
char
name[RTE_FBARRAY_NAME_LEN];
47
unsigned
int
count;
48
unsigned
int
len;
49
unsigned
int
elt_sz;
50
void
*data;
51
rte_rwlock_t
rwlock;
52
};
53
78
int
__rte_experimental
79
rte_fbarray_init
(
struct
rte_fbarray *arr,
const
char
*name,
unsigned
int
len,
80
unsigned
int
elt_sz);
81
82
100
int
__rte_experimental
101
rte_fbarray_attach
(
struct
rte_fbarray *arr);
102
103
121
int
__rte_experimental
122
rte_fbarray_destroy
(
struct
rte_fbarray *arr);
123
124
139
int
__rte_experimental
140
rte_fbarray_detach
(
struct
rte_fbarray *arr);
141
142
156
void
* __rte_experimental
157
rte_fbarray_get
(
const
struct
rte_fbarray *arr,
unsigned
int
idx);
158
159
173
int
__rte_experimental
174
rte_fbarray_find_idx
(
const
struct
rte_fbarray *arr,
const
void
*elt);
175
176
190
int
__rte_experimental
191
rte_fbarray_set_used
(
struct
rte_fbarray *arr,
unsigned
int
idx);
192
193
207
int
__rte_experimental
208
rte_fbarray_set_free
(
struct
rte_fbarray *arr,
unsigned
int
idx);
209
210
225
int
__rte_experimental
226
rte_fbarray_is_used
(
struct
rte_fbarray *arr,
unsigned
int
idx);
227
228
242
int
__rte_experimental
243
rte_fbarray_find_next_free
(
struct
rte_fbarray *arr,
unsigned
int
start);
244
245
259
int
__rte_experimental
260
rte_fbarray_find_next_used
(
struct
rte_fbarray *arr,
unsigned
int
start);
261
262
279
int
__rte_experimental
280
rte_fbarray_find_next_n_free
(
struct
rte_fbarray *arr,
unsigned
int
start,
281
unsigned
int
n);
282
283
300
int
__rte_experimental
301
rte_fbarray_find_next_n_used
(
struct
rte_fbarray *arr,
unsigned
int
start,
302
unsigned
int
n);
303
304
318
int
__rte_experimental
319
rte_fbarray_find_contig_free
(
struct
rte_fbarray *arr,
320
unsigned
int
start);
321
322
336
int
__rte_experimental
337
rte_fbarray_find_contig_used
(
struct
rte_fbarray *arr,
unsigned
int
start);
338
352
int
__rte_experimental
353
rte_fbarray_find_prev_free
(
struct
rte_fbarray *arr,
unsigned
int
start);
354
355
369
int
__rte_experimental
370
rte_fbarray_find_prev_used
(
struct
rte_fbarray *arr,
unsigned
int
start);
371
372
390
int
__rte_experimental
391
rte_fbarray_find_prev_n_free
(
struct
rte_fbarray *arr,
unsigned
int
start,
392
unsigned
int
n);
393
394
412
int
__rte_experimental
413
rte_fbarray_find_prev_n_used
(
struct
rte_fbarray *arr,
unsigned
int
start,
414
unsigned
int
n);
415
416
431
int
__rte_experimental
432
rte_fbarray_find_rev_contig_free
(
struct
rte_fbarray *arr,
433
unsigned
int
start);
434
435
450
int
__rte_experimental
451
rte_fbarray_find_rev_contig_used
(
struct
rte_fbarray *arr,
unsigned
int
start);
452
453
463
void
__rte_experimental
464
rte_fbarray_dump_metadata
(
struct
rte_fbarray *arr, FILE *f);
465
466
#ifdef __cplusplus
467
}
468
#endif
469
470
#endif
/* RTE_FBARRAY_H */
Generated by
1.8.1.2