view src/condat2/com/src/config/gsmcomp.c @ 581:a0a45c5eb3ef

gsmcomp.c: bumping trace partition size to 220 like in gprscomp.c This change is safe in terms of RAM usage because all of these partition pools have already been moved from XRAM to IRAM earlier, and our IRAM usage in VO configs is currently quite low - the one near the limit is XRAM on C11x.
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 29 Jan 2019 03:52:49 +0000
parents 8a2aa6b8aed8
children
line wrap: on
line source

/*
+-----------------------------------------------------------------------------
|  Project :
|  Modul   :
+-----------------------------------------------------------------------------
|  Copyright 2002 Texas Instruments Berlin, AG
|                 All rights reserved.
|
|                 This file is confidential and a trade secret of Texas
|                 Instruments Berlin, AG
|                 The receipt of or possession of this file does not convey
|                 any rights to reproduce or disclose its contents or to
|                 manufacture, use, or sell anything it may describe, in
|                 whole, or in part, without the specific written consent of
|                 Texas Instruments Berlin, AG.
+-----------------------------------------------------------------------------
|  Purpose :  Component Table for GSM
+-----------------------------------------------------------------------------
*/


#ifndef NEW_ENTITY
#define NEW_ENTITY
#endif

/*==== INCLUDES ===================================================*/

#include "nucleus.h"
#include "typedefs.h"
#include "os.h"
#include "vsi.h"
#include "pei.h"
#include "gsmconst.h"
#include "frm_defs.h"
#include "frm_types.h"
#include "frm_glob.h"
#include "os_types.h"
#include "os_glob.h"

/*==== CONSTANTS ==================================================*/


/*==== EXTERNALS ==================================================*/

extern SHORT tstrcv_pei_create(T_PEI_INFO const **Info);
extern SHORT tstsnd_pei_create(T_PEI_INFO const **Info);
extern SHORT aci_pei_create   (T_PEI_INFO const **Info);
extern SHORT cst_pei_create   (T_PEI_INFO const **Info);
extern SHORT sim_pei_create   (T_PEI_INFO const **Info);
extern SHORT sms_pei_create   (T_PEI_INFO const **Info);
extern SHORT cc_pei_create    (T_PEI_INFO const **Info);
extern SHORT ss_pei_create    (T_PEI_INFO const **Info);
extern SHORT mm_pei_create    (T_PEI_INFO const **Info);
extern SHORT rr_pei_create    (T_PEI_INFO const **Info);
extern SHORT dl_pei_create    (T_PEI_INFO const **Info);
extern SHORT pl_pei_create    (T_PEI_INFO const **Info);
#ifdef FAX_AND_DATA
extern SHORT l2r_pei_create   (T_PEI_INFO const **Info);
extern SHORT rlp_pei_create   (T_PEI_INFO const **Info);
extern SHORT fad_pei_create   (T_PEI_INFO const **Info);
extern SHORT t30_pei_create   (T_PEI_INFO const **Info);
#endif /* FAX_AND_DATA */
#ifdef UART
extern SHORT uart_pei_create  (T_PEI_INFO const **Info);
#endif/*UART*/
#ifdef BT_ADAPTER
extern SHORT bti_pei_create ( T_PEI_INFO const **Info);
#endif /* BT_ADAPTER */

#ifdef FF_EOTD
extern SHORT lc_pei_create    (T_PEI_INFO const **Info);
extern SHORT rrlp_pei_create  (T_PEI_INFO const **Info);
#endif /* FF_EOTD */

#ifdef CO_UDP_IP
extern SHORT udp_pei_create   (T_PEI_INFO const **Info);
extern SHORT ip_pei_create    (T_PEI_INFO const **Info);
#endif

#if defined (FF_WAP) || defined (FF_SAT_E)
extern SHORT ppp_pei_create ( T_PEI_INFO const **Info);
#endif /* FF_WAP || FF_SAT_E */

#ifdef FF_WAP
#ifndef UDP_NO_WAP
extern SHORT wap_pei_create   (T_PEI_INFO const **Info);
#endif /* UDP_NO_WAP */
#endif /* FF_WAP */

#ifndef _TARGET_
extern SHORT psi_pei_create    (T_PEI_INFO const **Info);
#ifdef FAX_AND_DATA
extern SHORT ra_pei_create    (T_PEI_INFO const **Info);
#endif
#endif

#ifdef _TARGET_
extern SHORT l1_pei_create    (T_PEI_INFO const **Info);
#endif
/*==== VARIABLES ==================================================*/

#ifndef _TARGET_
BOOL newTstHeader = TRUE;
#endif

#ifndef DATA_INT_RAM

const T_COMPONENT_ADDRESS tstrcv_list[] =
{
  { tstrcv_pei_create,   NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS tstsnd_list[] =
{
  { tstsnd_pei_create,   NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS mmi_list[] =
{
  { aci_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS cst_list[] =
{
  { cst_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS sim_list[] =
{
  { sim_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS cm_list[] =
{
  { sms_pei_create,      NULL,   ASSIGNED_BY_TI },
  { cc_pei_create,       NULL,   ASSIGNED_BY_TI },
  { ss_pei_create,       NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   (int)"CM" }
};

const T_COMPONENT_ADDRESS mm_list[] =
{
  { mm_pei_create,       NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS rr_list[] =
{
  { rr_pei_create,       NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS dl_list[] =
{
  { dl_pei_create,       NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS pl_list[] =
{
  { pl_pei_create,       NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

#ifdef FAX_AND_DATA
const T_COMPONENT_ADDRESS l2rt30_list[] =
{
  { l2r_pei_create,      NULL,   ASSIGNED_BY_TI },
  { t30_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   (int) "L2RT30" }
};

const T_COMPONENT_ADDRESS rlpfad_list[] =
{
  { rlp_pei_create,      NULL,   ASSIGNED_BY_TI },
  { fad_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   (int) "RLPFAD"}
};

#ifndef _TARGET_
const T_COMPONENT_ADDRESS ra_list[] =
{
  { ra_pei_create,       NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};
#endif /* !_TARGET_ */
#endif /* FAX_AND_DATA */

#ifndef _TARGET_
#ifdef FF_TCP_IP
const T_COMPONENT_ADDRESS aaa_list[] =
{
  { NULL,                "AAA",  ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};
#endif /* FF_TCP_IP */
#endif /* !_TARGET_ */

#ifndef _TARGET_
#ifdef FF_PSI
const T_COMPONENT_ADDRESS psi_list[] =
{
  { psi_pei_create,      NULL,  ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};
#endif /*FF_PSI*/
#endif /* !_TARGET_ */

#ifdef UART
const T_COMPONENT_ADDRESS uart_list[] =
{
  { uart_pei_create,     NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};
#endif /*UART*/

#ifdef FF_EOTD
const T_COMPONENT_ADDRESS eotd_list[] =
{
  { lc_pei_create,       NULL,   ASSIGNED_BY_TI },
  { rrlp_pei_create,     NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   (int)"EOTD" }
};
#endif /* FF_EOTD */


#ifdef FF_WAP
#ifndef UDP_NO_WAP
const T_COMPONENT_ADDRESS wap_list[] =
{
  { wap_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};
#endif /* UDP_NO_WAP */
#endif /* FF_WAP */

#ifdef CO_UDP_IP
const T_COMPONENT_ADDRESS udp_list[] =
{
  { udp_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS ip_list[] =
{
  { ip_pei_create,       NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};
#endif

#if defined (FF_WAP) || defined (FF_SAT_E)
const T_COMPONENT_ADDRESS ppp_list[] =
{
  { ppp_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};
#endif /* FF_WAP || FF_SAT_E */

 #ifdef BT_ADAPTER
const T_COMPONENT_ADDRESS bti_list[] =
{
  { bti_pei_create,      NULL,   ASSIGNED_BY_TI },
  { NULL,                NULL,   0 }
};
#endif /* BT_ADAPTER */

const T_COMPONENT_ADDRESS l1_list[] =
{
#ifdef _TARGET_
  { l1_pei_create,       NULL,    ASSIGNED_BY_TI },
#else
  { NULL,                "L1",   ASSIGNED_BY_TI },
#endif
  { NULL,                NULL,   0 }
};

const T_COMPONENT_ADDRESS * const ComponentTables[]=
{
  tstrcv_list,
  tstsnd_list,
  mmi_list,
  cst_list,
  sim_list,
  cm_list,
  mm_list,
  rr_list,
  dl_list,
  pl_list,
#ifdef FAX_AND_DATA
  l2rt30_list,
  rlpfad_list,
#ifndef _TARGET_
  ra_list,
#endif
#endif /* FAX_AND_DATA */
#ifndef _TARGET_
#ifdef FF_TCP_IP
  aaa_list,
#endif /* FF_TCP_IP */
#ifdef FF_PSI
  psi_list,
#endif /*FF_PSI*/
#endif /* !_TARGET_ */
#ifdef UART
  uart_list,
#endif
#ifdef FF_EOTD
  eotd_list,
#endif
#ifdef FF_WAP
#ifndef UDP_NO_WAP
  wap_list,
#endif /* !UDP_NO_WAP */
#endif /* FF_WAP */

#ifdef CO_UDP_IP
  udp_list,
  ip_list,
#endif /* CO_UDP_IP */
#if defined (FF_WAP) || defined (FF_SAT_E)
  ppp_list,
#endif /* FF_WAP || FF_SAT_E */

#ifdef BT_ADAPTER
  bti_list,
#endif /* BT_ADAPTER */
  l1_list,
  NULL
};

/*==== VERSIONS ===================================================*/
#ifndef CTRACE
  char * str2ind_version = "&0";
#endif

#endif	/* IRAM vs XRAM */

  /*==== MEMORY CONFIGURATION =======================================*/

/*
 * Partitions pool configuration for primitive communication
 */
#ifdef FAX_AND_DATA

#define PRIM_PARTITION_0_SIZE     52
#define PRIM_PARTITION_1_SIZE    100
#define PRIM_PARTITION_2_SIZE    432
#define PRIM_PARTITION_3_SIZE   1600
#define PRIM_PARTITION_4_SIZE      0
#define PRIM_PARTITION_5_SIZE      0

#define PRIMPOOL_0_PARTITIONS     80
#define PRIMPOOL_1_PARTITIONS     20
#define PRIMPOOL_2_PARTITIONS     30
#define PRIMPOOL_3_PARTITIONS      3
#define PRIMPOOL_4_PARTITIONS      0
#define PRIMPOOL_5_PARTITIONS      0

#else
/* no fax and data */
#define PRIM_PARTITION_0_SIZE     52
#define PRIM_PARTITION_1_SIZE    100
#define PRIM_PARTITION_2_SIZE    216 /* New */
#define PRIM_PARTITION_3_SIZE    260 /* sizeof (T_stk_cmd), do we need this? */
#define PRIM_PARTITION_4_SIZE    432
#define PRIM_PARTITION_5_SIZE   1600 /* FreeCalypso raised from 900 */

#define PRIMPOOL_0_PARTITIONS     80
#define PRIMPOOL_1_PARTITIONS     20
#ifdef TI_PS_UICC_CHIPSET_15
#define PRIMPOOL_2_PARTITIONS      6 /*  0 */
#else
#define PRIMPOOL_2_PARTITIONS      5 /*  0 */
#endif

#define PRIMPOOL_3_PARTITIONS      6 /*  0 */ /* Number to be optimized */ 

/*
 * FreeCalypso change: bumping the number of 432-byte partitions in the
 * voice-only config from 5 or 6 to 10.  Our FreeCalypso code appears to
 * work with the original smaller config, but this warning is seen:

SYSTEM WARNING: Bigger partition allocated than requested, entity SIM, Size 288

 * SIM's request for size 288 will normally be allocated out of the 432 pool,
 * but the next size up is the rare big one (used to be 900, we bumped it up
 * to 1600), and wasting those is bad.  So let's give it some more 432-byte
 * partitions.  (See the FAX_AND_DATA config above for comparison.)
 */

#define PRIMPOOL_4_PARTITIONS      10

#define PRIMPOOL_5_PARTITIONS      3 /* FreeCalypso raised from 2 */

#endif /* else, #ifdef FAX_AND_DATA */


#ifndef DATA_INT_RAM
#ifdef FAX_AND_DATA
unsigned int MaxPrimPartSize = PRIM_PARTITION_3_SIZE;
#else
unsigned int MaxPrimPartSize = PRIM_PARTITION_5_SIZE;
#endif
#endif /* !DATA_INT_RAM */

#if (!defined DATA_EXT_RAM && defined PRIM_0_INT_RAM) || (!defined DATA_INT_RAM && !defined PRIM_0_INT_RAM)
char pool10 [ POOL_SIZE(PRIMPOOL_0_PARTITIONS,ALIGN_SIZE(PRIM_PARTITION_0_SIZE)) ];
#else
extern char pool10 [];
#endif

#if (!defined DATA_EXT_RAM && defined PRIM_1_INT_RAM) || (!defined DATA_INT_RAM && !defined PRIM_1_INT_RAM)
char pool11 [ POOL_SIZE(PRIMPOOL_1_PARTITIONS,ALIGN_SIZE(PRIM_PARTITION_1_SIZE)) ];
#else
extern char pool11 [];
#endif

#if (!defined DATA_EXT_RAM && defined PRIM_2_INT_RAM) || (!defined DATA_INT_RAM && !defined PRIM_2_INT_RAM)
char pool12 [ POOL_SIZE(PRIMPOOL_2_PARTITIONS,ALIGN_SIZE(PRIM_PARTITION_2_SIZE)) ];
#else
extern char pool12 [];
#endif

#if (!defined DATA_EXT_RAM && defined PRIM_3_INT_RAM) || (!defined DATA_INT_RAM && !defined PRIM_3_INT_RAM)
char pool13 [ POOL_SIZE(PRIMPOOL_3_PARTITIONS,ALIGN_SIZE(PRIM_PARTITION_3_SIZE)) ];
#else
extern char pool13 [];
#endif

#ifndef FAX_AND_DATA
#if (!defined DATA_EXT_RAM && defined PRIM_4_INT_RAM) || (!defined DATA_INT_RAM && !defined PRIM_4_INT_RAM)
char pool14 [ POOL_SIZE(PRIMPOOL_4_PARTITIONS,ALIGN_SIZE(PRIM_PARTITION_4_SIZE)) ];
#else
extern char pool14 [];
#endif

#if (!defined DATA_EXT_RAM && defined PRIM_5_INT_RAM) || (!defined DATA_INT_RAM && !defined PRIM_5_INT_RAM)
char pool15 [ POOL_SIZE(PRIMPOOL_5_PARTITIONS,ALIGN_SIZE(PRIM_PARTITION_5_SIZE)) ];
#else
extern char pool15 [];
#endif
#endif /* FAX_AND_DATA */


#ifndef DATA_INT_RAM
const T_FRM_PARTITION_POOL_CONFIG prim_grp_config[] =
{
  { PRIMPOOL_0_PARTITIONS, ALIGN_SIZE(PRIM_PARTITION_0_SIZE), &pool10 },
  { PRIMPOOL_1_PARTITIONS, ALIGN_SIZE(PRIM_PARTITION_1_SIZE), &pool11 },
  { PRIMPOOL_2_PARTITIONS, ALIGN_SIZE(PRIM_PARTITION_2_SIZE), &pool12 },
  { PRIMPOOL_3_PARTITIONS, ALIGN_SIZE(PRIM_PARTITION_3_SIZE), &pool13 },
#ifndef FAX_AND_DATA
  { PRIMPOOL_4_PARTITIONS, ALIGN_SIZE(PRIM_PARTITION_4_SIZE), &pool14 },
  { PRIMPOOL_5_PARTITIONS, ALIGN_SIZE(PRIM_PARTITION_5_SIZE), &pool15 },
#endif
  { 0                    , 0                    , NULL	  }
};
#endif /* !DATA_INT_RAM */

/*
 * Partitions pool configuration for test interface communication
 *
 * FreeCalypso change: the values we got in the version of this gsmcomp.c
 * source file in our copy of TCS211 were shrunk way too small,
 * so we are going to use the more reasonable config from our
 * first gsm-fw project, which is also apparently what TI had originally,
 * and closer to what we use in the GPRS-enabled config.
 */
#define TESTPOOL_0_PARTITIONS     10	/* was 1 */
#define TESTPOOL_1_PARTITIONS     50	/* was 15 */
#define TESTPOOL_2_PARTITIONS      2	/* was 0 */

#define TSTSND_QUEUE_ENTRIES         (TESTPOOL_0_PARTITIONS+TESTPOOL_1_PARTITIONS+TESTPOOL_2_PARTITIONS)
#define TSTRCV_QUEUE_ENTRIES         50

#define TEST_PARTITION_0_SIZE     80	/* was 16 */
#ifdef _TARGET_
  #define TEST_PARTITION_1_SIZE  220	/* FreeCalypso: up from TI's 160 */
#else
  #define TEST_PARTITION_1_SIZE  260
#endif /* else, #ifdef _TARGET_ */

#define TEST_PARTITION_2_SIZE      1600

#ifndef DATA_INT_RAM
const USHORT TST_SndQueueEntries    = TSTSND_QUEUE_ENTRIES;
const USHORT TST_RcvQueueEntries    = TSTRCV_QUEUE_ENTRIES;
const USHORT TextTracePartitionSize = TEST_PARTITION_1_SIZE;
#endif /* !DATA_INT_RAM */

#if (!defined DATA_EXT_RAM && defined TEST_0_INT_RAM) || (!defined DATA_INT_RAM && !defined TEST_0_INT_RAM)
char pool20 [ POOL_SIZE(TESTPOOL_0_PARTITIONS,ALIGN_SIZE(TEST_PARTITION_0_SIZE)) ];
#else
extern char pool20 [];
#endif

#if (!defined DATA_EXT_RAM && defined TEST_1_INT_RAM) || (!defined DATA_INT_RAM && !defined TEST_1_INT_RAM)
char pool21 [ POOL_SIZE(TESTPOOL_1_PARTITIONS,ALIGN_SIZE(TEST_PARTITION_1_SIZE)) ];
#else
extern char pool21 [];
#endif

#if (!defined DATA_EXT_RAM && defined TEST_2_INT_RAM) || (!defined DATA_INT_RAM && !defined TEST_2_INT_RAM)
char pool22 [ POOL_SIZE(TESTPOOL_2_PARTITIONS,ALIGN_SIZE(TEST_PARTITION_2_SIZE)) ];
#else
extern char pool22 [];
#endif

#ifndef DATA_INT_RAM
const T_FRM_PARTITION_POOL_CONFIG test_grp_config[] =
{
  { TESTPOOL_0_PARTITIONS, ALIGN_SIZE(TEST_PARTITION_0_SIZE), &pool20 },
  { TESTPOOL_1_PARTITIONS, ALIGN_SIZE(TEST_PARTITION_1_SIZE), &pool21 },
  { TESTPOOL_2_PARTITIONS, ALIGN_SIZE(TEST_PARTITION_2_SIZE), &pool22 },
  { 0                    , 0                    , NULL	  }
};
#endif /* !DATA_INT_RAM */

/*
 * Partitions pool configuration for general purpose allocation
 */

#define DMEM_PARTITION_0_SIZE     16 /* 100 */

/*
 * CQ 29245: Value of the DMEMPOOL_0_PARTITIONS has been modified from 30 to 50
 */

#define DMEMPOOL_0_PARTITIONS     50 /* 10 */ /* In GPRS this is 70 */

#if (!defined DATA_EXT_RAM && defined DMEM_0_INT_RAM) || (!defined DATA_INT_RAM && !defined DMEM_0_INT_RAM)
char pool30 [ POOL_SIZE(DMEMPOOL_0_PARTITIONS,ALIGN_SIZE(DMEM_PARTITION_0_SIZE)) ];
#else
extern char pool30 [];
#endif

#ifndef DATA_INT_RAM
const T_FRM_PARTITION_POOL_CONFIG dmem_grp_config[] =
{
  { DMEMPOOL_0_PARTITIONS, ALIGN_SIZE(DMEM_PARTITION_0_SIZE), &pool30 },
  { 0                    , 0                    , NULL	  }
};
#endif /* !DATA_INT_RAM */

/*
 * Partitions group list
 */

#ifndef DATA_INT_RAM
const T_FRM_PARTITION_GROUP_CONFIG partition_grp_config[MAX_POOL_GROUPS+1] =
{
  { "PRIM", &prim_grp_config[0] },
  { "TEST", &test_grp_config[0] },
  { "DMEM", &dmem_grp_config[0] },
  { NULL,   NULL                }
};

extern T_HANDLE PrimGroupHandle;
extern T_HANDLE DmemGroupHandle;
extern T_HANDLE TestGroupHandle;

T_HANDLE *PoolGroupHandle[MAX_POOL_GROUPS+1] =
{
  &PrimGroupHandle,
  &TestGroupHandle,
  &DmemGroupHandle,
  NULL
};
#endif /* !DATA_INT_RAM */

/*
 * Dynamic Memory Pool Configuration
 */

/* Detecting GSM only lite to compile using minimal settings */
#if !defined(FAX_AND_DATA) && !defined(FF_TCP_IP) && !defined(FF_EOTD) &&\
    !defined(FF_WAP) && !defined(BT_ADAPTER)
#define GO_LITE 1
#endif

#if defined(_TARGET_) && defined(GO_LITE)
#define EXT_DATA_POOL_PS_BASE_SIZE 28000 /* FreeCalypso bumped up from 23075 */
#else /* _TARGET_ && GO_LITE */
#define EXT_DATA_POOL_PS_BASE_SIZE 50000
#endif /* _TARGET_ && GO_LITE */

#undef GO_LITE /* We are not going to use this definition globally */

#ifdef MEMORY_SUPERVISION
 #define EXT_DATA_POOL_PPS_ADDITION ((EXT_DATA_POOL_PS_BASE_SIZE>>3)+10000)
#else  /* MEMORY_SUPERVISION */
 #define EXT_DATA_POOL_PPS_ADDITION 0
#endif /* MEMORY_SUPERVISION */

#ifdef FAX_AND_DATA
 #define EXT_DATA_POOL_FD_ADDITION 13000
#else  /* FAX_AND_DATA */
 #define EXT_DATA_POOL_FD_ADDITION 0
#endif /* FAX_AND_DATA */

#if defined (FF_WAP) || defined (FF_SAT_E)
 #define EXT_DATA_POOL_WAP_ADDITION 5000
#else  /* FF_WAP || FF_SAT_E */
 #define EXT_DATA_POOL_WAP_ADDITION 0
#endif /* FF_WAP || FF_SAT_E */

#define EXT_DATA_POOL_PS_SIZE   (EXT_DATA_POOL_PS_BASE_SIZE + EXT_DATA_POOL_PPS_ADDITION + EXT_DATA_POOL_FD_ADDITION + EXT_DATA_POOL_WAP_ADDITION)
#define INT_DATA_POOL_PS_SIZE   1   /* no distinction between external/internal RAM for GO/GOLite builds */

#define EXT_DATA_POOL_GPF_SIZE  (2048 + OS_QUEUE_ENTRY_SIZE(TSTSND_QUEUE_ENTRIES) + OS_QUEUE_ENTRY_SIZE(TSTRCV_QUEUE_ENTRIES))

#define EXT_DATA_POOL_SIZE      (EXT_DATA_POOL_PS_SIZE + EXT_DATA_POOL_GPF_SIZE)
#define INT_DATA_POOL_SIZE      (INT_DATA_POOL_PS_SIZE)

#ifndef DATA_INT_RAM
char ext_data_pool              [ EXT_DATA_POOL_SIZE ];
#endif

#ifndef DATA_INT_RAM

const T_MEMORY_POOL_CONFIG memory_pool_config[MAX_MEMORY_POOLS+1] =
{
  { "EXTPOOL", EXT_DATA_POOL_SIZE, &ext_data_pool[0] },
  {  NULL }
};

extern T_HANDLE ext_data_pool_handle;

T_HANDLE *MemoryPoolHandle[MAX_MEMORY_POOLS+1] =
{
  &ext_data_pool_handle,
  NULL
};

#endif /* !DATA_INT_RAM */