Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: jb
Fetching contributors…

Cannot retrieve contributors at this time

62 lines (49 sloc) 1.662 kb
/* Copyright (C) 2007-2008 The Android Open Source Project
**
** This software is licensed under the terms of the GNU General Public
** License version 2, as published by the Free Software Foundation, and
** may be copied, distributed, and modified under those terms.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
*/
#ifndef _qemu_cbuffer_h
#define _qemu_cbuffer_h
#include <stdint.h>
/* Basic circular buffer type and methods */
typedef struct {
uint8_t* buff;
int size;
int rpos;
int count;
} CBuffer;
static __inline__ void
cbuffer_reset( CBuffer* cb, void* buff, int size )
{
cb->buff = buff;
cb->size = size;
cb->rpos = 0;
cb->count = 0;
}
static __inline__ int
cbuffer_write_avail( CBuffer* cb )
{
return cb->size - cb->count;
}
extern int cbuffer_write( CBuffer* cb, const void* from, int len );
extern int cbuffer_write_peek( CBuffer* cb, uint8_t* *pbase );
extern void cbuffer_write_step( CBuffer* cb, int len );
static __inline__ int
cbuffer_read_avail( CBuffer* cb )
{
return cb->count;
}
extern int cbuffer_read( CBuffer* cb, void* to, int len );
extern int cbuffer_read_peek( CBuffer* cb, uint8_t* *pbase );
extern void cbuffer_read_step( CBuffer* cb, int len );
extern const char* cbuffer_quote( CBuffer* cb );
extern const char* cbuffer_quote_data( CBuffer* cb );
extern void cbuffer_print( CBuffer* cb );
#endif /* qemu_cbuffer_h */
Jump to Line
Something went wrong with that request. Please try again.