#include "mlx5hws_internal.h"
#include "mlx5hws_buddy.h"
static void hws_pool_free_one_resource(struct mlx5hws_pool_resource *resource)
{ … }
static void hws_pool_resource_free(struct mlx5hws_pool *pool,
int resource_idx)
{ … }
static struct mlx5hws_pool_resource *
hws_pool_create_one_resource(struct mlx5hws_pool *pool, u32 log_range,
u32 fw_ft_type)
{ … }
static int
hws_pool_resource_alloc(struct mlx5hws_pool *pool, u32 log_range, int idx)
{ … }
static unsigned long *hws_pool_create_and_init_bitmap(u32 log_range)
{ … }
static void hws_pool_buddy_db_put_chunk(struct mlx5hws_pool *pool,
struct mlx5hws_pool_chunk *chunk)
{ … }
static struct mlx5hws_buddy_mem *
hws_pool_buddy_get_next_buddy(struct mlx5hws_pool *pool, int idx,
u32 order, bool *is_new_buddy)
{ … }
static int hws_pool_buddy_get_mem_chunk(struct mlx5hws_pool *pool,
int order,
u32 *buddy_idx,
int *seg)
{ … }
static int hws_pool_buddy_db_get_chunk(struct mlx5hws_pool *pool,
struct mlx5hws_pool_chunk *chunk)
{ … }
static void hws_pool_buddy_db_uninit(struct mlx5hws_pool *pool)
{ … }
static int hws_pool_buddy_db_init(struct mlx5hws_pool *pool, u32 log_range)
{ … }
static int hws_pool_create_resource_on_index(struct mlx5hws_pool *pool,
u32 alloc_size, int idx)
{ … }
static struct mlx5hws_pool_elements *
hws_pool_element_create_new_elem(struct mlx5hws_pool *pool, u32 order, int idx)
{ … }
static int hws_pool_element_find_seg(struct mlx5hws_pool_elements *elem, int *seg)
{ … }
static int
hws_pool_onesize_element_get_mem_chunk(struct mlx5hws_pool *pool, u32 order,
u32 *idx, int *seg)
{ … }
static int
hws_pool_general_element_get_mem_chunk(struct mlx5hws_pool *pool, u32 order,
u32 *idx, int *seg)
{ … }
static int hws_pool_general_element_db_get_chunk(struct mlx5hws_pool *pool,
struct mlx5hws_pool_chunk *chunk)
{ … }
static void hws_pool_general_element_db_put_chunk(struct mlx5hws_pool *pool,
struct mlx5hws_pool_chunk *chunk)
{ … }
static void hws_pool_general_element_db_uninit(struct mlx5hws_pool *pool)
{ … }
static int hws_pool_general_element_db_init(struct mlx5hws_pool *pool)
{ … }
static void hws_onesize_element_db_destroy_element(struct mlx5hws_pool *pool,
struct mlx5hws_pool_elements *elem,
struct mlx5hws_pool_chunk *chunk)
{ … }
static void hws_onesize_element_db_put_chunk(struct mlx5hws_pool *pool,
struct mlx5hws_pool_chunk *chunk)
{ … }
static int hws_onesize_element_db_get_chunk(struct mlx5hws_pool *pool,
struct mlx5hws_pool_chunk *chunk)
{ … }
static void hws_onesize_element_db_uninit(struct mlx5hws_pool *pool)
{ … }
static int hws_pool_onesize_element_db_init(struct mlx5hws_pool *pool)
{ … }
static int hws_pool_db_init(struct mlx5hws_pool *pool,
enum mlx5hws_db_type db_type)
{ … }
static void hws_pool_db_unint(struct mlx5hws_pool *pool)
{ … }
int mlx5hws_pool_chunk_alloc(struct mlx5hws_pool *pool,
struct mlx5hws_pool_chunk *chunk)
{ … }
void mlx5hws_pool_chunk_free(struct mlx5hws_pool *pool,
struct mlx5hws_pool_chunk *chunk)
{ … }
struct mlx5hws_pool *
mlx5hws_pool_create(struct mlx5hws_context *ctx, struct mlx5hws_pool_attr *pool_attr)
{ … }
int mlx5hws_pool_destroy(struct mlx5hws_pool *pool)
{ … }