queue.h File Reference

Go to the source code of this file.

Defines

#define _SPANDSP_QUEUE_H_
#define QUEUE_READ_ATOMIC   0x0001
#define QUEUE_WRITE_ATOMIC   0x0002
#define QUEUE_STATE_T_SIZE(len)   (sizeof(queue_state_t) + len + 1)

Typedefs

typedef queue_state_s queue_state_t

Functions

int queue_empty (queue_state_t *s)
 Check if a queue is empty.
int queue_free_space (queue_state_t *s)
 Check available free space.
int queue_contents (queue_state_t *s)
 Check the contents of a queue.
void queue_flush (queue_state_t *s)
 Flush the contents of a queue.
int queue_view (queue_state_t *s, uint8_t *buf, int len)
 Copy bytes from a queue.
int queue_read (queue_state_t *s, uint8_t *buf, int len)
 Read bytes from a queue.
int queue_read_byte (queue_state_t *s)
 Read a byte from a queue.
int queue_write (queue_state_t *s, const uint8_t *buf, int len)
 Write bytes to a queue.
int queue_write_byte (queue_state_t *s, uint8_t byte)
 Write a byte to a queue.
int queue_state_test_msg (queue_state_t *s)
 Test message length.
int queue_read_msg (queue_state_t *s, uint8_t *buf, int len)
 Read a message from a queue.
int queue_write_msg (queue_state_t *s, const uint8_t *buf, int len)
 Write a message to a queue.
queue_state_tqueue_init (queue_state_t *s, int len, int flags)
 Initialise a queue.
int queue_release (queue_state_t *s)
 Release a queue.
int queue_free (queue_state_t *s)
 Delete a queue.


Detailed Description


Define Documentation

#define QUEUE_READ_ATOMIC   0x0001

Flag bit to indicate queue reads are atomic operations. This must be set if the queue is to be used with the message oriented functions.

#define QUEUE_WRITE_ATOMIC   0x0002

Flag bit to indicate queue writes are atomic operations. This must be set if the queue is to be used with the message oriented functions.


Typedef Documentation

typedef struct queue_state_s queue_state_t

Queue descriptor. This defines the working state for a single instance of a byte stream or message oriented queue.


Function Documentation

int queue_contents ( queue_state_t s  ) 

Check the contents of a queue.

Check the contents of a queue.

Parameters:
s The queue context.
Returns:
The number of bytes in the queue.

int queue_empty ( queue_state_t s  ) 

Check if a queue is empty.

Check if a queue is empty.

Parameters:
s The queue context.
Returns:
TRUE if empty, else FALSE.

void queue_flush ( queue_state_t s  ) 

Flush the contents of a queue.

Flush the contents of a queue.

Parameters:
s The queue context.

int queue_free ( queue_state_t s  ) 

Delete a queue.

Free a queue.

Parameters:
s The queue context.
Returns:
0 if OK, else -1.

int queue_free_space ( queue_state_t s  ) 

Check available free space.

Check the available free space in a queue's buffer.

Parameters:
s The queue context.
Returns:
The number of bytes of free space.

queue_state_t* queue_init ( queue_state_t s,
int  len,
int  flags 
)

Initialise a queue.

Initialise a queue.

Parameters:
s The queue context. If is imperative that the context this points to is immediately followed by a buffer of the required size + 1 octet.
len The length of the queue's buffer.
flags Flags controlling the operation of the queue. Valid flags are QUEUE_READ_ATOMIC and QUEUE_WRITE_ATOMIC.
Returns:
A pointer to the context if OK, else NULL.

int queue_read ( queue_state_t s,
uint8_t *  buf,
int  len 
)

Read bytes from a queue.

Read bytes from a queue.

Parameters:
s The queue context.
buf The buffer into which the bytes will be read.
len The length of the buffer.
Returns:
the number of bytes returned.

int queue_read_byte ( queue_state_t s  ) 

Read a byte from a queue.

Read a byte from a queue.

Parameters:
s The queue context.
Returns:
the byte, or -1 if the queue is empty.

int queue_read_msg ( queue_state_t s,
uint8_t *  buf,
int  len 
)

Read a message from a queue.

Read a message from a queue. If the message is longer than the buffer provided, only the first len bytes of the message will be returned. The remainder of the message will be discarded.

Parameters:
s The queue context.
buf The buffer into which the message will be read.
len The length of the buffer.
Returns:
The number of bytes returned. If there are no messages in the queue, -1 is returned.

int queue_release ( queue_state_t s  ) 

Release a queue.

Release a queue.

Parameters:
s The queue context.
Returns:
0 if OK, else -1.

int queue_state_test_msg ( queue_state_t s  ) 

Test message length.

Test the length of the message at the head of a queue.

Parameters:
s The queue context.
Returns:
The length of the next message, in byte. If there are no messages in the queue, -1 is returned.

int queue_view ( queue_state_t s,
uint8_t *  buf,
int  len 
)

Copy bytes from a queue.

Copy bytes from a queue. This is similar to queue_read, but the data remains in the queue.

Parameters:
s The queue context.
buf The buffer into which the bytes will be read.
len The length of the buffer.
Returns:
the number of bytes returned.

int queue_write ( queue_state_t s,
const uint8_t *  buf,
int  len 
)

Write bytes to a queue.

Write bytes to a queue.

Parameters:
s The queue context.
buf The buffer containing the bytes to be written.
len The length of the buffer.
Returns:
the number of bytes actually written.

int queue_write_byte ( queue_state_t s,
uint8_t  byte 
)

Write a byte to a queue.

Write a byte to a queue.

Parameters:
s The queue context.
byte The byte to be written.
Returns:
the number of bytes actually written.

int queue_write_msg ( queue_state_t s,
const uint8_t *  buf,
int  len 
)

Write a message to a queue.

Write a message to a queue.

Parameters:
s The queue context.
buf The buffer from which the message will be written.
len The length of the message.
Returns:
The number of bytes actually written.


Generated on Fri Jun 12 18:31:20 2009 for spandsp by  doxygen 1.4.7