xref: /dpdk/drivers/net/thunderx/base/nicvf_bsvf.c (revision aaf4363e1e9e518c034c7ff9938a2faefde9854d)
1*aaf4363eSJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause
2*aaf4363eSJerin Jacob  * Copyright(c) 2016 Cavium, Inc
3f2546f8eSKamil Rytarowski  */
4f2546f8eSKamil Rytarowski 
5f2546f8eSKamil Rytarowski #include <assert.h>
6f2546f8eSKamil Rytarowski #include <stddef.h>
7f2546f8eSKamil Rytarowski #include <err.h>
8f2546f8eSKamil Rytarowski 
9f2546f8eSKamil Rytarowski #include "nicvf_bsvf.h"
10f2546f8eSKamil Rytarowski #include "nicvf_plat.h"
11f2546f8eSKamil Rytarowski 
12fc2c8014SJerin Jacob static STAILQ_HEAD(, svf_entry) head = STAILQ_HEAD_INITIALIZER(head);
13f2546f8eSKamil Rytarowski 
14f2546f8eSKamil Rytarowski void
nicvf_bsvf_push(struct svf_entry * entry)15f2546f8eSKamil Rytarowski nicvf_bsvf_push(struct svf_entry *entry)
16f2546f8eSKamil Rytarowski {
17f2546f8eSKamil Rytarowski 	assert(entry != NULL);
18f2546f8eSKamil Rytarowski 	assert(entry->vf != NULL);
19f2546f8eSKamil Rytarowski 
20fc2c8014SJerin Jacob 	STAILQ_INSERT_TAIL(&head, entry, next);
21f2546f8eSKamil Rytarowski }
22f2546f8eSKamil Rytarowski 
23f2546f8eSKamil Rytarowski struct svf_entry *
nicvf_bsvf_pop(void)24f2546f8eSKamil Rytarowski nicvf_bsvf_pop(void)
25f2546f8eSKamil Rytarowski {
26f2546f8eSKamil Rytarowski 	struct svf_entry *entry;
27f2546f8eSKamil Rytarowski 
28fc2c8014SJerin Jacob 	assert(!STAILQ_EMPTY(&head));
29f2546f8eSKamil Rytarowski 
30fc2c8014SJerin Jacob 	entry = STAILQ_FIRST(&head);
31f2546f8eSKamil Rytarowski 
32f2546f8eSKamil Rytarowski 	assert(entry != NULL);
33f2546f8eSKamil Rytarowski 	assert(entry->vf != NULL);
34f2546f8eSKamil Rytarowski 
35fc2c8014SJerin Jacob 	STAILQ_REMOVE_HEAD(&head, next);
36f2546f8eSKamil Rytarowski 
37f2546f8eSKamil Rytarowski 	return entry;
38f2546f8eSKamil Rytarowski }
39f2546f8eSKamil Rytarowski 
40f2546f8eSKamil Rytarowski int
nicvf_bsvf_empty(void)41f2546f8eSKamil Rytarowski nicvf_bsvf_empty(void)
42f2546f8eSKamil Rytarowski {
43fc2c8014SJerin Jacob 	return STAILQ_EMPTY(&head);
44f2546f8eSKamil Rytarowski }
45