mirror of https://github.com/F-Stack/f-stack.git
97 lines
2.0 KiB
C
97 lines
2.0 KiB
C
/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
|
|
*
|
|
* Copyright 2013-2016 Freescale Semiconductor Inc.
|
|
* Copyright 2016-2017 NXP
|
|
*
|
|
*/
|
|
#ifndef __FSL_DPBP_H
|
|
#define __FSL_DPBP_H
|
|
|
|
/*
|
|
* Data Path Buffer Pool API
|
|
* Contains initialization APIs and runtime control APIs for DPBP
|
|
*/
|
|
|
|
struct fsl_mc_io;
|
|
|
|
int dpbp_open(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
int dpbp_id,
|
|
uint16_t *token);
|
|
|
|
int dpbp_close(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token);
|
|
|
|
/**
|
|
* struct dpbp_cfg - Structure representing DPBP configuration
|
|
* @options: place holder
|
|
*/
|
|
struct dpbp_cfg {
|
|
uint32_t options;
|
|
};
|
|
|
|
int dpbp_create(struct fsl_mc_io *mc_io,
|
|
uint16_t dprc_token,
|
|
uint32_t cmd_flags,
|
|
const struct dpbp_cfg *cfg,
|
|
uint32_t *obj_id);
|
|
|
|
int dpbp_destroy(struct fsl_mc_io *mc_io,
|
|
uint16_t dprc_token,
|
|
uint32_t cmd_flags,
|
|
uint32_t obj_id);
|
|
|
|
int dpbp_enable(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token);
|
|
|
|
int dpbp_disable(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token);
|
|
|
|
int dpbp_is_enabled(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
int *en);
|
|
|
|
int dpbp_reset(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token);
|
|
|
|
/**
|
|
* struct dpbp_attr - Structure representing DPBP attributes
|
|
* @id: DPBP object ID
|
|
* @bpid: Hardware buffer pool ID; should be used as an argument in
|
|
* acquire/release operations on buffers
|
|
*/
|
|
struct dpbp_attr {
|
|
int id;
|
|
uint16_t bpid;
|
|
};
|
|
|
|
int dpbp_get_attributes(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
struct dpbp_attr *attr);
|
|
|
|
/**
|
|
* DPBP notifications options
|
|
*/
|
|
|
|
/**
|
|
* BPSCN write will attempt to allocate into a cache (coherent write)
|
|
*/
|
|
#define DPBP_NOTIF_OPT_COHERENT_WRITE 0x00000001
|
|
int dpbp_get_api_version(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t *major_ver,
|
|
uint16_t *minor_ver);
|
|
|
|
int dpbp_get_num_free_bufs(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
uint32_t *num_free_bufs);
|
|
|
|
#endif /* __FSL_DPBP_H */
|