Sound Open Firmware
Loading...
Searching...
No Matches
buffer.h File Reference
Include dependency graph for buffer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  comp_buffer
struct  buffer_cb_transact

Macros

#define BUFF_CB_TYPE_PRODUCE   BIT(0)
#define BUFF_CB_TYPE_CONSUME   BIT(1)
#define BUFFER_UPDATE_IF_UNSET   0
#define BUFFER_UPDATE_FORCE   1
#define BUFF_PARAMS_FRAME_FMT   BIT(0)
#define BUFF_PARAMS_BUFFER_FMT   BIT(1)
#define BUFF_PARAMS_RATE   BIT(2)
#define BUFF_PARAMS_CHANNELS   BIT(3)
#define BUFFER_USAGE_SHARED   true /* buffer used by multiple DSP core and/or HW blocks */
#define BUFFER_USAGE_NOT_SHARED   false /* buffer only used by one HW block */
#define buffer_from_list(ptr, dir)
#define buffer_set_cb(buffer, func, data, type)

Functions

static struct comp_dev * comp_buffer_get_source_component (const struct comp_buffer *buffer)
static struct comp_dev * comp_buffer_get_sink_component (const struct comp_buffer *buffer)
static void comp_buffer_set_source_component (struct comp_buffer *buffer, struct comp_dev *comp)
static void comp_buffer_set_sink_component (struct comp_buffer *buffer, struct comp_dev *comp)
static void comp_buffer_reset_source_list (struct comp_buffer *buffer)
static void comp_buffer_reset_sink_list (struct comp_buffer *buffer)
struct comp_buffer * buffer_alloc (struct mod_alloc_ctx *alloc, size_t size, uint32_t flags, uint32_t align, bool is_shared)
struct comp_buffer * buffer_alloc_range (struct mod_alloc_ctx *alloc, size_t preferred_size, size_t minimum_size, uint32_t flags, uint32_t align, bool is_shared)
struct comp_buffer * buffer_new (struct mod_alloc_ctx *alloc, const struct sof_ipc_buffer *desc, bool is_shared)
int buffer_set_size (struct comp_buffer *buffer, uint32_t size, uint32_t alignment)
int buffer_set_size_range (struct comp_buffer *buffer, size_t preferred_size, size_t minimum_size, uint32_t alignment)
static struct comp_buffer * comp_buffer_get_from_source (struct sof_source *source)
static struct comp_buffer * comp_buffer_get_from_sink (struct sof_sink *sink)
static void buffer_free (struct comp_buffer *buffer)
void buffer_zero (struct comp_buffer *buffer)
void comp_update_buffer_produce (struct comp_buffer *buffer, uint32_t bytes)
void comp_update_buffer_consume (struct comp_buffer *buffer, uint32_t bytes)
int buffer_set_params (struct comp_buffer *buffer, struct sof_ipc_stream_params *params, bool force_update)
bool buffer_params_match (struct comp_buffer *buffer, struct sof_ipc_stream_params *params, uint32_t flag)
static void buffer_stream_invalidate (struct comp_buffer *buffer, uint32_t bytes)
static void buffer_stream_writeback (struct comp_buffer *buffer, uint32_t bytes)
int buffer_attach (struct comp_buffer *buffer, struct list_item *head, int dir)
void buffer_detach (struct comp_buffer *buffer, struct list_item *head, int dir)
static struct comp_dev * buffer_get_comp (struct comp_buffer *buffer, int dir)
static uint32_t buffer_pipeline_id (const struct comp_buffer *buffer)
static void buffer_init_stream (struct comp_buffer *buffer, size_t size)

Trace macros

#define trace_buf_get_tr_ctx(buf_ptr)
 Retrieves trace context from the buffer.
#define buf_get_id(buf_ptr)
 Retrieves subid (comp id) from the buffer.
#define buf_err(buf_ptr, __e, ...)
 Trace error message from buffer.
#define buf_warn(buf_ptr, __e, ...)
 Trace warning message from buffer.
#define buf_info(buf_ptr, __e, ...)
 Trace info message from buffer.
#define buf_dbg(buf_ptr, __e, ...)
 Trace debug message from buffer.
struct tr_ctx buffer_tr

Macro Definition Documentation

◆ buf_dbg

#define buf_dbg ( buf_ptr,
__e,
... )
Value:
(__sparse_force const struct comp_buffer *)buf_ptr, \
__e, ##__VA_ARGS__)
#define trace_buf_get_tr_ctx(buf_ptr)
Retrieves trace context from the buffer.
Definition buffer.h:45
#define buf_get_id(buf_ptr)
Retrieves subid (comp id) from the buffer.
Definition buffer.h:48
static uint32_t buffer_pipeline_id(const struct comp_buffer *buffer)
Definition buffer.h:314
Definition buffer.h:130
#define trace_dev_dbg(get_ctx_m, get_id_m, get_subid_m, dev, fmt,...)
Trace from a device on dbg level.
Definition trace-soflogger.h:310
#define __sparse_force
Definition compiler_attributes.h:12

Trace debug message from buffer.

◆ buf_err

#define buf_err ( buf_ptr,
__e,
... )
Value:
(__sparse_force const struct comp_buffer *)buf_ptr, \
__e, ##__VA_ARGS__)
#define trace_dev_err(get_ctx_m, get_id_m, get_subid_m, dev, fmt,...)
Trace from a device on err level.
Definition trace-soflogger.h:292

Trace error message from buffer.

◆ buf_get_id

#define buf_get_id ( buf_ptr)
Value:
((buf_ptr)->stream.runtime_stream_params.id)

Retrieves subid (comp id) from the buffer.

◆ buf_info

#define buf_info ( buf_ptr,
__e,
... )
Value:
(__sparse_force const struct comp_buffer *)buf_ptr, \
__e, ##__VA_ARGS__)
#define trace_dev_info(get_ctx_m, get_id_m, get_subid_m, dev, fmt,...)
Trace from a device on info level.
Definition trace-soflogger.h:304

Trace info message from buffer.

◆ buf_warn

#define buf_warn ( buf_ptr,
__e,
... )
Value:
(__sparse_force const struct comp_buffer *)buf_ptr, \
__e, ##__VA_ARGS__)
#define trace_dev_warn(get_ctx_m, get_id_m, get_subid_m, dev, fmt,...)
Trace from a device on warning level.
Definition trace-soflogger.h:298

Trace warning message from buffer.

◆ BUFF_CB_TYPE_CONSUME

#define BUFF_CB_TYPE_CONSUME   BIT(1)

◆ BUFF_CB_TYPE_PRODUCE

#define BUFF_CB_TYPE_PRODUCE   BIT(0)

◆ BUFF_PARAMS_BUFFER_FMT

#define BUFF_PARAMS_BUFFER_FMT   BIT(1)

◆ BUFF_PARAMS_CHANNELS

#define BUFF_PARAMS_CHANNELS   BIT(3)

◆ BUFF_PARAMS_FRAME_FMT

#define BUFF_PARAMS_FRAME_FMT   BIT(0)

◆ BUFF_PARAMS_RATE

#define BUFF_PARAMS_RATE   BIT(2)

◆ buffer_from_list

#define buffer_from_list ( ptr,
dir )
Value:
((dir) == PPL_DIR_DOWNSTREAM ? \
container_of(ptr, struct comp_buffer, source_list) : \
container_of(ptr, struct comp_buffer, sink_list))
#define container_of(ptr, type, member)
Definition common.h:119
#define PPL_DIR_DOWNSTREAM
Definition pipeline.h:49

◆ buffer_set_cb

#define buffer_set_cb ( buffer,
func,
data,
type )
Value:
do { \
buffer->cb = func; \
buffer->cb_data = data; \
buffer->cb_type = type; \
} while (0)
uint32_t data[]
Definition debug_stream_slot.h:2
uint32_t type
Definition tlv.h:0

◆ BUFFER_UPDATE_FORCE

#define BUFFER_UPDATE_FORCE   1

◆ BUFFER_UPDATE_IF_UNSET

#define BUFFER_UPDATE_IF_UNSET   0

◆ BUFFER_USAGE_NOT_SHARED

#define BUFFER_USAGE_NOT_SHARED   false /* buffer only used by one HW block */

◆ BUFFER_USAGE_SHARED

#define BUFFER_USAGE_SHARED   true /* buffer used by multiple DSP core and/or HW blocks */

◆ trace_buf_get_tr_ctx

#define trace_buf_get_tr_ctx ( buf_ptr)
Value:
(&(buf_ptr)->tctx)

Retrieves trace context from the buffer.

Function Documentation

◆ buffer_alloc()

struct comp_buffer * buffer_alloc ( struct mod_alloc_ctx * alloc,
size_t size,
uint32_t flags,
uint32_t align,
bool is_shared )

◆ buffer_alloc_range()

struct comp_buffer * buffer_alloc_range ( struct mod_alloc_ctx * alloc,
size_t preferred_size,
size_t minimum_size,
uint32_t flags,
uint32_t align,
bool is_shared )

◆ buffer_attach()

int buffer_attach ( struct comp_buffer * buffer,
struct list_item * head,
int dir )

◆ buffer_detach()

void buffer_detach ( struct comp_buffer * buffer,
struct list_item * head,
int dir )

◆ buffer_free()

void buffer_free ( struct comp_buffer * buffer)
inlinestatic

◆ buffer_get_comp()

struct comp_dev * buffer_get_comp ( struct comp_buffer * buffer,
int dir )
inlinestatic

◆ buffer_init_stream()

void buffer_init_stream ( struct comp_buffer * buffer,
size_t size )
inlinestatic

◆ buffer_new()

struct comp_buffer * buffer_new ( struct mod_alloc_ctx * alloc,
const struct sof_ipc_buffer * desc,
bool is_shared )

◆ buffer_params_match()

bool buffer_params_match ( struct comp_buffer * buffer,
struct sof_ipc_stream_params * params,
uint32_t flag )

◆ buffer_pipeline_id()

uint32_t buffer_pipeline_id ( const struct comp_buffer * buffer)
inlinestatic

◆ buffer_set_params()

int buffer_set_params ( struct comp_buffer * buffer,
struct sof_ipc_stream_params * params,
bool force_update )

◆ buffer_set_size()

int buffer_set_size ( struct comp_buffer * buffer,
uint32_t size,
uint32_t alignment )

◆ buffer_set_size_range()

int buffer_set_size_range ( struct comp_buffer * buffer,
size_t preferred_size,
size_t minimum_size,
uint32_t alignment )

◆ buffer_stream_invalidate()

void buffer_stream_invalidate ( struct comp_buffer * buffer,
uint32_t bytes )
inlinestatic

◆ buffer_stream_writeback()

void buffer_stream_writeback ( struct comp_buffer * buffer,
uint32_t bytes )
inlinestatic

◆ buffer_zero()

void buffer_zero ( struct comp_buffer * buffer)

◆ comp_buffer_get_from_sink()

struct comp_buffer * comp_buffer_get_from_sink ( struct sof_sink * sink)
inlinestatic

◆ comp_buffer_get_from_source()

struct comp_buffer * comp_buffer_get_from_source ( struct sof_source * source)
inlinestatic

◆ comp_buffer_get_sink_component()

struct comp_dev * comp_buffer_get_sink_component ( const struct comp_buffer * buffer)
inlinestatic

◆ comp_buffer_get_source_component()

struct comp_dev * comp_buffer_get_source_component ( const struct comp_buffer * buffer)
inlinestatic

◆ comp_buffer_reset_sink_list()

void comp_buffer_reset_sink_list ( struct comp_buffer * buffer)
inlinestatic

◆ comp_buffer_reset_source_list()

void comp_buffer_reset_source_list ( struct comp_buffer * buffer)
inlinestatic

◆ comp_buffer_set_sink_component()

void comp_buffer_set_sink_component ( struct comp_buffer * buffer,
struct comp_dev * comp )
inlinestatic

◆ comp_buffer_set_source_component()

void comp_buffer_set_source_component ( struct comp_buffer * buffer,
struct comp_dev * comp )
inlinestatic

◆ comp_update_buffer_consume()

void comp_update_buffer_consume ( struct comp_buffer * buffer,
uint32_t bytes )

◆ comp_update_buffer_produce()

void comp_update_buffer_produce ( struct comp_buffer * buffer,
uint32_t bytes )

Variable Documentation

◆ buffer_tr

struct tr_ctx buffer_tr
extern