linux/drivers/net/ethernet/mellanox/mlxsw/spectrum1_kvdl.c

// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
/* Copyright (c) 2018 Mellanox Technologies. All rights reserved */

#include <linux/kernel.h>
#include <linux/bitops.h>

#include "spectrum.h"

#define MLXSW_SP1_KVDL_SINGLE_BASE
#define MLXSW_SP1_KVDL_SINGLE_SIZE
#define MLXSW_SP1_KVDL_SINGLE_END

#define MLXSW_SP1_KVDL_CHUNKS_BASE
#define MLXSW_SP1_KVDL_CHUNKS_SIZE
#define MLXSW_SP1_KVDL_CHUNKS_END

#define MLXSW_SP1_KVDL_LARGE_CHUNKS_BASE
#define MLXSW_SP1_KVDL_LARGE_CHUNKS_SIZE
#define MLXSW_SP1_KVDL_LARGE_CHUNKS_END

#define MLXSW_SP1_KVDL_SINGLE_ALLOC_SIZE
#define MLXSW_SP1_KVDL_CHUNKS_ALLOC_SIZE
#define MLXSW_SP1_KVDL_LARGE_CHUNKS_ALLOC_SIZE

struct mlxsw_sp1_kvdl_part_info {};

enum mlxsw_sp1_kvdl_part_id {};

#define MLXSW_SP1_KVDL_PART_INFO(id)

static const struct mlxsw_sp1_kvdl_part_info mlxsw_sp1_kvdl_parts_info[] =;

#define MLXSW_SP1_KVDL_PARTS_INFO_LEN

struct mlxsw_sp1_kvdl_part {};

struct mlxsw_sp1_kvdl {};

static struct mlxsw_sp1_kvdl_part *
mlxsw_sp1_kvdl_alloc_size_part(struct mlxsw_sp1_kvdl *kvdl,
			       unsigned int alloc_size)
{}

static struct mlxsw_sp1_kvdl_part *
mlxsw_sp1_kvdl_index_part(struct mlxsw_sp1_kvdl *kvdl, u32 kvdl_index)
{}

static u32
mlxsw_sp1_kvdl_to_kvdl_index(const struct mlxsw_sp1_kvdl_part_info *info,
			     unsigned int entry_index)
{}

static unsigned int
mlxsw_sp1_kvdl_to_entry_index(const struct mlxsw_sp1_kvdl_part_info *info,
			      u32 kvdl_index)
{}

static int mlxsw_sp1_kvdl_part_alloc(struct mlxsw_sp1_kvdl_part *part,
				     u32 *p_kvdl_index)
{}

static void mlxsw_sp1_kvdl_part_free(struct mlxsw_sp1_kvdl_part *part,
				     u32 kvdl_index)
{}

static int mlxsw_sp1_kvdl_alloc(struct mlxsw_sp *mlxsw_sp, void *priv,
				enum mlxsw_sp_kvdl_entry_type type,
				unsigned int entry_count,
				u32 *p_entry_index)
{}

static void mlxsw_sp1_kvdl_free(struct mlxsw_sp *mlxsw_sp, void *priv,
				enum mlxsw_sp_kvdl_entry_type type,
				unsigned int entry_count, int entry_index)
{}

static int mlxsw_sp1_kvdl_alloc_size_query(struct mlxsw_sp *mlxsw_sp,
					   void *priv,
					   enum mlxsw_sp_kvdl_entry_type type,
					   unsigned int entry_count,
					   unsigned int *p_alloc_size)
{}

static void mlxsw_sp1_kvdl_part_update(struct mlxsw_sp1_kvdl_part *part,
				       struct mlxsw_sp1_kvdl_part *part_prev,
				       unsigned int size)
{}

static struct mlxsw_sp1_kvdl_part *
mlxsw_sp1_kvdl_part_init(struct mlxsw_sp *mlxsw_sp,
			 const struct mlxsw_sp1_kvdl_part_info *info,
			 struct mlxsw_sp1_kvdl_part *part_prev)
{}

static void mlxsw_sp1_kvdl_part_fini(struct mlxsw_sp1_kvdl_part *part)
{}

static int mlxsw_sp1_kvdl_parts_init(struct mlxsw_sp *mlxsw_sp,
				     struct mlxsw_sp1_kvdl *kvdl)
{}

static void mlxsw_sp1_kvdl_parts_fini(struct mlxsw_sp1_kvdl *kvdl)
{}

static u64 mlxsw_sp1_kvdl_part_occ(struct mlxsw_sp1_kvdl_part *part)
{}

static u64 mlxsw_sp1_kvdl_occ_get(void *priv)
{}

static u64 mlxsw_sp1_kvdl_single_occ_get(void *priv)
{}

static u64 mlxsw_sp1_kvdl_chunks_occ_get(void *priv)
{}

static u64 mlxsw_sp1_kvdl_large_chunks_occ_get(void *priv)
{}

static int mlxsw_sp1_kvdl_init(struct mlxsw_sp *mlxsw_sp, void *priv)
{}

static void mlxsw_sp1_kvdl_fini(struct mlxsw_sp *mlxsw_sp, void *priv)
{}

const struct mlxsw_sp_kvdl_ops mlxsw_sp1_kvdl_ops =;

int mlxsw_sp1_kvdl_resources_register(struct mlxsw_core *mlxsw_core)
{}