frm_types.h

来自「是一个手机功能的模拟程序」· C头文件 代码 · 共 406 行

H
406
字号
/* 
+------------------------------------------------------------------------------
|  File:       frm_types.h
+------------------------------------------------------------------------------
|  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 :  Definitions for the Frame
+----------------------------------------------------------------------------- 
*/ 

#ifndef FRM_TYPES_H
#define FRM_TYPES_H

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

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

/*==== TYPES ================================================================*/
 
/*
 * Type Definitions for Task Management 
 */
#define FRM_TASK_TABLE_ENTRY_SIZE     9
#define FRM_TIMCFG_TABLE_ENTRY_SIZE   2
#define FRM_DRV_TABLE_ENTRY_SIZE      5

#ifndef CONFIG_MODULE

#include "frm_ctrl.h" 

#else

typedef struct
{
  ULONG Entry [ FRM_TASK_TABLE_ENTRY_SIZE ];
} T_FRM_TASK_TABLE_ENTRY;

typedef struct
{
  ULONG Entry [ FRM_TIMCFG_TABLE_ENTRY_SIZE ];
} T_FRM_TIMCFG_TABLE_ENTRY;

typedef struct
{
  ULONG Entry [ FRM_DRV_TABLE_ENTRY_SIZE ];
} T_DRV_TABLE_ENTRY;

#define PRIMPOOL_0_SIZE     ((PRIMPART_0_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*PRIMPOOL_0_PARTITIONS)
#define PRIMPOOL_1_SIZE     ((PRIMPART_1_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*PRIMPOOL_1_PARTITIONS)
#define PRIMPOOL_2_SIZE     ((PRIMPART_2_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*PRIMPOOL_2_PARTITIONS)
#define PRIMPOOL_3_SIZE     ((PRIMPART_3_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*PRIMPOOL_3_PARTITIONS)
#define PRIMPOOL_4_SIZE     ((PRIMPART_4_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*PRIMPOOL_4_PARTITIONS)
#define PRIMPOOL_5_SIZE     ((PRIMPART_5_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*PRIMPOOL_5_PARTITIONS)

#define PRIMPOOL_0_OFFSET   0
#define PRIMPOOL_1_OFFSET   (PRIMPOOL_0_OFFSET + PRIMPOOL_0_SIZE)
#define PRIMPOOL_2_OFFSET   (PRIMPOOL_1_OFFSET + PRIMPOOL_1_SIZE)
#define PRIMPOOL_3_OFFSET   (PRIMPOOL_2_OFFSET + PRIMPOOL_2_SIZE)
#define PRIMPOOL_4_OFFSET   (PRIMPOOL_3_OFFSET + PRIMPOOL_3_SIZE)
#define PRIMPOOL_5_OFFSET   (PRIMPOOL_4_OFFSET + PRIMPOOL_4_SIZE)

#define PRIMGROUP_SIZE   		(PRIMPOOL_0_SIZE+PRIMPOOL_1_SIZE+PRIMPOOL_2_SIZE+\
                             PRIMPOOL_3_SIZE+PRIMPOOL_4_SIZE+PRIMPOOL_5_SIZE+\
                             POOL_OVERHEAD)

#define DMEMPOOL_0_SIZE     ((DMEMPART_0_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*DMEMPOOL_0_PARTITIONS)
#define DMEMPOOL_1_SIZE     ((DMEMPART_1_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*DMEMPOOL_1_PARTITIONS)
#define DMEMPOOL_2_SIZE     ((DMEMPART_2_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*DMEMPOOL_2_PARTITIONS)
#define DMEMPOOL_3_SIZE     ((DMEMPART_3_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*DMEMPOOL_3_PARTITIONS)
#define DMEMPOOL_4_SIZE     ((DMEMPART_4_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*DMEMPOOL_4_PARTITIONS)
#define DMEMPOOL_5_SIZE     ((DMEMPART_5_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*DMEMPOOL_5_PARTITIONS)

#define DMEMPOOL_0_OFFSET   0
#define DMEMPOOL_1_OFFSET   (DMEMPOOL_0_OFFSET + DMEMPOOL_0_SIZE)
#define DMEMPOOL_2_OFFSET   (DMEMPOOL_1_OFFSET + DMEMPOOL_1_SIZE)
#define DMEMPOOL_3_OFFSET   (DMEMPOOL_2_OFFSET + DMEMPOOL_2_SIZE)
#define DMEMPOOL_4_OFFSET   (DMEMPOOL_3_OFFSET + DMEMPOOL_3_SIZE)
#define DMEMPOOL_5_OFFSET   (DMEMPOOL_4_OFFSET + DMEMPOOL_4_SIZE)

#define _DMEMGROUP_SIZE   	(DMEMPOOL_0_SIZE+DMEMPOOL_1_SIZE+DMEMPOOL_2_SIZE+\
                             DMEMPOOL_3_SIZE+DMEMPOOL_4_SIZE+DMEMPOOL_5_SIZE+\
                             POOL_OVERHEAD)
#define DMEMGROUP_SIZE      (_DMEMGROUP_SIZE ? _DMEMGROUP_SIZE : 1)

#define TESTPOOL_0_SIZE     ((TESTPART_0_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*TESTPOOL_0_PARTITIONS)
#define TESTPOOL_1_SIZE     ((TESTPART_1_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*TESTPOOL_1_PARTITIONS)
#define TESTPOOL_2_SIZE     ((TESTPART_2_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*TESTPOOL_2_PARTITIONS)
#define TESTPOOL_3_SIZE     ((TESTPART_3_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*TESTPOOL_3_PARTITIONS)
#define TESTPOOL_4_SIZE     ((TESTPART_4_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*TESTPOOL_4_PARTITIONS)
#define TESTPOOL_5_SIZE     ((TESTPART_5_SIZE+PT_CHKOVERHEAD+PT_OVERHEAD)*TESTPOOL_5_PARTITIONS)

#define TESTPOOL_0_OFFSET   0
#define TESTPOOL_1_OFFSET   (TESTPOOL_0_OFFSET + TESTPOOL_0_SIZE)
#define TESTPOOL_2_OFFSET   (TESTPOOL_1_OFFSET + TESTPOOL_1_SIZE)
#define TESTPOOL_3_OFFSET   (TESTPOOL_2_OFFSET + TESTPOOL_2_SIZE)
#define TESTPOOL_4_OFFSET   (TESTPOOL_3_OFFSET + TESTPOOL_3_SIZE)
#define TESTPOOL_5_OFFSET   (TESTPOOL_4_OFFSET + TESTPOOL_4_SIZE)

#define TESTGROUP_SIZE   		(TESTPOOL_0_SIZE+TESTPOOL_1_SIZE+TESTPOOL_2_SIZE+\
                             TESTPOOL_3_SIZE+TESTPOOL_4_SIZE+TESTPOOL_5_SIZE+\
                             POOL_OVERHEAD)

/*
 * Evalute partition sizes that are next next number that can be divided by 4 
 * for the PRIMPOOLs
 */
#if (PRIM_PARTITION_0_SIZE%4 > 0)
#define PRIMPART_0_SIZE (PRIM_PARTITION_0_SIZE-((PRIM_PARTITION_0_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define PRIMPART_0_SIZE PRIM_PARTITION_0_SIZE
#endif

#if (PRIM_PARTITION_1_SIZE%4 > 0)
#define PRIMPART_1_SIZE (PRIM_PARTITION_1_SIZE-((PRIM_PARTITION_1_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define PRIMPART_1_SIZE PRIM_PARTITION_1_SIZE
#endif

#if (PRIM_PARTITION_2_SIZE%4 > 0)
#define PRIMPART_2_SIZE (PRIM_PARTITION_2_SIZE-((PRIM_PARTITION_2_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define PRIMPART_2_SIZE PRIM_PARTITION_2_SIZE
#endif

#if (PRIM_PARTITION_3_SIZE%4 > 0)
#define PRIMPART_3_SIZE (PRIM_PARTITION_3_SIZE-((PRIM_PARTITION_3_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define PRIMPART_3_SIZE PRIM_PARTITION_3_SIZE
#endif

#if (PRIM_PARTITION_4_SIZE%4 > 0)
#define PRIMPART_4_SIZE (PRIM_PARTITION_4_SIZE-((PRIM_PARTITION_4_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define PRIMPART_4_SIZE PRIM_PARTITION_4_SIZE
#endif

#if (PRIM_PARTITION_5_SIZE%4 > 0)
#define PRIMPART_5_SIZE (PRIM_PARTITION_5_SIZE-((PRIM_PARTITION_5_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define PRIMPART_5_SIZE PRIM_PARTITION_5_SIZE
#endif

/*
 * Evalute partition sizes that are next next number that can be divided by 4 
 * for the DMEMPOOLs
 */
#if (DMEM_PARTITION_0_SIZE%4 > 0)
#define DMEMPART_0_SIZE (DMEM_PARTITION_0_SIZE-((DMEM_PARTITION_0_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define DMEMPART_0_SIZE DMEM_PARTITION_0_SIZE
#endif

#if (DMEM_PARTITION_1_SIZE%4 > 0)
#define DMEMPART_1_SIZE (DMEM_PARTITION_1_SIZE-((DMEM_PARTITION_1_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define DMEMPART_1_SIZE DMEM_PARTITION_1_SIZE
#endif

#if (DMEM_PARTITION_2_SIZE%4 > 0)
#define DMEMPART_2_SIZE (DMEM_PARTITION_2_SIZE-((DMEM_PARTITION_2_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define DMEMPART_2_SIZE DMEM_PARTITION_2_SIZE
#endif

#if (DMEM_PARTITION_3_SIZE%4 > 0)
#define DMEMPART_3_SIZE (DMEM_PARTITION_3_SIZE-((DMEM_PARTITION_3_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define DMEMPART_3_SIZE DMEM_PARTITION_3_SIZE
#endif

#if (DMEM_PARTITION_4_SIZE%4 > 0)
#define DMEMPART_4_SIZE (DMEM_PARTITION_4_SIZE-((DMEM_PARTITION_4_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define DMEMPART_4_SIZE DMEM_PARTITION_4_SIZE
#endif

#if (DMEM_PARTITION_5_SIZE%4 > 0)
#define DMEMPART_5_SIZE (DMEM_PARTITION_5_SIZE-((DMEM_PARTITION_5_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define DMEMPART_5_SIZE DMEM_PARTITION_5_SIZE
#endif

/*
 * Evalute partition sizes that are next next number that can be divided by 4 
 * for the TESTPOOLs
 */
#if (TEST_PARTITION_0_SIZE%4 > 0)
#define TESTPART_0_SIZE (TEST_PARTITION_0_SIZE-((TEST_PARTITION_0_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define TESTPART_0_SIZE TEST_PARTITION_0_SIZE
#endif

#if (TEST_PARTITION_1_SIZE%4 > 0)
#define TESTPART_1_SIZE (TEST_PARTITION_1_SIZE-((TEST_PARTITION_1_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define TESTPART_1_SIZE TEST_PARTITION_1_SIZE
#endif

#if (TEST_PARTITION_2_SIZE%4 > 0)
#define TESTPART_2_SIZE (TEST_PARTITION_2_SIZE-((TEST_PARTITION_2_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define TESTPART_2_SIZE TEST_PARTITION_2_SIZE
#endif

#if (TEST_PARTITION_3_SIZE%4 > 0)
#define TESTPART_3_SIZE (TEST_PARTITION_3_SIZE-((TEST_PARTITION_3_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define TESTPART_3_SIZE TEST_PARTITION_3_SIZE
#endif

#if (TEST_PARTITION_4_SIZE%4 > 0)
#define TESTPART_4_SIZE (TEST_PARTITION_4_SIZE-((TEST_PARTITION_4_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define TESTPART_4_SIZE TEST_PARTITION_4_SIZE
#endif

#if (TEST_PARTITION_5_SIZE%4 > 0)
#define TESTPART_5_SIZE (TEST_PARTITION_5_SIZE-((TEST_PARTITION_5_SIZE)%sizeof(ULONG))+sizeof(ULONG))
#else
#define TESTPART_5_SIZE TEST_PARTITION_5_SIZE
#endif

#if PRIM_PARTITION_5_SIZE > 0
 #define NUM_OF_PRIM_POOLS  6
 #define MAX_PRIMPART_SIZE  PRIMPART_5_SIZE
#elif PRIM_PARTITION_4_SIZE > 0
 #undef NUM_OF_PRIM_POOLS
 #define NUM_OF_PRIM_POOLS  5
 #undef MAX_PRIMPART_SIZE
 #define MAX_PRIMPART_SIZE  PRIMPART_4_SIZE
#elif PRIM_PARTITION_3_SIZE > 0
 #undef NUM_OF_PRIM_POOLS
 #define NUM_OF_PRIM_POOLS  4
 #undef MAX_PRIMPART_SIZE
 #define MAX_PRIMPART_SIZE  PRIMPART_3_SIZE
#elif PRIM_PARTITION_2_SIZE > 0
 #undef NUM_OF_PRIM_POOLS
 #define NUM_OF_PRIM_POOLS  3
 #undef MAX_PRIMPART_SIZE
 #define MAX_PRIMPART_SIZE  PRIMPART_2_SIZE
#elif PRIM_PARTITION_1_SIZE > 0
 #undef NUM_OF_PRIM_POOLS
 #define NUM_OF_PRIM_POOLS  2
 #undef MAX_PRIMPART_SIZE
 #define MAX_PRIMPART_SIZE  PRIMPART_1_SIZE
#elif PRIM_PARTITION_0_SIZE > 0
 #undef NUM_OF_PRIM_POOLS
 #define NUM_OF_PRIM_POOLS  1
 #undef MAX_PRIMPART_SIZE
 #define MAX_PRIMPART_SIZE  PRIMPART_0_SIZE
#else 
 #undef NUM_OF_PRIM_POOLS
 #define NUM_OF_PRIM_POOLS  0
#endif

#if DMEM_PARTITION_5_SIZE > 0
 #define NUM_OF_DMEM_POOLS  6
#elif DMEM_PARTITION_4_SIZE > 0
 #undef NUM_OF_DMEM_POOLS
 #define NUM_OF_DMEM_POOLS  5
#elif DMEM_PARTITION_3_SIZE > 0
 #undef NUM_OF_DMEM_POOLS
 #define NUM_OF_DMEM_POOLS  4
#elif DMEM_PARTITION_2_SIZE > 0
 #undef NUM_OF_DMEM_POOLS
 #define NUM_OF_DMEM_POOLS  3
#elif DMEM_PARTITION_1_SIZE > 0
 #undef NUM_OF_DMEM_POOLS
 #define NUM_OF_DMEM_POOLS  2
#elif DMEM_PARTITION_0_SIZE > 0
 #undef NUM_OF_DMEM_POOLS
 #define NUM_OF_DMEM_POOLS  1
#else 
 #undef NUM_OF_DMEM_POOLS
 #define NUM_OF_DMEM_POOLS  1
#endif

#if TEST_PARTITION_5_SIZE > 0
 #define NUM_OF_TEST_POOLS  6
#elif TEST_PARTITION_4_SIZE > 0
 #undef NUM_OF_TEST_POOLS
 #define NUM_OF_TEST_POOLS  5
#elif TEST_PARTITION_3_SIZE > 0
 #undef NUM_OF_TEST_POOLS
 #define NUM_OF_TEST_POOLS  4
#elif TEST_PARTITION_2_SIZE > 0
 #undef NUM_OF_TEST_POOLS
 #define NUM_OF_TEST_POOLS  3
#elif TEST_PARTITION_1_SIZE > 0
 #undef NUM_OF_TEST_POOLS
 #define NUM_OF_TEST_POOLS  2
#elif TEST_PARTITION_0_SIZE > 0
 #undef NUM_OF_TEST_POOLS
 #define NUM_OF_TEST_POOLS  1
#else 
 #undef NUM_OF_TEST_POOLS
 #define NUM_OF_TEST_POOLS  0
#endif

#define NUM_OF_PPM_POOLS        (MAX_POOL_GROUPS*MAX_POOLS_PER_GROUP)

#define NUM_OF_PPM_PARTITIONS   (PRIMPOOL_0_PARTITIONS + PRIMPOOL_1_PARTITIONS+\
                                 PRIMPOOL_2_PARTITIONS + PRIMPOOL_3_PARTITIONS+\
                                 PRIMPOOL_4_PARTITIONS + PRIMPOOL_5_PARTITIONS+\
                                 DMEMPOOL_0_PARTITIONS + DMEMPOOL_1_PARTITIONS+\
                                 DMEMPOOL_2_PARTITIONS + DMEMPOOL_3_PARTITIONS+\
                                 DMEMPOOL_4_PARTITIONS + DMEMPOOL_5_PARTITIONS)

#define NUM_OF_PPM_RANGES        (MAX_POOL_GROUPS*MAX_POOLS_PER_GROUP*RANGES_PER_POOL)

#endif /* CONFIG_MODULE */

typedef struct                                         
{
  ULONG  PartitionSize;		
  USHORT NumOfPartitions;
  void *PoolAddress;
} T_PARTITION_POOL_CONFIG;

typedef struct
{
  char *Name;
  USHORT ppm;
  USHORT UsedPools;
  T_HANDLE *PoolGroupHandle;
  T_PARTITION_POOL_CONFIG PoolConfig [ MAX_POOLS_PER_GROUP+1 ];
} T_PARTITION_POOL_GROUP_CONFIG;

typedef struct                                         
{
  char *Name;
  ULONG  Size;		
  UBYTE  *PoolAddress;
} T_MEMORY_POOL_CONFIG;

typedef struct                                         
{
  T_HANDLE              *PoolHandle;
  T_MEMORY_POOL_CONFIG  *PoolConfig;
} T_MEMORY_POOL_PARAMETER;

typedef SHORT T_PEI_CREATE ( T_PEI_INFO const **Info );

typedef struct
{
  T_PEI_CREATE *PeiCreate;
  char         *Name;
  int          Priority;
} T_COMPONENT_ADDRESS;


#ifdef MEMORY_SUPERVISION

typedef struct                                         
{
  ULONG 	Total;		             /* total number of elements */
  ULONG 	Current;		           /* current number of elements */
  ULONG 	Maximum;	             /* maximum number of elements */
  ULONG 	MaxByteMemory;         /* number of allocated bytes at maximum of elements */
  ULONG 	MaxPartMemory;         /* number of allocated partitions at maximum of elements */
} T_COUNTER;

typedef struct                                         
{
  ULONG 	UsedSize;		           /* size of stored primitive */
  ULONG   RequestedSize;         /* requested size during allocation */
  ULONG   time;                  /* time when partition is touched */
  USHORT  Status;   	           /* status of partition */
  T_HANDLE owner;
 	ULONG   PrimOPC;	             /* opc of primitive that uses this partition */
  void    *ptr;
  const char    *Userfile;	     /* file that accesses partition */
  int    Line;		               /* line where partition is accessed */
} T_PARTITION_STATUS; 

typedef struct                                         
{
  ULONG   PrimOPC;	             /* opc of primitive that does not fit in partition */
  const char    *Userfile;	     /* file that access partition */
  int  Line;		                 /* line where partition is accessed */
} T_OVERSIZE_STATUS;

typedef struct                                         
{
  T_PARTITION_STATUS	*PartitionStatus;
  T_OVERSIZE_STATUS  	*PartitionOversize;
  T_COUNTER	          *PartitionCounter;
#ifdef OPTIMIZE_POOL
  T_COUNTER          	*ByteCounter;
  T_COUNTER          	*RangeCounter;
#endif /* OPTIMIZE_POOL */
} T_PARTITION_POOL_STATUS;

#endif

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?