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

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

michael@0 1 /**
michael@0 2 p_buf.h
michael@0 3
michael@0 4
michael@0 5 Copyright (C) 2003, Network Resonance, Inc.
michael@0 6 Copyright (C) 2006, Network Resonance, Inc.
michael@0 7 All Rights Reserved
michael@0 8
michael@0 9 Redistribution and use in source and binary forms, with or without
michael@0 10 modification, are permitted provided that the following conditions
michael@0 11 are met:
michael@0 12
michael@0 13 1. Redistributions of source code must retain the above copyright
michael@0 14 notice, this list of conditions and the following disclaimer.
michael@0 15 2. Redistributions in binary form must reproduce the above copyright
michael@0 16 notice, this list of conditions and the following disclaimer in the
michael@0 17 documentation and/or other materials provided with the distribution.
michael@0 18 3. Neither the name of Network Resonance, Inc. nor the name of any
michael@0 19 contributors to this software may be used to endorse or promote
michael@0 20 products derived from this software without specific prior written
michael@0 21 permission.
michael@0 22
michael@0 23 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
michael@0 24 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
michael@0 25 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
michael@0 26 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
michael@0 27 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
michael@0 28 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
michael@0 29 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
michael@0 30 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
michael@0 31 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
michael@0 32 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
michael@0 33 POSSIBILITY OF SUCH DAMAGE.
michael@0 34
michael@0 35
michael@0 36 ekr@rtfm.com Tue Nov 25 15:58:37 2003
michael@0 37 */
michael@0 38
michael@0 39
michael@0 40 #ifndef _p_buf_h
michael@0 41 #define _p_buf_h
michael@0 42
michael@0 43 typedef struct nr_p_buf_ {
michael@0 44 UCHAR *data; /*The pointer to the buffer where the data lives */
michael@0 45 UINT4 size; /*The size of the buffer */
michael@0 46 UINT4 r_offset; /*The offset into the buffer where the data starts
michael@0 47 when reading */
michael@0 48 UINT4 length; /*The length of the data portion */
michael@0 49
michael@0 50 STAILQ_ENTRY(nr_p_buf_) entry;
michael@0 51 } nr_p_buf;
michael@0 52
michael@0 53 typedef STAILQ_HEAD(nr_p_buf_head_,nr_p_buf_) nr_p_buf_head;
michael@0 54
michael@0 55
michael@0 56 typedef struct nr_p_buf_ctx_ {
michael@0 57 int buf_size;
michael@0 58
michael@0 59 nr_p_buf_head free_list;
michael@0 60 } nr_p_buf_ctx;
michael@0 61
michael@0 62 int nr_p_buf_ctx_create(int size,nr_p_buf_ctx **ctxp);
michael@0 63 int nr_p_buf_ctx_destroy(nr_p_buf_ctx **ctxp);
michael@0 64 int nr_p_buf_alloc(nr_p_buf_ctx *ctx,nr_p_buf **bufp);
michael@0 65 int nr_p_buf_free(nr_p_buf_ctx *ctx,nr_p_buf *buf);
michael@0 66 int nr_p_buf_free_chain(nr_p_buf_ctx *ctx,nr_p_buf_head *chain);
michael@0 67 int nr_p_buf_write_to_chain(nr_p_buf_ctx *ctx,
michael@0 68 nr_p_buf_head *chain,
michael@0 69 UCHAR *data,UINT4 len);
michael@0 70
michael@0 71 #endif
michael@0 72

mercurial