Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / gallium / auxiliary / util / u_ringbuffer.h
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  */
10 struct util_packet {
11    unsigned dwords:8;
12    unsigned data24:24;
13 };
14
15 struct util_ringbuffer;
16
17 struct util_ringbuffer *util_ringbuffer_create( unsigned dwords );
18
19 void util_ringbuffer_destroy( struct util_ringbuffer *ring );
20
21 void util_ringbuffer_enqueue( struct util_ringbuffer *ring,
22                               const struct util_packet *packet );
23
24 enum pipe_error util_ringbuffer_dequeue( struct util_ringbuffer *ring,
25                                          struct util_packet *packet,
26                                          unsigned max_dwords,
27                                          boolean wait );
28
29 #endif