netdev-dpdk: fix mbuf leaks
[cascardo/ovs.git] / lib / id-pool.h
1 /*
2  * Copyright (c) 2014 Nicira, Inc.
3  * Copyright (c) 2014 Netronome.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 #ifndef ID_POOL_H
19 #define ID_POOL_H
20
21 #include <stdbool.h>
22 #include <stddef.h>
23 #include <stdint.h>
24
25 struct id_pool;
26
27 struct id_pool *id_pool_create(uint32_t base, uint32_t n_ids);
28 void id_pool_destroy(struct id_pool *);
29 bool id_pool_alloc_id(struct id_pool *, uint32_t *id);
30 void id_pool_free_id(struct id_pool *, uint32_t id);
31 void id_pool_add(struct id_pool *, uint32_t id);
32
33 /*
34  * ID pool.
35  * ========
36  *
37  * Pool of unique 32bit ids.
38  *
39  *
40  * Thread-safety
41  * =============
42  *
43  * APIs are not thread safe.
44  */
45 #endif  /* id-pool.h */