seg_data.c

来自「澳洲人写的Cortex,包括uC_IP协议栈」· C语言 代码 · 共 146 行

C
146
字号
<HTML><HEAD><TITLE>/home/asysweb/public_html/cortex/kernel/src/seg_data.c</TITLE></HEAD><BODY><pre><font color="#6920ac">/*************************************************************************/</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/*     Copyright (c) 1997-1999 Australian Real Time Embedded Systems     */</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/* PROPRIETARY RIGHTS of Australian Real Time Embedded Systems           */</font><font color="#6920ac">/* are involved in the subject matter of this material. All reproduction,*/</font><font color="#6920ac">/* manufacturing, use, and sales rights pertaining to this subject matter*/</font><font color="#6920ac">/* are governed by the license agreement. The recipient of this software */</font><font color="#6920ac">/* implicitly accepts the terms of the license.                          */</font><font color="#6920ac">/*                                                                       */</font><font color="#6920ac">/*************************************************************************/</font><b><font color='DarkGreen'>#include</font></b> <a href="env_defs.h.FIND-INC"><font color="blue">"env_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="mem_defs.h.FIND-INC"><font color="blue">"mem_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="seg_priv.h.FIND-INC"><font color="blue">"seg_priv.h"</font></a><font color="#6920ac">/* dynamic memory segments lock */</font><i>rrlc_Lock_t</i> segm_DynSegLock_g;<font color="#6920ac">/* table of dynamically allocated memory segments */</font><i>segm_Table_t</i> segm_DynTable_g[<a href="SEGM_MAX_DYN_NUMBER.FIND-DEF">SEGM_MAX_DYN_NUMBER</a>];<b><font color='DarkGreen'>#if</font></b><font color="maroon"> SEGM_USE_DEFAULT_MEMORY_LAYOUT == 1</font><b><font color='DarkGreen'>#include</font></b> <a href="mm0_defs.h.FIND-INC"><font color="blue">"mm0_defs.h"</font></a><b><font color='DarkGreen'>#include</font></b> <a href="mm1_defs.h.FIND-INC"><font color="blue">"mm1_defs.h"</font></a><i>static</i> <i>mem0_SegmHead_t</i>   MEM0SegmentHead;<i>crtx_SegNum_t</i> Overlaps[] = {1};<b><font color='DarkGreen'>#if</font></b><font color="maroon"> ((CRTX_CPU_FAMILY==CRTX_POSIX1) || (CRTX_CPU_FAMILY==CRTX_POSIX4) || (CRTX_CPU_FAMILY==CRTX_POSIX4A))</font><i>static</i> <i>crtx_Byte_t</i> <a href="SYSTEM_SEGMENT.FIND-DEF">SYSTEM_SEGMENT</a>[  20*1024];<i>static</i> <i>crtx_Byte_t</i> <a href="SRAM_SEGMENT.FIND-DEF">SRAM_SEGMENT</a>  [10240*1024];<i>static</i> <i>crtx_Byte_t</i> <a href="CRAM_SEGMENT.FIND-DEF">CRAM_SEGMENT</a>  [ 1024*1024];<i>segm_Table_t</i> segm_Table_g[<a href="SEGM_MAX_NUMBER.FIND-DEF">SEGM_MAX_NUMBER</a>] = {    <font color="#6920ac">/* system segment */</font>    { (<i>crtx_Void_t</i>*)<a href="SYSTEM_SEGMENT.FIND-DEF">SYSTEM_SEGMENT</a>,     <font color="#6920ac">/* segment base address */</font>      (<i>dmem_Size_t</i>)<i>sizeof</i>(<a href="SYSTEM_SEGMENT.FIND-DEF">SYSTEM_SEGMENT</a>),  <font color="#6920ac">/* segment size */</font>      (<i>crtx_Void_t</i>*)<a href="SYSTEM_SEGMENT.FIND-DEF">SYSTEM_SEGMENT</a>,     <font color="#6920ac">/* argument */</font>      0, <a href="CRTX_NULL.FIND-DEF">CRTX_NULL</a>,                     <font color="#6920ac">/* overlaps */</font>      mem1_Create,                      <font color="#6920ac">/* manager's services */</font>      mem1_Alloc,      mem1_AllocSt,      mem1_Free,      <a href="DMEM_NULL.FIND-DEF">DMEM_NULL</a>,      mem1_Info,      mem1_Check    },    <font color="#6920ac">/* default segment */</font>    { (<i>crtx_Void_t</i>*)<a href="SRAM_SEGMENT.FIND-DEF">SRAM_SEGMENT</a>,       <font color="#6920ac">/* segment base address */</font>                                        <font color="#6920ac">/* segment size */</font>      (<i>dmem_Size_t</i>)<i>sizeof</i>(<a href="SRAM_SEGMENT.FIND-DEF">SRAM_SEGMENT</a>),<font color="#6920ac">/* segment size */</font>      (<i>crtx_Void_t</i>*)<a href="SRAM_SEGMENT.FIND-DEF">SRAM_SEGMENT</a>,       <font color="#6920ac">/* argument */</font>      0, <a href="CRTX_NULL.FIND-DEF">CRTX_NULL</a>,                     <font color="#6920ac">/* overlaps */</font>      mem1_Create,                      <font color="#6920ac">/* manager's services */</font>      mem1_Alloc,      mem1_AllocSt,      mem1_Free,      <a href="DMEM_NULL.FIND-DEF">DMEM_NULL</a>,      mem1_Info,      mem1_Check    },    <font color="#6920ac">/* fast segment */</font>    { (<i>crtx_Void_t</i>*)<a href="CRAM_SEGMENT.FIND-DEF">CRAM_SEGMENT</a>,       <font color="#6920ac">/* segment base address */</font>      (<i>dmem_Size_t</i>)<i>sizeof</i>(<a href="CRAM_SEGMENT.FIND-DEF">CRAM_SEGMENT</a>),<font color="#6920ac">/* segment size */</font>      (<i>crtx_Void_t</i>*)&amp;MEM0SegmentHead,       <font color="#6920ac">/* argument */</font>      <a href="SEGM_OVERLAPS.FIND-DEF">SEGM_OVERLAPS</a>(Overlaps),          <font color="#6920ac">/* overlaps */</font>      mem0_Create,                      <font color="#6920ac">/* manager's services */</font>      mem0_Alloc,      mem0_AllocSt,      mem0_Free,      <a href="DMEM_NULL.FIND-DEF">DMEM_NULL</a>,      mem0_Info,      <a href="DMEM_NULL.FIND-DEF">DMEM_NULL</a>    }};<b><font color='DarkGreen'>#else</font></b><font color="maroon"></font><i>extern</i> <i>int</i> <a href="CRAM_START.FIND-DEF">CRAM_START</a>;<i>extern</i> <i>int</i> <a href="CRAM_BASE.FIND-DEF">CRAM_BASE</a>;<i>extern</i> <i>int</i> <a href="CRAM_LENGTH.FIND-DEF">CRAM_LENGTH</a>;<i>extern</i> <i>int</i> <a href="CRAM_MAXLENGTH.FIND-DEF">CRAM_MAXLENGTH</a>;<i>extern</i> <i>int</i> <a href="SRAM_START.FIND-DEF">SRAM_START</a>;<i>extern</i> <i>int</i> <a href="SRAM_BASE.FIND-DEF">SRAM_BASE</a>;<i>extern</i> <i>int</i> <a href="SRAM_LENGTH.FIND-DEF">SRAM_LENGTH</a>;<i>extern</i> <i>int</i> <a href="SRAM_MAXLENGTH.FIND-DEF">SRAM_MAXLENGTH</a>;<i>segm_Table_t</i> segm_Table_g[<a href="SEGM_MAX_NUMBER.FIND-DEF">SEGM_MAX_NUMBER</a>] = {    <font color="#6920ac">/* system segment */</font>    { (<i>crtx_Void_t</i>*)&amp;<a href="SRAM_BASE.FIND-DEF">SRAM_BASE</a>,         <font color="#6920ac">/* segment base address */</font>      0x1000,                           <font color="#6920ac">/* segment size */</font>      (<i>crtx_Void_t</i>*)&amp;<a href="SRAM_BASE.FIND-DEF">SRAM_BASE</a>,         <font color="#6920ac">/* argument */</font>      0, <a href="CRTX_NULL.FIND-DEF">CRTX_NULL</a>,                     <font color="#6920ac">/* overlaps */</font>      mem1_Create,                      <font color="#6920ac">/* manager's services */</font>      mem1_Alloc,      mem1_AllocSt,      mem1_Free,      <a href="DMEM_NULL.FIND-DEF">DMEM_NULL</a>,      mem1_Info,      mem1_Check    },    <font color="#6920ac">/* default segment */</font>    { (<i>crtx_Void_t</i>*)(&amp;<a href="SRAM_BASE.FIND-DEF">SRAM_BASE</a>+0x1000),<font color="#6920ac">/* segment base address */</font>                                        <font color="#6920ac">/* segment size */</font>      (<i>dmem_Size_t</i>)&amp;(((<i>dmem_Size_t</i> *)&amp;<a href="SRAM_LENGTH.FIND-DEF">SRAM_LENGTH</a>)[-0x1000]),      (<i>crtx_Void_t</i>*)(&amp;<a href="SRAM_BASE.FIND-DEF">SRAM_BASE</a>+0x1000),<font color="#6920ac">/* argument */</font>      0, <a href="CRTX_NULL.FIND-DEF">CRTX_NULL</a>,                     <font color="#6920ac">/* overlaps */</font>      mem1_Create,                      <font color="#6920ac">/* manager's services */</font>      mem1_Alloc,      mem1_AllocSt,      mem1_Free,      <a href="DMEM_NULL.FIND-DEF">DMEM_NULL</a>,      mem1_Info,      mem1_Check    },    <font color="#6920ac">/* fast segment */</font>    { (<i>crtx_Void_t</i>*)&amp;<a href="CRAM_BASE.FIND-DEF">CRAM_BASE</a>,         <font color="#6920ac">/* segment base address */</font>      (<i>dmem_Size_t</i>)&amp;<a href="CRAM_LENGTH.FIND-DEF">CRAM_LENGTH</a>,        <font color="#6920ac">/* segment size */</font>      (<i>crtx_Void_t</i>*)&amp;MEM0SegmentHead,   <font color="#6920ac">/* argument */</font>      <a href="SEGM_OVERLAPS.FIND-DEF">SEGM_OVERLAPS</a>(Overlaps),          <font color="#6920ac">/* overlaps */</font>      mem0_Create,                      <font color="#6920ac">/* manager's services */</font>      mem0_Alloc,      mem0_AllocSt,      mem0_Free,      <a href="DMEM_NULL.FIND-DEF">DMEM_NULL</a>,      mem0_Info,      <a href="DMEM_NULL.FIND-DEF">DMEM_NULL</a>    }};<b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* one of POSIX platform */</font></font><b><font color='DarkGreen'>#endif</font></b><font color="maroon"> <font color="#6920ac">/* SEGM_USE_DEFAULT_MEMORY_LAYOUT==1 */</font></font></pre></BODY></HTML>

⌨️ 快捷键说明

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