Files
asterisk/addons/ooh323c/src/memheap.h
Alexandr Anikin 9530310954 Reworked chan_ooh323 channel module.
Many architectural and functional changes.
Main changes are threading model chanes (many thread in ooh323 stack
instead of one), modifications and improvements in signalling part,
additional codecs support (726, speex), t38 mode support.
This module tested and used in production environment.

(closes issue #15285)
Reported by: may213
Tested by: sles, c0w, OrNix

Review: https://reviewboard.asterisk.org/r/324/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227898 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-11-04 22:10:44 +00:00

63 lines
1.8 KiB
C

/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
#ifndef __RTMEMHEAP_HH__
#define __RTMEMHEAP_HH__
#include "ooasn1.h"
/* internal heap flags */
#define RT_MH_INTERNALMASK 0xF0000000u
#define RT_MH_FREEHEAPDESC 0x10000000u
typedef struct OSMemLink {
struct OSMemLink* pnext;
struct OSMemLink* pprev;
struct OSMemLink* pnextRaw; /* next RAW block */
void* pMemBlk;
ASN1OCTET blockType; /* 1 = standard, 2 = raw (see RTMEM* flags) */
} OSMemLink;
/* MemLink blockTypes */
#define RTMEMSTD 0x0001
#define RTMEMRAW 0x0002
#define RTMEMMALLOC 0x0004
#define RTMEMSAVED 0x0008
#define RTMEMLINK 0x0010 /* contains MemLink */
/* ASN.1 memory allocation structures */
typedef struct OSMemHeap {
OSMemLink* phead;
ASN1UINT usedUnits;
ASN1UINT usedBlocks;
ASN1UINT freeUnits;
ASN1UINT freeBlocks;
ASN1UINT keepFreeUnits;
ASN1UINT defBlkSize;
ASN1UINT refCnt;
ASN1UINT flags;
ast_mutex_t pLock;
} OSMemHeap;
/* see rtMemDefs.c file */
extern ASN1UINT g_defBlkSize;
extern OSMallocFunc g_malloc_func;
extern OSReallocFunc g_realloc_func;
extern OSFreeFunc g_free_func;
#endif /* __RTMEMHEAP_HH__ */