============================================ Index : 8 Symbol : IMFS_eval_path (0x8007560) Starting Line : imfs_eval.c:502 (0x8007670) Ending Line : imfs_eval.c:502 (0x8007673) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 10 Symbol : IMFS_eval_path (0x8007560) Starting Line : imfs_eval.c:488 (0x8007808) Ending Line : imfs_eval.c:488 (0x800781b) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 13 Symbol : IMFS_evaluate_for_make (0x80079f0) Starting Line : imfs_eval.c:319 (0x8007b14) Ending Line : imfs_eval.c:319 (0x8007b17) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 20 Symbol : IMFS_evaluate_permission (0x80074a4) Starting Line : imfs_eval.c:84 (0x80074ec) Ending Line : imfs_eval.c:84 (0x80074ff) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 22 Symbol : IMFS_fifo_lseek (0x8001fc4) Starting Line : imfs_fifo.c:126 (0x800200c) Ending Line : imfs_fifo.c:126 (0x8002017) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 26 Symbol : IMFS_find_match_in_dir (0x8007db8) Starting Line : imfs_getchild.c:51 (0x8007e00) Ending Line : imfs_getchild.c:51 (0x8007e03) Size in Bytes : 4 Size in Instructions : 1 Classification: Unreachable Explanation: This code cannot be reached. The routine IMFS_find_match_in_dir is called only if the token type is IMFS_NAME. If ".." is present in the path, the token type returned by IMFS_get_token would be IMFS_DIR_UP. With such a setup, IMFS_find_match_in_dir cannot be called with the name as ".." ============================================ ============================================ Index : 31 Symbol : IMFS_fsunmount (0x8007cd8) Starting Line : imfs_fsunmount.c:82 (0x8007db0) Ending Line : imfs_fsunmount.c:82 (0x8007db7) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 40 Symbol : IMFS_memfile_get_block_pointer (0x8009ee4) Starting Line : memfile.c:840 (0x8009fe8) Ending Line : memfile.c:840 (0x8009feb) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 55 Symbol : IMFS_memfile_read (0x800a180) Starting Line : memfile.c:557 (0x800a1d8) Ending Line : memfile.c:557 (0x800a1df) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 62 Symbol : IMFS_memfile_read (0x800a180) Starting Line : memfile.c:557 (0x800a358) Ending Line : memfile.c:557 (0x800a35b) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 76 Symbol : IMFS_memfile_write (0x800a7dc) Starting Line : memfile.c:682 (0x800a994) Ending Line : memfile.c:682 (0x800a997) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 78 Symbol : IMFS_mount (0x8000c80) Starting Line : imfs_mount.c:44 (0x8000cac) Ending Line : imfs_mount.c:44 (0x8000cbf) Size in Bytes : 20 Size in Instructions : 5 Classification: Unreachable? Explanation: We need to ask Chris Johns about this. I believe this is a case where the error checking has been done by the system call layer. I analyzed the "file handlers" callbacks for guarantees on parameters. This indicates the same analysis needs to happen for "file system handlers." Bharath: Yes, it is checked in mount.c ============================================ ============================================ Index : 80 Symbol : IMFS_print_jnode (0x80037ac) Starting Line : imfs_debug.c:80 (0x8003800) Ending Line : imfs_debug.c:92 (0x800385f) Size in Bytes : 96 Size in Instructions : 24 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 81 Symbol : IMFS_print_jnode (0x80037ac) Starting Line : imfs_debug.c:88 (0x80038b8) Ending Line : imfs_debug.c:92 (0x80038df) Size in Bytes : 40 Size in Instructions : 10 Classification: Simple Test Case Explanation: We need to do an IMFS_dump on an IMFS filesystem which has a bad node type in it. This may require peeking behind the curtain and changing a value. Bharath: But usually, this code is unreachable since we cannot create a node which is not of type that is checked for. ============================================ ============================================ Index : 87 Symbol : IMFS_unlink (0x8000e38) Starting Line : imfs_unlink.c:51 (0x8000f2c) Ending Line : imfs_unlink.c:51 (0x8000f3f) Size in Bytes : 20 Size in Instructions : 5 Classification: Discuss Explanation: I think this is either a simple test or unreachable code. We need to discuss this to figure out which. ============================================ ============================================ Index : 90 Symbol : IMFS_unmount (0x8000f40) Starting Line : imfs_unmount.c:45 (0x8000f74) Ending Line : imfs_unmount.c:52 (0x8000f9b) Size in Bytes : 40 Size in Instructions : 10 Classification: Discuss Explanation: I think this is either a simple test or unreachable code. We need to discuss this to figure out which. ============================================ ============================================ Index : 92 Symbol : RTEMS_Malloc_Initialize (0x800179c) Starting Line : malloc_initialize.c:100 (0x80018a0) Ending Line : malloc_initialize.c:100 (0x80018a3) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 96 Symbol : Stack_check_Dump_threads_usage (0x80006cc) Starting Line : check.c:421 (0x8000754) Ending Line : check.c:425 (0x800075b) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 99 Symbol : Stack_check_Dump_threads_usage (0x80006cc) Starting Line : check.c:451 (0x800086c) Ending Line : check.c:451 (0x8000883) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 101 Symbol : Stack_check_Dump_threads_usage (0x80006cc) Starting Line : check.c:401 (0x800089c) Ending Line : check.c:401 (0x800089f) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 113 Symbol : _CORE_mutex_Seize_interrupt_trylock (0x80091c8) Starting Line : coremutex.inl:209 (0x8009248) Ending Line : coremutex.inl:211 (0x800925f) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 116 Symbol : _Chain_Get_with_empty_check (0x8004034) Starting Line : chain.inl:571 (0x800406c) Ending Line : chaingetempty.c:44 (0x800407b) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 122 Symbol : _Event_Surrender (0x800d3e0) Starting Line : options.inl:53 (0x800d514) Ending Line : eventsurrender.c:82 (0x800d51b) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 124 Symbol : _Event_Timeout (0x800d544) Starting Line : eventtimeout.c:93 (0x800d55c) Ending Line : eventtimeout.c:93 (0x800d567) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 126 Symbol : _Event_Timeout (0x800d544) Starting Line : eventtimeout.c:77 (0x800d5c8) Ending Line : eventtimeout.c:78 (0x800d5e7) Size in Bytes : 32 Size in Instructions : 8 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 130 Symbol : _Heap_Extend (0x800986c) Starting Line : heap.inl:119 (0x800996c) Ending Line : heapextend.c:174 (0x8009987) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 133 Symbol : _Heap_Extend (0x800986c) Starting Line : heapextend.c:47 (0x80099dc) Ending Line : heapextend.c:60 (0x8009a1b) Size in Bytes : 64 Size in Instructions : 16 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 150 Symbol : _Heap_Walk (0x8004e1c) Starting Line : heapwalk.c:233 (0x8004f98) Ending Line : heapwalk.c:334 (0x8004fb3) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 155 Symbol : _Heap_Walk (0x8004e1c) Starting Line : heapwalk.c:95 (0x80050a0) Ending Line : heapwalk.c:95 (0x80050a3) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 168 Symbol : _Objects_Extend_information (0x8004550) Starting Line : objectextendinformation.c:76 (0x800484c) Ending Line : objectextendinformation.c:68 (0x8004873) Size in Bytes : 40 Size in Instructions : 10 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 178 Symbol : _Objects_Initialize_information (0x8004afc) Starting Line : objectinitializeinformation.c:135 (0x8004c34) Ending Line : objectinitializeinformation.c:105 (0x8004c53) Size in Bytes : 32 Size in Instructions : 8 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 181 Symbol : _Objects_Shrink_information (0x8004cd0) Starting Line : objectshrinkinformation.c:66 (0x8004d5c) Ending Line : objectshrinkinformation.c:66 (0x8004d5f) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 186 Symbol : _RTEMS_tasks_Initialize_user_tasks_body (0x8003194) Starting Line : taskinitusers.c:82 (0x800322c) Ending Line : taskinitusers.c:90 (0x8003247) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 191 Symbol : _Rate_monotonic_Timeout (0x8004878) Starting Line : ratemontimeout.c:83 (0x80048a4) Ending Line : ratemontimeout.c:83 (0x80048b3) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 193 Symbol : _Rate_monotonic_Timeout (0x8004878) Starting Line : ratemontimeout.c:67 (0x8004908) Ending Line : ratemontimeout.c:67 (0x8004913) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 196 Symbol : _TOD_Get (0x8003d1c) Starting Line : coretodget.c:52 (0x8003d6c) Ending Line : coretodget.c:52 (0x8003d73) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 198 Symbol : _TOD_Get_uptime (0x8009334) Starting Line : coretodgetuptime.c:52 (0x8009384) Ending Line : coretodgetuptime.c:52 (0x800938b) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 204 Symbol : _Thread_Change_priority (0x8004ea8) Starting Line : threadchangepriority.c:106 (0x8004f0c) Ending Line : threadchangepriority.c:107 (0x8004f23) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 210 Symbol : _Thread_Dispatch (0x80052f0) Starting Line : threaddispatch.c:93 (0x8005438) Ending Line : threaddispatch.c:103 (0x800544b) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 215 Symbol : _Thread_Initialize (0x80055fc) Starting Line : threadinitialize.c:228 (0x8005730) Ending Line : threadinitialize.c:228 (0x8005733) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 216 Symbol : _Thread_Restart (0x8006e64) Starting Line : thread.inl:119 (0x8006ef0) Ending Line : thread.inl:119 (0x8006ef3) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 222 Symbol : _Thread_queue_Enqueue_priority (0x8005b5c) Starting Line : threadqenqueuepriority.c:99 (0x8005c04) Ending Line : threadqenqueuepriority.c:100 (0x8005c0b) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 225 Symbol : _Thread_queue_Enqueue_priority (0x8005b5c) Starting Line : threadqenqueuepriority.c:146 (0x8005c74) Ending Line : threadqenqueuepriority.c:147 (0x8005c7b) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 228 Symbol : _Thread_queue_Process_timeout (0x8009c30) Starting Line : thread.inl:69 (0x8009c48) Ending Line : threadqprocesstimeout.c:46 (0x8009c57) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 229 Symbol : _Thread_queue_Process_timeout (0x8009c30) Starting Line : threadqprocesstimeout.c:48 (0x8009c78) Ending Line : threadqprocesstimeout.c:50 (0x8009c93) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 232 Symbol : _Thread_queue_Requeue (0x8005e14) Starting Line : threadqrequeue.c:73 (0x8005e40) Ending Line : threadqrequeue.c:73 (0x8005e57) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 234 Symbol : _Thread_queue_Requeue (0x8005e14) Starting Line : threadqrequeue.c:71 (0x8005e80) Ending Line : threadqrequeue.c:71 (0x8005e83) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 237 Symbol : _Timer_server_Body (0x8014498) Starting Line : timerserver.c:117 (0x8014594) Ending Line : timerserver.c:297 (0x80145bb) Size in Bytes : 40 Size in Instructions : 10 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 239 Symbol : _Timer_server_Body (0x8014498) Starting Line : timerserver.c:345 (0x80145d0) Ending Line : timerserver.c:345 (0x80145d7) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 240 Symbol : _Timer_server_Body (0x8014498) Starting Line : timerserver.c:118 (0x80145f0) Ending Line : timerserver.c:118 (0x80145ff) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 242 Symbol : _Timer_server_Schedule_operation_method (0x801469c) Starting Line : timerserver.c:237 (0x80146b8) Ending Line : timerserver.c:239 (0x80146cf) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 266 Symbol : _Watchdog_Tickle (0x8006bac) Starting Line : watchdogtickle.c:121 (0x8006c04) Ending Line : watchdogtickle.c:125 (0x8006c1f) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 268 Symbol : __kill (0x80247cc) Starting Line : kill_noposix.c:47 (0x80247cc) Ending Line : kill_noposix.c:47 (0x80247d3) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 269 Symbol : _gettimeofday (0x80015f8) Starting Line : __gettod.c:81 (0x80015f8) Ending Line : __gettod.c:83 (0x800160f) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 277 Symbol : devFS_evaluate_path (0x8006888) Starting Line : devfs_eval.c:44 (0x80069a8) Ending Line : devfs_eval.c:44 (0x80069bb) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 282 Symbol : drainOutput (0x8004cc8) Starting Line : termios.c:347 (0x8004d04) Ending Line : termios.c:346 (0x8004d3f) Size in Bytes : 60 Size in Instructions : 15 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 283 Symbol : drainOutput (0x8004cc8) Starting Line : termios.c:352 (0x8004d5c) Ending Line : termios.c:352 (0x8004d5f) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 290 Symbol : erase (0x8005bfc) Starting Line : termios.c:848 (0x8005c9c) Ending Line : termios.c:848 (0x8005ca3) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 291 Symbol : erase (0x8005bfc) Starting Line : termios.c:819 (0x8005cbc) Ending Line : termios.c:819 (0x8005cc7) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 294 Symbol : erase (0x8005bfc) Starting Line : termios.c:807 (0x8005d04) Ending Line : termios.c:853 (0x8005d6f) Size in Bytes : 108 Size in Instructions : 27 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 297 Symbol : erase (0x8005bfc) Starting Line : termios.c:832 (0x8005dc4) Ending Line : termios.c:827 (0x8005dcf) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 300 Symbol : erase (0x8005bfc) Starting Line : termios.c:827 (0x8005e14) Ending Line : termios.c:803 (0x8005e1f) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 302 Symbol : fcntl (0x8002018) Starting Line : fcntl.c:143 (0x800213c) Ending Line : fcntl.c:143 (0x8002147) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 311 Symbol : fifo_open (0x800a638) Starting Line : libio_.h:169 (0x800a740) Ending Line : libio_.h:169 (0x800a74f) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 316 Symbol : fifo_open (0x800a638) Starting Line : fifo.c:360 (0x800a7c0) Ending Line : fifo.c:360 (0x800a7c3) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 321 Symbol : fifo_open (0x800a638) Starting Line : fifo.c:338 (0x800a844) Ending Line : fifo.c:338 (0x800a847) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 326 Symbol : fifo_open (0x800a638) Starting Line : fifo.c:150 (0x800aa10) Ending Line : fifo.c:234 (0x800aa3f) Size in Bytes : 48 Size in Instructions : 12 Classification: NONE Explanation: No Explanation ============================================ ============================================ Symbol : getpagesize *** NEVER REFERENCED *** This symbol was never referenced by an analyzed executable. Therefore there is no size or disassembly for this symbol. This could be due to symbol misspelling or lack of a test for this symbol. ============================================ ============================================ Index : 333 Symbol : gettimeofday (0x8001560) Starting Line : __gettod.c:37 (0x80015c4) Ending Line : __gettod.c:37 (0x80015d7) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 340 Symbol : iproc (0x8005e20) Starting Line : termios.c:872 (0x8005e44) Ending Line : termios.c:872 (0x8005e47) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 349 Symbol : iproc (0x8005e20) Starting Line : termios.c:904 (0x8005f38) Ending Line : termios.c:907 (0x8005f5f) Size in Bytes : 40 Size in Instructions : 10 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 351 Symbol : iproc (0x8005e20) Starting Line : termios.c:883 (0x8005f68) Ending Line : termios.c:883 (0x8005f6f) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 352 Symbol : iproc (0x8005e20) Starting Line : termios.c:905 (0x8005f8c) Ending Line : termios.c:905 (0x8005f9b) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 354 Symbol : kill (0x80247bc) Starting Line : kill_noposix.c:33 (0x80247bc) Ending Line : kill_noposix.c:33 (0x80247c3) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 356 Symbol : libc_wrapup (0x8011378) Starting Line : newlibc_exit.c:90 (0x801139c) Ending Line : newlibc_exit.c:90 (0x80113af) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 358 Symbol : malloc (0x80018ac) Starting Line : malloc.c:47 (0x8001998) Ending Line : malloc.c:47 (0x800199b) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 366 Symbol : memfile_lseek (0x800ab38) Starting Line : memfile.c:220 (0x800abb8) Ending Line : memfile.c:229 (0x800abdb) Size in Bytes : 36 Size in Instructions : 9 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 368 Symbol : memfile_open (0x800a9ec) Starting Line : memfile.c:102 (0x800aa64) Ending Line : memfile.c:111 (0x800aabb) Size in Bytes : 88 Size in Instructions : 22 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 373 Symbol : mount (0x8001b68) Starting Line : mount.c:157 (0x8001e50) Ending Line : mount.c:157 (0x8001e63) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 374 Symbol : mount (0x8001b68) Starting Line : mount.c:219 (0x8001e78) Ending Line : mount.c:257 (0x8001e93) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 380 Symbol : newlib_free_buffers (0x8001edc) Starting Line : newlibc_reent.c:121 (0x8001f18) Ending Line : newlibc_reent.c:124 (0x8001f63) Size in Bytes : 76 Size in Instructions : 19 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 385 Symbol : open (0x8002274) Starting Line : open.c:127 (0x80024e0) Ending Line : open.c:128 (0x80024eb) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 388 Symbol : open_dev_console (0x80021e8) Starting Line : open_dev_console.c:46 (0x8002254) Ending Line : open_dev_console.c:46 (0x8002263) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 391 Symbol : oproc (0x80059d4) Starting Line : termios.c:694 (0x8005a04) Ending Line : termios.c:728 (0x8005a1b) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 396 Symbol : oproc (0x80059d4) Starting Line : termios.c:697 (0x8005a88) Ending Line : termios.c:697 (0x8005a8b) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 398 Symbol : oproc (0x80059d4) Starting Line : termios.c:705 (0x8005ab0) Ending Line : termios.c:714 (0x8005adf) Size in Bytes : 48 Size in Instructions : 12 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 400 Symbol : oproc (0x80059d4) Starting Line : termios.c:723 (0x8005afc) Ending Line : termios.c:733 (0x8005b3f) Size in Bytes : 68 Size in Instructions : 17 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 409 Symbol : pipe_read (0x800aa7c) Starting Line : fifo.c:422 (0x800ac40) Ending Line : fifo.c:456 (0x800ac4b) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 411 Symbol : pipe_release (0x800a504) Starting Line : fifo.c:285 (0x800a570) Ending Line : fifo.c:299 (0x800a58b) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 417 Symbol : pipe_write (0x800ac5c) Starting Line : fifo.c:488 (0x800ad94) Ending Line : fifo.c:529 (0x800ad9f) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 421 Symbol : pipe_write (0x800ac5c) Starting Line : fifo.c:510 (0x800ae30) Ending Line : fifo.c:510 (0x800ae37) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 422 Symbol : pipe_write (0x800ac5c) Starting Line : fifo.c:502 (0x800ae44) Ending Line : fifo.c:542 (0x800ae4f) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 428 Symbol : readv (0x80039fc) Starting Line : readv.c:54 (0x8003ac8) Ending Line : readv.c:54 (0x8003acb) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 432 Symbol : readv (0x80039fc) Starting Line : readv.c:108 (0x8003b8c) Ending Line : readv.c:108 (0x8003b93) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 436 Symbol : realloc (0x80115bc) Starting Line : realloc.c:52 (0x8011668) Ending Line : realloc.c:53 (0x8011677) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 439 Symbol : realloc (0x80115bc) Starting Line : realloc.c:79 (0x80116b4) Ending Line : realloc.c:79 (0x80116bb) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 459 Symbol : rtems_clock_set_nanoseconds_extension (0x80102fc) Starting Line : clocksetnsecshandler.c:47 (0x8010308) Ending Line : clocksetnsecshandler.c:48 (0x8010317) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 465 Symbol : rtems_filesystem_dirname (0x80013bc) Starting Line : eval.c:126 (0x80013dc) Ending Line : eval.c:126 (0x80013df) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 470 Symbol : rtems_filesystem_initialize (0x80010ec) Starting Line : base_fs.c:52 (0x8001218) Ending Line : base_fs.c:58 (0x8001247) Size in Bytes : 48 Size in Instructions : 12 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 472 Symbol : rtems_filesystem_iterate (0x8008710) Starting Line : mount-mgr.c:50 (0x8008748) Ending Line : mount-mgr.c:50 (0x800874b) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 475 Symbol : rtems_filesystem_mount_iterate (0x8001abc) Starting Line : mount.c:269 (0x8001b18) Ending Line : mount.c:269 (0x8001b1b) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 478 Symbol : rtems_filesystem_prefix_separators (0x8001410) Starting Line : eval.c:144 (0x8001444) Ending Line : eval.c:144 (0x8001447) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 484 Symbol : rtems_gxx_once (0x8002068) Starting Line : gxx_wrappers.c:51 (0x80020f8) Ending Line : gxx_wrappers.c:56 (0x8002123) Size in Bytes : 44 Size in Instructions : 11 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 488 Symbol : rtems_io_register_driver (0x8004954) Starting Line : ioregisterdriver.c:55 (0x8004ab8) Ending Line : ioregisterdriver.c:55 (0x8004abb) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 498 Symbol : rtems_libio_init (0x8001610) Starting Line : libio_init.c:81 (0x80016ec) Ending Line : libio_init.c:81 (0x80016ef) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 506 Symbol : rtems_libio_to_fcntl_flags (0x80083b8) Starting Line : libio.c:107 (0x8008400) Ending Line : libio.c:104 (0x800840b) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 511 Symbol : rtems_memalign (0x800cfb8) Starting Line : rtems_memalign.c:43 (0x800d074) Ending Line : rtems_memalign.c:43 (0x800d077) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 521 Symbol : rtems_print_buffer (0x8000900) Starting Line : dumpbuf.c:69 (0x8000b74) Ending Line : dumpbuf.c:69 (0x8000b8b) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 523 Symbol : rtems_print_buffer (0x8000900) Starting Line : dumpbuf.c:74 (0x8000be4) Ending Line : dumpbuf.c:74 (0x8000be7) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 527 Symbol : rtems_rate_monotonic_period (0x80042e8) Starting Line : ratemonperiod.c:339 (0x80044e4) Ending Line : ratemonperiod.c:339 (0x80044f3) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 531 Symbol : rtems_shutdown_executive (0x8011578) Starting Line : thread.inl:50 (0x80115b8) Ending Line : thread.inl:50 (0x80115bb) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 539 Symbol : rtems_stack_checker_is_blown (0x8000b08) Starting Line : check.c:323 (0x8000b98) Ending Line : check.c:323 (0x8000b9f) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 547 Symbol : rtems_string_to_pointer (0x8009564) Starting Line : stringto_template.h:120 (0x80095f4) Ending Line : stringto_template.h:120 (0x800960b) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 555 Symbol : rtems_tarfs_load (0x8000fb8) Starting Line : imfs_load_tar.c:180 (0x8001120) Ending Line : imfs_load_tar.c:181 (0x800113f) Size in Bytes : 32 Size in Instructions : 8 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 558 Symbol : rtems_tarfs_load (0x8000fb8) Starting Line : imfs_load_tar.c:151 (0x80011d0) Ending Line : imfs_load_tar.c:151 (0x80011db) Size in Bytes : 12 Size in Instructions : 3 Classification: Simple Test Case Explanation: We apparently only have a relative symbolic link. We need to include one which has an absolute path. This will be a broken symlink on the host but resolve fine on the target. ============================================ ============================================ Index : 567 Symbol : rtems_termios_baud_to_index (0x8004af8) Starting Line : termios_baud2index.c:46 (0x8004b60) Ending Line : termios_baud2index.c:46 (0x8004b67) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 569 Symbol : rtems_termios_baud_to_index (0x8004af8) Starting Line : termios_baud2index.c:46 (0x8004b8c) Ending Line : termios_baud2index.c:46 (0x8004b93) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 571 Symbol : rtems_termios_baud_to_index (0x8004af8) Starting Line : termios_baud2index.c:46 (0x8004bb8) Ending Line : termios_baud2index.c:46 (0x8004bbf) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 578 Symbol : rtems_termios_close (0x80051fc) Starting Line : termios.c:400 (0x8005294) Ending Line : termios.c:400 (0x80052a3) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 580 Symbol : rtems_termios_close (0x80051fc) Starting Line : termios.c:407 (0x80052ac) Ending Line : termios.c:416 (0x80052bf) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 582 Symbol : rtems_termios_close (0x80051fc) Starting Line : termios.c:413 (0x8005350) Ending Line : termios.c:413 (0x8005357) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 584 Symbol : rtems_termios_close (0x80051fc) Starting Line : termios.c:404 (0x800536c) Ending Line : termios.c:404 (0x8005377) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 588 Symbol : rtems_termios_close (0x80051fc) Starting Line : termios.c:397 (0x80053cc) Ending Line : termios.c:397 (0x80053cf) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 591 Symbol : rtems_termios_dequeue_characters (0x8006c34) Starting Line : termios.c:1389 (0x8006cbc) Ending Line : termios.c:1389 (0x8006cbf) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 599 Symbol : rtems_termios_enqueue_raw_characters (0x8006558) Starting Line : termios.c:1199 (0x8006728) Ending Line : termios.c:1212 (0x8006757) Size in Bytes : 48 Size in Instructions : 12 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 603 Symbol : rtems_termios_enqueue_raw_characters (0x8006558) Starting Line : termios.c:1234 (0x8006784) Ending Line : termios.c:1235 (0x8006797) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 605 Symbol : rtems_termios_enqueue_raw_characters (0x8006558) Starting Line : termios.c:1174 (0x80067b8) Ending Line : termios.c:1174 (0x80067c3) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 607 Symbol : rtems_termios_enqueue_raw_characters (0x8006558) Starting Line : termios.c:1182 (0x80067d4) Ending Line : termios.c:1191 (0x8006823) Size in Bytes : 80 Size in Instructions : 20 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 609 Symbol : rtems_termios_enqueue_raw_characters (0x8006558) Starting Line : termios.c:1225 (0x800683c) Ending Line : termios.c:1216 (0x80068af) Size in Bytes : 116 Size in Instructions : 29 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 612 Symbol : rtems_termios_initialize (0x8004c34) Starting Line : termiosinitialize.c:52 (0x8004c80) Ending Line : termiosinitialize.c:52 (0x8004c83) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 618 Symbol : rtems_termios_ioctl (0x80053fc) Starting Line : termios.c:458 (0x800557c) Ending Line : termios.c:472 (0x80055c3) Size in Bytes : 72 Size in Instructions : 18 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 620 Symbol : rtems_termios_ioctl (0x80053fc) Starting Line : termios.c:476 (0x80055d0) Ending Line : termios.c:480 (0x80055fb) Size in Bytes : 44 Size in Instructions : 11 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 622 Symbol : rtems_termios_ioctl (0x80053fc) Starting Line : termios.c:484 (0x8005608) Ending Line : termios.c:492 (0x800564f) Size in Bytes : 72 Size in Instructions : 18 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 624 Symbol : rtems_termios_ioctl (0x80053fc) Starting Line : termios.c:500 (0x8005654) Ending Line : termios.c:500 (0x800565f) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 626 Symbol : rtems_termios_ioctl (0x80053fc) Starting Line : termios.c:612 (0x80056bc) Ending Line : termios.c:618 (0x80056ef) Size in Bytes : 52 Size in Instructions : 13 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 629 Symbol : rtems_termios_ioctl (0x80053fc) Starting Line : termios.c:468 (0x80057fc) Ending Line : termios.c:472 (0x800581f) Size in Bytes : 36 Size in Instructions : 9 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 633 Symbol : rtems_termios_open (0x8004d60) Starting Line : termios.c:130 (0x8004dd8) Ending Line : termios.c:131 (0x8004df7) Size in Bytes : 32 Size in Instructions : 8 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 636 Symbol : rtems_termios_open (0x8004d60) Starting Line : termios.c:314 (0x8004e18) Ending Line : termios.c:314 (0x8004e27) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 639 Symbol : rtems_termios_open (0x8004d60) Starting Line : termios.c:327 (0x8004eb0) Ending Line : termios.c:327 (0x8004eb3) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 645 Symbol : rtems_termios_open (0x8004d60) Starting Line : termios.c:193 (0x8004f4c) Ending Line : termios.c:193 (0x8004f4f) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 650 Symbol : rtems_termios_open (0x8004d60) Starting Line : termios.c:172 (0x8005134) Ending Line : termios.c:172 (0x800513b) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 652 Symbol : rtems_termios_open (0x8004d60) Starting Line : termios.c:328 (0x8005188) Ending Line : termios.c:328 (0x800518b) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 655 Symbol : rtems_termios_open (0x8004d60) Starting Line : termios.c:257 (0x80051f0) Ending Line : termios.c:257 (0x80051f3) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 660 Symbol : rtems_termios_puts (0x8005870) Starting Line : termios.c:676 (0x8005944) Ending Line : termios.c:676 (0x800594f) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 661 Symbol : rtems_termios_puts (0x8005870) Starting Line : termios.c:664 (0x80059d0) Ending Line : termios.c:664 (0x80059d3) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 667 Symbol : rtems_termios_read (0x8006190) Starting Line : termios.c:1058 (0x800634c) Ending Line : termios.c:1058 (0x800634f) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 671 Symbol : rtems_termios_read (0x8006190) Starting Line : termios.c:1032 (0x80063b4) Ending Line : termios.c:1035 (0x80063cf) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 674 Symbol : rtems_termios_read (0x8006190) Starting Line : termios.c:1011 (0x8006414) Ending Line : termios.c:1029 (0x8006467) Size in Bytes : 84 Size in Instructions : 21 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 680 Symbol : rtems_termios_read (0x8006190) Starting Line : termios.c:977 (0x800651c) Ending Line : termios.c:977 (0x8006523) Size in Bytes : 8 Size in Instructions : 2 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 686 Symbol : rtems_termios_refill_transmitter (0x8006948) Starting Line : termios.c:1327 (0x8006a30) Ending Line : termios.c:1327 (0x8006a3b) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 687 Symbol : rtems_termios_refill_transmitter (0x8006948) Starting Line : termios.c:1262 (0x8006aac) Ending Line : termios.c:1297 (0x8006baf) Size in Bytes : 260 Size in Instructions : 65 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 689 Symbol : rtems_termios_rxdaemon (0x80068b0) Starting Line : termios.c:1464 (0x8006910) Ending Line : termios.c:1472 (0x800692f) Size in Bytes : 32 Size in Instructions : 8 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 691 Symbol : rtems_termios_txdaemon (0x8006bb0) Starting Line : termios.c:1433 (0x8006bf8) Ending Line : termios.c:1433 (0x8006bfb) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 693 Symbol : rtems_termios_txdaemon (0x8006bb0) Starting Line : termios.c:1425 (0x8006c24) Ending Line : termios.c:1426 (0x8006c33) Size in Bytes : 16 Size in Instructions : 4 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 697 Symbol : rtems_termios_write (0x8006080) Starting Line : termios.c:764 (0x800617c) Ending Line : termios.c:764 (0x800618f) Size in Bytes : 20 Size in Instructions : 5 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 701 Symbol : rtems_verror (0x80070b8) Starting Line : thread.inl:196 (0x8007108) Ending Line : thread.inl:197 (0x800711f) Size in Bytes : 24 Size in Instructions : 6 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 705 Symbol : scanInt (0x8001cbc) Starting Line : getpwent.c:127 (0x8001d30) Ending Line : getpwent.c:128 (0x8001d43) Size in Bytes : 20 Size in Instructions : 5 Classification: Discuss Explanation: I think this is detecting whether or not the read can be fulfilled from the buffer. But I am not sure. ============================================ ============================================ Index : 709 Symbol : scanInt (0x8001cbc) Starting Line : getpwent.c:142 (0x8001dd8) Ending Line : getpwent.c:142 (0x8001ddb) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 722 Symbol : siproc (0x8005ff8) Starting Line : termios.c:939 (0x800601c) Ending Line : termios.c:942 (0x800603f) Size in Bytes : 36 Size in Instructions : 9 Classification: NONE Explanation: No Explanation ============================================ ============================================ Symbol : uname *** NEVER REFERENCED *** This symbol was never referenced by an analyzed executable. Therefore there is no size or disassembly for this symbol. This could be due to symbol misspelling or lack of a test for this symbol. ============================================ ============================================ Index : 729 Symbol : unmount (0x8003bb8) Starting Line : unmount.c:162 (0x8003c60) Ending Line : unmount.c:162 (0x8003c7b) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 731 Symbol : unmount (0x8003bb8) Starting Line : unmount.c:140 (0x8003d68) Ending Line : unmount.c:141 (0x8003d83) Size in Bytes : 28 Size in Instructions : 7 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 739 Symbol : writev (0x8004114) Starting Line : writev.c:55 (0x80041e0) Ending Line : writev.c:55 (0x80041e3) Size in Bytes : 4 Size in Instructions : 1 Classification: NONE Explanation: No Explanation ============================================ ============================================ Index : 744 Symbol : writev (0x8004114) Starting Line : writev.c:122 (0x80042b0) Ending Line : writev.c:115 (0x80042bb) Size in Bytes : 12 Size in Instructions : 3 Classification: NONE Explanation: No Explanation ============================================