#include <net/dsa.h>
#include <net/devlink.h>
#include "devlink.h"
static int dsa_devlink_info_get(struct devlink *dl,
struct devlink_info_req *req,
struct netlink_ext_ack *extack)
{ … }
static int dsa_devlink_sb_pool_get(struct devlink *dl,
unsigned int sb_index, u16 pool_index,
struct devlink_sb_pool_info *pool_info)
{ … }
static int dsa_devlink_sb_pool_set(struct devlink *dl, unsigned int sb_index,
u16 pool_index, u32 size,
enum devlink_sb_threshold_type threshold_type,
struct netlink_ext_ack *extack)
{ … }
static int dsa_devlink_sb_port_pool_get(struct devlink_port *dlp,
unsigned int sb_index, u16 pool_index,
u32 *p_threshold)
{ … }
static int dsa_devlink_sb_port_pool_set(struct devlink_port *dlp,
unsigned int sb_index, u16 pool_index,
u32 threshold,
struct netlink_ext_ack *extack)
{ … }
static int
dsa_devlink_sb_tc_pool_bind_get(struct devlink_port *dlp,
unsigned int sb_index, u16 tc_index,
enum devlink_sb_pool_type pool_type,
u16 *p_pool_index, u32 *p_threshold)
{ … }
static int
dsa_devlink_sb_tc_pool_bind_set(struct devlink_port *dlp,
unsigned int sb_index, u16 tc_index,
enum devlink_sb_pool_type pool_type,
u16 pool_index, u32 threshold,
struct netlink_ext_ack *extack)
{ … }
static int dsa_devlink_sb_occ_snapshot(struct devlink *dl,
unsigned int sb_index)
{ … }
static int dsa_devlink_sb_occ_max_clear(struct devlink *dl,
unsigned int sb_index)
{ … }
static int dsa_devlink_sb_occ_port_pool_get(struct devlink_port *dlp,
unsigned int sb_index,
u16 pool_index, u32 *p_cur,
u32 *p_max)
{ … }
static int
dsa_devlink_sb_occ_tc_port_bind_get(struct devlink_port *dlp,
unsigned int sb_index, u16 tc_index,
enum devlink_sb_pool_type pool_type,
u32 *p_cur, u32 *p_max)
{ … }
static const struct devlink_ops dsa_devlink_ops = …;
int dsa_devlink_param_get(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx)
{ … }
EXPORT_SYMBOL_GPL(…);
int dsa_devlink_param_set(struct devlink *dl, u32 id,
struct devlink_param_gset_ctx *ctx,
struct netlink_ext_ack *extack)
{ … }
EXPORT_SYMBOL_GPL(…);
int dsa_devlink_params_register(struct dsa_switch *ds,
const struct devlink_param *params,
size_t params_count)
{ … }
EXPORT_SYMBOL_GPL(…);
void dsa_devlink_params_unregister(struct dsa_switch *ds,
const struct devlink_param *params,
size_t params_count)
{ … }
EXPORT_SYMBOL_GPL(…);
int dsa_devlink_resource_register(struct dsa_switch *ds,
const char *resource_name,
u64 resource_size,
u64 resource_id,
u64 parent_resource_id,
const struct devlink_resource_size_params *size_params)
{ … }
EXPORT_SYMBOL_GPL(…);
void dsa_devlink_resources_unregister(struct dsa_switch *ds)
{ … }
EXPORT_SYMBOL_GPL(…);
void dsa_devlink_resource_occ_get_register(struct dsa_switch *ds,
u64 resource_id,
devlink_resource_occ_get_t *occ_get,
void *occ_get_priv)
{ … }
EXPORT_SYMBOL_GPL(…);
void dsa_devlink_resource_occ_get_unregister(struct dsa_switch *ds,
u64 resource_id)
{ … }
EXPORT_SYMBOL_GPL(…);
struct devlink_region *
dsa_devlink_region_create(struct dsa_switch *ds,
const struct devlink_region_ops *ops,
u32 region_max_snapshots, u64 region_size)
{ … }
EXPORT_SYMBOL_GPL(…);
struct devlink_region *
dsa_devlink_port_region_create(struct dsa_switch *ds,
int port,
const struct devlink_port_region_ops *ops,
u32 region_max_snapshots, u64 region_size)
{ … }
EXPORT_SYMBOL_GPL(…);
void dsa_devlink_region_destroy(struct devlink_region *region)
{ … }
EXPORT_SYMBOL_GPL(…);
int dsa_port_devlink_setup(struct dsa_port *dp)
{ … }
void dsa_port_devlink_teardown(struct dsa_port *dp)
{ … }
void dsa_switch_devlink_register(struct dsa_switch *ds)
{ … }
void dsa_switch_devlink_unregister(struct dsa_switch *ds)
{ … }
int dsa_switch_devlink_alloc(struct dsa_switch *ds)
{ … }
void dsa_switch_devlink_free(struct dsa_switch *ds)
{ … }