Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches

Queries and events exchanged between elements. More...

Files

file  mpipe_dispatch.h
 Queries and events exchanged between elements.

Data Structures

struct  mpipe_dispatch
 A query or an event traveling a pad link. More...

Enumerations

enum  mpipe_dispatch_type {
  MPIPE_DISPATCH_UNKNOWN = 0 , MPIPE_DISPATCH_EOS , MPIPE_DISPATCH_CAPS , MPIPE_DISPATCH_BUFFER_POOL ,
  MPIPE_DISPATCH_END = UINT8_MAX
}
 Supported dispatch types. More...

Detailed Description

Queries and events exchanged between elements.

A dispatch is what an element hands its peer across a pad link when what it sends is not data. It is one of two things:

  • a query, passed to mpipe_pad_query(): the peer answers it in place, so the asker reads the answer back out of the dispatch;
  • an event, passed to mpipe_pad_send_event(): a one-way announcement the peer acts on and forwards.

One fixed-size structure carries both, because a negotiation must allocate nothing. A dispatch is not an Messages either: a message travels up the bus to the application, a dispatch travels across a pad link between two elements.

Nothing in the structure says which of the two it is. The type says what the dispatch is about, and the function it is passed to decides whether it asks or announces:

Type As a query As an event
CAPS what do you accept, given this filter? this is the format, apply it
BUFFER_POOL what buffers do you need? -
EOS - the stream is over

Enumeration Type Documentation

◆ mpipe_dispatch_type

#include <mpipe_dispatch.h>

Supported dispatch types.

Enumerator
MPIPE_DISPATCH_UNKNOWN 

Unknown dispatch type.

MPIPE_DISPATCH_EOS 

EOS dispatch type.

MPIPE_DISPATCH_CAPS 

CAPS dispatch type.

MPIPE_DISPATCH_BUFFER_POOL 

Buffer pool negotiation type.

MPIPE_DISPATCH_END 

Maximum dispatch type identifier.