dspqueue
Asynchronous DSP Packet Queue
Asynchronous DSP Packet Queue API Constants

Macros

#define DSPQUEUE_TIMEOUT_NONE   0xffffffff
 

Enumerations

enum  dspqueue_packet_flags {
  DSPQUEUE_PACKET_FLAG_MESSAGE = 0x0001, DSPQUEUE_PACKET_FLAG_BUFFERS = 0x0002, DSPQUEUE_PACKET_FLAG_WAKEUP = 0x0004, DSPQUEUE_PACKET_FLAG_DRIVER_READY = 0x0008,
  DSPQUEUE_PACKET_FLAG_USER_READY = 0x0010, DSPQUEUE_PACKET_FLAG_RESERVED_ZERO = 0xffe0
}
 
enum  dspqueue_buffer_flags {
  DSPQUEUE_BUFFER_FLAG_REF = 0x00000004, DSPQUEUE_BUFFER_FLAG_DEREF = 0x00000008, DSPQUEUE_BUFFER_FLAG_FLUSH_SENDER = 0x00000010, DSPQUEUE_BUFFER_FLAG_INVALIDATE_SENDER = 0x00000020,
  DSPQUEUE_BUFFER_FLAG_FLUSH_RECIPIENT = 0x00000040, DSPQUEUE_BUFFER_FLAG_INVALIDATE_RECIPIENT = 0x00000080, DSPQUEUE_BUFFER_FLAG_RESERVED_ZERO = 0xffffff00
}
 
enum  dspqueue_stat {
  DSPQUEUE_STAT_READ_QUEUE_PACKETS = 1, DSPQUEUE_STAT_READ_QUEUE_BYTES, DSPQUEUE_STAT_WRITE_QUEUE_PACKETS, DSPQUEUE_STAT_WRITE_QUEUE_BYTES,
  DSPQUEUE_STAT_EARLY_WAKEUP_WAIT_TIME, DSPQUEUE_STAT_EARLY_WAKEUP_MISSES
}
 

Detailed Description

Macro Definition Documentation

◆ DSPQUEUE_TIMEOUT_NONE

#define DSPQUEUE_TIMEOUT_NONE   0xffffffff

Infinite timeout

Enumeration Type Documentation

◆ dspqueue_buffer_flags

Buffer flags. The flags are used in dspqueue_buffer.flags as a bitfield.

Enumerator
DSPQUEUE_BUFFER_FLAG_REF 

Add a reference to a previously mapped buffer

DSPQUEUE_BUFFER_FLAG_DEREF 

Remove a reference from a previously mapped buffer

DSPQUEUE_BUFFER_FLAG_FLUSH_SENDER 

Flush buffer from sender caches

DSPQUEUE_BUFFER_FLAG_INVALIDATE_SENDER 

Invalidate buffer from sender caches

DSPQUEUE_BUFFER_FLAG_FLUSH_RECIPIENT 

Flush buffer from recipient caches

DSPQUEUE_BUFFER_FLAG_INVALIDATE_RECIPIENT 

Invalidate buffer from recipient caches

◆ dspqueue_packet_flags

Packet flags. The flags are used as a bitfield in packet read/write operations.

Enumerator
DSPQUEUE_PACKET_FLAG_MESSAGE 

Packet contains a message

DSPQUEUE_PACKET_FLAG_BUFFERS 

Packet contains buffer references

DSPQUEUE_PACKET_FLAG_WAKEUP 

Early wakeup packet

DSPQUEUE_PACKET_FLAG_DRIVER_READY 

Packet is ready for driver consumption. Currently unused.

DSPQUEUE_PACKET_FLAG_USER_READY 

Packet is ready for userspace library consumption

◆ dspqueue_stat

Statistics readable with dspqueue_get_stat()

Enumerator
DSPQUEUE_STAT_READ_QUEUE_PACKETS 

Numbers of packets in the read queue

DSPQUEUE_STAT_READ_QUEUE_BYTES 

Number of bytes in the read queue

DSPQUEUE_STAT_WRITE_QUEUE_PACKETS 

Number of packets in the write queue

DSPQUEUE_STAT_WRITE_QUEUE_BYTES 

Number of bytes in the write queue

DSPQUEUE_STAT_EARLY_WAKEUP_WAIT_TIME 

Total accumulated early wakeup wait time in microseconds. Developers can use this value to tune their early wakeup request timing; the target should be to have this value as close to zero as possible while minimizing signaling latency. For more information on tuning early wakeup requests, see the "Performance Considerations" section in the main Hexagon SDK "Asynchronous Packet Queue" document.

DSPQUEUE_STAT_EARLY_WAKEUP_MISSES 

Number accumulated of packets missed in the early wakeup loop. Developers can use this value to tune their early wakeup request timing. If this value is above zero it indicates the early wakeup request was sent too early and it expired before the corresponding packet was received. For more information on tuning early wakeup requests, see the "Performance Considerations" section in the main Hexagon SDK "Asynchronous Packet Queue" document.