Files
m241Neelima/vxworks-6.9/target/h/loadElfLib.h
T
2026-07-30 11:19:44 +05:30

104 lines
3.6 KiB
C

/* loadElfLib.h - ELF-specific loader library header */
/*
* Copyright (c) 1996, 2001, 2004, 2005, 2008-2010 Wind River Systems, Inc.
*
* The right to copy, distribute or otherwise make use of this software may be
* licensed only pursuant to the terms of an applicable Wind River license
* agreement.
*/
/*
modification history
--------------------
01k,29apr10,pad Moved extern C statement after include statements.
01j,26jan10,v_r Updated for host side new abstraction usage.
01i,30apr09,v_r Removed unused MAX_SEC_LEN macro.
01h,12mar08,v_r Now provide full ELF header to elfArchVerify() routine (req
CQ:WIND00090099).
01g,16aug05,jeg Fixed build and DLL load failure
01f,25jul05,v_r Updated copyright.
01e,31mar05,v_r Fixed SPR #98274 (loader backward compatibility errno
review).
01d,17sep04,jn Move towards shared files
01c,05apr04,jn Clean up - remove unused declarations and
development-related comments
01b,05sep01,jn changing ARM to ELF and created loadElfLibP.h -
moved utility macros and private type and structure
definitions to loadElfLibP.h
01a,20jun96,dbt written from /host/include/loadelf.h v01c
and /host/include/elfppc.h v01c
*/
#ifndef __INCloadElfLibh
#define __INCloadElfLibh
#ifdef HOST
#else
#include <vwModNum.h>
#endif /* HOST */
#include <elf.h>
#include <private/loadElfLibP.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Defines */
/* status codes */
#define S_loadElfLib_HDR_READ (M_loadElfLib | 1)
#define S_loadElfLib_HDR_ERROR (M_loadElfLib | 2)
#define S_loadElfLib_PHDR_MALLOC (M_loadElfLib | 3) /* obsoleted */
#define S_loadElfLib_PHDR_READ (M_loadElfLib | 4) /* obsoleted */
#define S_loadElfLib_SHDR_MALLOC (M_loadElfLib | 5) /* obsoleted */
#define S_loadElfLib_SHDR_READ (M_loadElfLib | 6)
#define S_loadElfLib_READ_SECTIONS (M_loadElfLib | 7)
#define S_loadElfLib_LOAD_SECTIONS (M_loadElfLib | 8) /* obsoleted */
#define S_loadElfLib_LOAD_PROG (M_loadElfLib | 9) /* obsoleted */
#define S_loadElfLib_SYMTAB (M_loadElfLib | 10) /* obsoleted */
#define S_loadElfLib_RELA_SECTION (M_loadElfLib | 11)
#define S_loadElfLib_SCN_READ (M_loadElfLib | 12) /* obsoleted */
#define S_loadElfLib_SDA_MALLOC (M_loadElfLib | 13) /* obsoleted */
#define S_loadElfLib_SST_READ (M_loadElfLib | 15) /* obsoleted */
#define S_loadElfLib_JMPADDR_ERROR (M_loadElfLib | 20) /* obsoleted */
#define S_loadElfLib_GPREL_REFERENCE (M_loadElfLib | 21) /* obsoleted */
#define S_loadElfLib_UNRECOGNIZED_RELOCENTRY (M_loadElfLib | 22)
#define S_loadElfLib_RELOC (M_loadElfLib | 23)
#define S_loadElfLib_UNSUPPORTED (M_loadElfLib | 24)
#define S_loadElfLib_REL_SECTION (M_loadElfLib | 25)
#define S_loadElfLib_INVALID_ARGUMENT (M_loadElfLib | 27)
#define S_loadElfLib_RELOCATION_OFFSET_TOO_LARGE (M_loadElfLib | 28)
#define S_loadElfLib_RELOCATION_UNIT_NOT_INSTALLED (M_loadElfLib | 29)
/* function declarations */
#ifdef HOST
extern DLL_EXPORT STATUS loadElfInit (void);
/*
* These funcs are called through function pointers to make it possible to
* support architecture relocation units that can be loaded or unloaded by a
* single target server (since the loader code is shared between the host and
* target).
*/
extern BOOL (* pElfArchVerify) (ELF_EHDR * pEhdr);
extern STATUS (* pElfArchReloc) (BOOL swapNeeded,
LOAD_MODULE_INFO * pLoadModuleInfo,
ELF_EHDR * pEhdr, ELF_SHDR * pRelHdr,
SCN_ADRS scnAddr, INT64 deltaBaseAddr,
SYM_INFO_TBL symInfoTbl);
#else
extern STATUS loadElfInit (void);
#endif
#ifdef __cplusplus
}
#endif
#endif /* __INCloadElfLibh */