]> git.proxmox.com Git - mirror_ovs.git/blame - lib/id-pool.h
cirrus: Use FreeBSD 12.2.
[mirror_ovs.git] / lib / id-pool.h
CommitLineData
c3bd4bfc
SH
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
27c24749 21#include <stdbool.h>
c3bd4bfc
SH
22#include <stddef.h>
23#include <stdint.h>
24
25struct id_pool;
26
27struct id_pool *id_pool_create(uint32_t base, uint32_t n_ids);
28void id_pool_destroy(struct id_pool *);
27c24749 29bool id_pool_alloc_id(struct id_pool *, uint32_t *id);
c3bd4bfc
SH
30void id_pool_free_id(struct id_pool *, uint32_t id);
31void id_pool_add(struct id_pool *, uint32_t id);
32
33/*
34 * ID pool.
35 * ========
36 *
37 * Pool of unique 32bit ids.
f596e8ed 38 * Allocation always returns the lowest available id.
c3bd4bfc
SH
39 *
40 * Thread-safety
41 * =============
42 *
43 * APIs are not thread safe.
44 */
45#endif /* id-pool.h */