media/mtransport/third_party/nrappkit/src/util/p_buf.h

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/media/mtransport/third_party/nrappkit/src/util/p_buf.h	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,72 @@
     1.4 +/**
     1.5 +   p_buf.h
     1.6 +
     1.7 +
     1.8 +   Copyright (C) 2003, Network Resonance, Inc.
     1.9 +   Copyright (C) 2006, Network Resonance, Inc.
    1.10 +   All Rights Reserved
    1.11 +
    1.12 +   Redistribution and use in source and binary forms, with or without
    1.13 +   modification, are permitted provided that the following conditions
    1.14 +   are met:
    1.15 +
    1.16 +   1. Redistributions of source code must retain the above copyright
    1.17 +      notice, this list of conditions and the following disclaimer.
    1.18 +   2. Redistributions in binary form must reproduce the above copyright
    1.19 +      notice, this list of conditions and the following disclaimer in the
    1.20 +      documentation and/or other materials provided with the distribution.
    1.21 +   3. Neither the name of Network Resonance, Inc. nor the name of any
    1.22 +      contributors to this software may be used to endorse or promote
    1.23 +      products derived from this software without specific prior written
    1.24 +      permission.
    1.25 +
    1.26 +   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
    1.27 +   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    1.28 +   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    1.29 +   ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    1.30 +   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    1.31 +   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    1.32 +   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    1.33 +   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    1.34 +   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    1.35 +   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    1.36 +   POSSIBILITY OF SUCH DAMAGE.
    1.37 +
    1.38 +
    1.39 +   ekr@rtfm.com  Tue Nov 25 15:58:37 2003
    1.40 + */
    1.41 +
    1.42 +
    1.43 +#ifndef _p_buf_h
    1.44 +#define _p_buf_h
    1.45 +
    1.46 +typedef struct nr_p_buf_ {
    1.47 +     UCHAR *data;     /*The pointer to the buffer where the data lives */
    1.48 +     UINT4 size;      /*The size of the buffer */
    1.49 +     UINT4 r_offset;  /*The offset into the buffer where the data starts
    1.50 +                        when reading */
    1.51 +     UINT4 length;    /*The length of the data portion */
    1.52 +
    1.53 +     STAILQ_ENTRY(nr_p_buf_) entry;
    1.54 +} nr_p_buf;
    1.55 +
    1.56 +typedef STAILQ_HEAD(nr_p_buf_head_,nr_p_buf_) nr_p_buf_head;
    1.57 +
    1.58 +
    1.59 +typedef struct nr_p_buf_ctx_ {
    1.60 +     int buf_size;
    1.61 +
    1.62 +     nr_p_buf_head free_list;
    1.63 +} nr_p_buf_ctx;
    1.64 +
    1.65 +int nr_p_buf_ctx_create(int size,nr_p_buf_ctx **ctxp);
    1.66 +int nr_p_buf_ctx_destroy(nr_p_buf_ctx **ctxp);
    1.67 +int nr_p_buf_alloc(nr_p_buf_ctx *ctx,nr_p_buf **bufp);
    1.68 +int nr_p_buf_free(nr_p_buf_ctx *ctx,nr_p_buf *buf);
    1.69 +int nr_p_buf_free_chain(nr_p_buf_ctx *ctx,nr_p_buf_head *chain);
    1.70 +int nr_p_buf_write_to_chain(nr_p_buf_ctx *ctx,
    1.71 +                                       nr_p_buf_head *chain,
    1.72 +                                       UCHAR *data,UINT4 len);
    1.73 +
    1.74 +#endif
    1.75 +

mercurial