1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright (c) 2022 NVIDIA Corporation & Affiliates 3 */ 4 5 #ifndef MLX5DR_BUDDY_H_ 6 #define MLX5DR_BUDDY_H_ 7 8 struct mlx5dr_buddy_mem { 9 struct rte_bitmap **bits; 10 unsigned int *num_free; 11 uint32_t max_order; 12 }; 13 14 struct mlx5dr_buddy_mem *mlx5dr_buddy_create(uint32_t max_order); 15 16 void mlx5dr_buddy_cleanup(struct mlx5dr_buddy_mem *buddy); 17 18 int mlx5dr_buddy_alloc_mem(struct mlx5dr_buddy_mem *buddy, int order); 19 20 void mlx5dr_buddy_free_mem(struct mlx5dr_buddy_mem *buddy, uint32_t seg, int order); 21 22 #endif /* MLX5DR_BUDDY_H_ */ 23