Utils: Update the firmware to carry section physical addresses
[gstreamer-omap:sysbios-rpmsg.git] / src / utils / elfload / include / relocate.h
1 /*
2  *  Syslink-IPC for TI OMAP Processors
3  *
4  *  Copyright (c) 2008-2010, Texas Instruments Incorporated
5  *  All rights reserved.
6  *
7  *  Redistribution and use in source and binary forms, with or without
8  *  modification, are permitted provided that the following conditions
9  *  are met:
10  *
11  *  *  Redistributions of source code must retain the above copyright
12  *     notice, this list of conditions and the following disclaimer.
13  *
14  *  *  Redistributions in binary form must reproduce the above copyright
15  *     notice, this list of conditions and the following disclaimer in the
16  *     documentation and/or other materials provided with the distribution.
17  *
18  *  *  Neither the name of Texas Instruments Incorporated nor the names of
19  *     its contributors may be used to endorse or promote products derived
20  *     from this software without specific prior written permission.
21  *
22  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
24  *  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
25  *  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
26  *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27  *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28  *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
29  *  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
30  *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
31  *  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
32  *  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  */
34 /*****************************************************************************/
35 /* relocate.h                                                                */
36 /*                                                                           */
37 /* Declare names and IDs of all C6x relocation types supported in the        */
38 /* dynamic loader.  Note that this list must be kept in synch with the       */
39 /* C6x relocation engine files in the other object development tools.        */
40 /*****************************************************************************/
41 #ifndef RELOCATE_H
42 #define RELOCATE_H
43
44 #include <inttypes.h>
45 #include "elf32.h"
46 #include "dload.h"
47 #include "dload_api.h"
48
49 /*---------------------------------------------------------------------------*/
50 /* Declare some globals that are used for internal debugging and profiling.  */
51 /*---------------------------------------------------------------------------*/
52 #if LOADER_DEBUG || LOADER_PROFILE
53 #include <time.h>
54 extern int DLREL_relocations;
55 extern time_t DLREL_total_reloc_time;
56 #endif
57
58
59 /*---------------------------------------------------------------------------*/
60 /* Landing point for core loader's relocation processor.                     */
61 /*---------------------------------------------------------------------------*/
62 void DLREL_relocate(DLOAD_HANDLE handle, LOADER_FILE_DESC *elf_file,
63                     DLIMP_Dynamic_Module *dyn_module);
64
65 void DLREL_relocate_c60(DLOAD_HANDLE handle, LOADER_FILE_DESC *fd,
66                     DLIMP_Dynamic_Module *dyn_module);
67
68 #endif