1*90e502c7SAndroid Build Coastguard Worker /* 2*90e502c7SAndroid Build Coastguard Worker * alloc.h 3*90e502c7SAndroid Build Coastguard Worker * 4*90e502c7SAndroid Build Coastguard Worker * interface to memory allocation and deallocation, with optional debugging 5*90e502c7SAndroid Build Coastguard Worker * 6*90e502c7SAndroid Build Coastguard Worker * David A. McGrew 7*90e502c7SAndroid Build Coastguard Worker * Cisco Systems, Inc. 8*90e502c7SAndroid Build Coastguard Worker */ 9*90e502c7SAndroid Build Coastguard Worker /* 10*90e502c7SAndroid Build Coastguard Worker * 11*90e502c7SAndroid Build Coastguard Worker * Copyright (c) 2001-2017 Cisco Systems, Inc. 12*90e502c7SAndroid Build Coastguard Worker * All rights reserved. 13*90e502c7SAndroid Build Coastguard Worker * 14*90e502c7SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 15*90e502c7SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 16*90e502c7SAndroid Build Coastguard Worker * are met: 17*90e502c7SAndroid Build Coastguard Worker * 18*90e502c7SAndroid Build Coastguard Worker * Redistributions of source code must retain the above copyright 19*90e502c7SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 20*90e502c7SAndroid Build Coastguard Worker * 21*90e502c7SAndroid Build Coastguard Worker * Redistributions in binary form must reproduce the above 22*90e502c7SAndroid Build Coastguard Worker * copyright notice, this list of conditions and the following 23*90e502c7SAndroid Build Coastguard Worker * disclaimer in the documentation and/or other materials provided 24*90e502c7SAndroid Build Coastguard Worker * with the distribution. 25*90e502c7SAndroid Build Coastguard Worker * 26*90e502c7SAndroid Build Coastguard Worker * Neither the name of the Cisco Systems, Inc. nor the names of its 27*90e502c7SAndroid Build Coastguard Worker * contributors may be used to endorse or promote products derived 28*90e502c7SAndroid Build Coastguard Worker * from this software without specific prior written permission. 29*90e502c7SAndroid Build Coastguard Worker * 30*90e502c7SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 31*90e502c7SAndroid Build Coastguard Worker * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 32*90e502c7SAndroid Build Coastguard Worker * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 33*90e502c7SAndroid Build Coastguard Worker * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 34*90e502c7SAndroid Build Coastguard Worker * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 35*90e502c7SAndroid Build Coastguard Worker * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 36*90e502c7SAndroid Build Coastguard Worker * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 37*90e502c7SAndroid Build Coastguard Worker * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38*90e502c7SAndroid Build Coastguard Worker * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39*90e502c7SAndroid Build Coastguard Worker * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 40*90e502c7SAndroid Build Coastguard Worker * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 41*90e502c7SAndroid Build Coastguard Worker * OF THE POSSIBILITY OF SUCH DAMAGE. 42*90e502c7SAndroid Build Coastguard Worker * 43*90e502c7SAndroid Build Coastguard Worker */ 44*90e502c7SAndroid Build Coastguard Worker 45*90e502c7SAndroid Build Coastguard Worker #ifndef CRYPTO_ALLOC_H 46*90e502c7SAndroid Build Coastguard Worker #define CRYPTO_ALLOC_H 47*90e502c7SAndroid Build Coastguard Worker 48*90e502c7SAndroid Build Coastguard Worker #include "datatypes.h" 49*90e502c7SAndroid Build Coastguard Worker 50*90e502c7SAndroid Build Coastguard Worker #ifdef __cplusplus 51*90e502c7SAndroid Build Coastguard Worker extern "C" { 52*90e502c7SAndroid Build Coastguard Worker #endif 53*90e502c7SAndroid Build Coastguard Worker 54*90e502c7SAndroid Build Coastguard Worker /* 55*90e502c7SAndroid Build Coastguard Worker * srtp_crypto_alloc 56*90e502c7SAndroid Build Coastguard Worker * 57*90e502c7SAndroid Build Coastguard Worker * Allocates a block of memory of given size. The memory will be 58*90e502c7SAndroid Build Coastguard Worker * initialized to zero's. Free the memory with a call to srtp_crypto_free. 59*90e502c7SAndroid Build Coastguard Worker * 60*90e502c7SAndroid Build Coastguard Worker * returns pointer to memory on success or else NULL 61*90e502c7SAndroid Build Coastguard Worker */ 62*90e502c7SAndroid Build Coastguard Worker void *srtp_crypto_alloc(size_t size); 63*90e502c7SAndroid Build Coastguard Worker 64*90e502c7SAndroid Build Coastguard Worker /* 65*90e502c7SAndroid Build Coastguard Worker * srtp_crypto_free 66*90e502c7SAndroid Build Coastguard Worker * 67*90e502c7SAndroid Build Coastguard Worker * Frees the block of memory ptr previously allocated with 68*90e502c7SAndroid Build Coastguard Worker * srtp_crypto_alloc 69*90e502c7SAndroid Build Coastguard Worker */ 70*90e502c7SAndroid Build Coastguard Worker void srtp_crypto_free(void *ptr); 71*90e502c7SAndroid Build Coastguard Worker 72*90e502c7SAndroid Build Coastguard Worker #ifdef __cplusplus 73*90e502c7SAndroid Build Coastguard Worker } 74*90e502c7SAndroid Build Coastguard Worker #endif 75*90e502c7SAndroid Build Coastguard Worker 76*90e502c7SAndroid Build Coastguard Worker #endif /* CRYPTO_ALLOC_H */ 77