1
2#ifndef UTIL_RINGBUFFER_H
3#define UTIL_RINGBUFFER_H
4
5#include "pipe/p_compiler.h"
6#include "pipe/p_defines.h"       /* only for pipe_error! */
7
8/* Generic header
9 */
10struct util_packet {
11   unsigned dwords:8;
12   unsigned data24:24;
13};
14
15struct util_ringbuffer;
16
17struct util_ringbuffer *util_ringbuffer_create( unsigned dwords );
18
19void util_ringbuffer_destroy( struct util_ringbuffer *ring );
20
21void util_ringbuffer_enqueue( struct util_ringbuffer *ring,
22                              const struct util_packet *packet );
23
24enum pipe_error util_ringbuffer_dequeue( struct util_ringbuffer *ring,
25                                         struct util_packet *packet,
26                                         unsigned max_dwords,
27                                         boolean wait );
28
29#endif
30