#include <stddef.h>
#include <reent.h>
#include <errno.h>
#include "../kernel/fdmp_kernel.h"
newlibrt.cのインクルード依存関係図
ソースコードを見る。
newlibrt.c の 99 行で定義されています。
参照元 atexit().
newlibrt.c の 47 行で定義されています。
参照元 _sbrk_r().
newlibrt.c の 55 行で定義されています。
参照先 cxxrt_dis_dsp・dis_dsp()・iniflg・sns_dsp().
00056 { 00057 if (!iniflg || sns_dsp()) 00058 return; 00059 dis_dsp(); 00060 cxxrt_dis_dsp = 1; 00061 }
関数の呼び出しグラフ:
newlibrt.c の 63 行で定義されています。
参照先 cxxrt_dis_dsp・ena_dsp().
00064 { 00065 if (!cxxrt_dis_dsp) 00066 return; 00067 cxxrt_dis_dsp = 0; 00068 ena_dsp(); 00069 }
newlibrt.c の 71 行で定義されています。
参照先 HEAP_TOP・iniflg.
00072 { 00073 extern char end; 00074 static char *heap_ptr = &end; 00075 static char *heap_end = (char*)HEAP_TOP; 00076 char *base; 00077 00078 if (!iniflg) 00079 { 00080 volatile char _auto; 00081 if (&end < &_auto && &_auto < heap_end) 00082 heap_end = (char*)&_auto; 00083 } 00084 00085 if (heap_ptr + nbyte + 32 > heap_end) 00086 { 00087 ptr->_errno = errno = ENOMEM; 00088 return (void*)-1; 00089 } 00090 00091 base = heap_ptr; 00092 heap_ptr += nbyte; 00093 return base; 00094 }
newlibrt.c の 137 行で定義されています。
参照先 _atabort・iniflg・kernel_abort().
00138 { 00139 if (_atabort != 0) 00140 (*_atabort)(); 00141 if (iniflg) 00142 kernel_abort(); 00143 _exit(3); 00144 }
newlibrt.c の 110 行で定義されています。
参照先 ATEXIT_MAX・atexit_num・atexit_table・iniflg・loc_cpu()・unl_cpu().
参照元 software_init_hook().
00111 { 00112 int result = -1; 00113 int sync = iniflg; 00114 00115 if (sync) 00116 loc_cpu(); 00117 00118 if (atexit_num < ATEXIT_MAX) 00119 { 00120 atexit_table[atexit_num++] = func; 00121 result = 0; 00122 } 00123 00124 if (sync) 00125 unl_cpu(); 00126 00127 return result; 00128 }
newlibrt.c の 130 行で定義されています。
参照先 iniflg・kernel_exit().
00131 { 00132 if (iniflg) 00133 kernel_exit(); 00134 _exit(status); 00135 }
newlibrt.c の 175 行で定義されています。
00175 { return 0; }
newlibrt.c の 149 行で定義されています。
参照先 atexit().
00150 { 00151 extern void _toppers_cxxrt_init(void); 00152 _toppers_cxxrt_init(); 00153 { 00154 #ifdef __ELF__ 00155 extern void _init(void); 00156 extern void _fini(void); 00157 atexit(_fini); 00158 _init(); 00159 #else 00160 extern void __main(void); 00161 __main(); 00162 #endif 00163 } 00164 }
newlibrt.c の 166 行で定義されています。
参照先 atexit_num・atexit_table.
参照元 call_atexit().
00167 { 00168 int i; 00169 00170 for (i = atexit_num - 1; i >= 0; i--) 00171 (*atexit_table[i])(); 00172 }
newlibrt.c の 108 行で定義されています。
参照元 abort().
[static]
newlibrt.c の 102 行で定義されています。
参照元 atexit()・software_term_hook().
newlibrt.c の 101 行で定義されています。
newlibrt.c の 53 行で定義されています。
参照元 __malloc_lock()・__malloc_unlock().