![]() |
|
|||
File indexing completed on 2025-05-11 08:24:32
0001 /* SPDX-License-Identifier: BSD-2-Clause */ 0002 0003 /* 0004 * Copyright (c) 2018 Chris Johns <chrisj@rtems.org>. 0005 * All rights reserved. 0006 * 0007 * Redistribution and use in source and binary forms, with or without 0008 * modification, are permitted provided that the following conditions 0009 * are met: 0010 * 1. Redistributions of source code must retain the above copyright 0011 * notice, this list of conditions and the following disclaimer. 0012 * 2. Redistributions in binary form must reproduce the above copyright 0013 * notice, this list of conditions and the following disclaimer in the 0014 * documentation and/or other materials provided with the distribution. 0015 * 0016 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 0017 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0018 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 0019 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 0020 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 0021 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 0022 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 0023 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 0024 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 0025 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 0026 * POSSIBILITY OF SUCH DAMAGE. 0027 */ 0028 0029 #include "dl-o1.h" 0030 0031 #include <rtems/test-printer.h> 0032 #include "dl-load.h" 0033 #include "dl-o1.h" 0034 #include "dl-o2.h" 0035 0036 #define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__); 0037 0038 /* 0039 * Create some symbols. The uninitialised will be in the common section with 0040 * separated text and data and this means there is no actual section in the ELF 0041 * file, the details for this are in the symbols. 0042 */ 0043 int dl01_bss1; /* unitialised, .bss */ 0044 float dl01_bss2[30]; /* unitialised, .bss */ 0045 char dl01_bss3[10]; /* unitialised, .bss */ 0046 int dl01_data1 = 1; /* initialised, .data */ 0047 float dl01_data2 = 0.3333; /* initialised, .data */ 0048 const int dl01_const1 = 3; /* read-only, .const */ 0049 const float dl01_const2 = 0.666; /* read-only, .const */ 0050 int dl01_func1(void) /* code, .text */ 0051 { 0052 return 4; 0053 } 0054 0055 /* 0056 * Yes a decl in the source. This is a modules main and I could not find which 0057 * header main is defined in. 0058 */ 0059 int rtems_main_o1 (void); 0060 0061 #define DL_NAME "dlo1" 0062 #define PAINT_VAR(_v) sizeof(_v), &_v, _v 0063 0064 int rtems_main_o1 (void) 0065 { 0066 printf (DL_NAME ": module: %s\n", dl_localise_file (__FILE__)); 0067 printf (DL_NAME ": dl01_bss1: %4zu: %p: %d\n", PAINT_VAR (dl01_bss1)); 0068 printf (DL_NAME ": dl01_bss2: %4zu: %p: %f\n", PAINT_VAR (dl01_bss2[0])); 0069 printf (DL_NAME ": dl01_bss3: %4zu: %p: %02x\n", PAINT_VAR (dl01_bss3[0])); 0070 printf (DL_NAME ": dl01_data1: %4zu: %p: %d\n", PAINT_VAR (dl01_data1)); 0071 /* no %f in the rtems test printer */ 0072 printf (DL_NAME ": dl01_data2: %4zu: %p: %f\n", PAINT_VAR (dl01_data2)); 0073 printf (DL_NAME ": dl01_const1: %4zu: %p: %d\n", PAINT_VAR (dl01_const1)); 0074 printf (DL_NAME ": dl01_const2: %4zu: %p: %f\n", PAINT_VAR (dl01_const2)); 0075 printf (DL_NAME ": dl01_func1: %4zu: %p\n", sizeof(dl01_func1), &dl01_func1); 0076 0077 rtems_main_o2 (); 0078 0079 return 0; 0080 }
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |