mirror of
https://github.com/apache/nuttx.git
synced 2026-05-31 14:27:37 +08:00
binfmt/, binfmt/libelf/, include/nuttx, libs/libc/machine, libs/libc/modlib, and others: Move elf related arch function to include/nuttx/elf.h because the implementation is located in libs/libc/machine and in order to avoid the conflict with the 3rd party libraries and clean up the file inclusion: (1) Remove redundant elf32.h, (2) Remove nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove nuttx/binfmt/elf.h in modlib, and (4) Rmove nuttx/module.h in modlib.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* binfmt/binfmt_loadmodule.c
|
* binfmt/binfmt_unloadmodule.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009, 2012-2013, 2017 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2009, 2012-2013, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
* Name: exec_dtors
|
* Name: exec_dtors
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Execute C++ static constructors.
|
* Execute C++ static destructors.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* binp - Load state information
|
* binp - Load state information
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
* Name: unregister_binfmt
|
* Name: unregister_binfmt
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Register a loader for a binary format
|
* Unregister a loader for a binary format
|
||||||
*
|
*
|
||||||
* Returned Value:
|
* Returned Value:
|
||||||
* This is a NuttX internal function so it follows the convention that
|
* This is a NuttX internal function so it follows the convention that
|
||||||
|
|||||||
@@ -42,12 +42,9 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/binfmt/binfmt.h>
|
#include <nuttx/binfmt/binfmt.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
#include <nuttx/binfmt/elf.h>
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <elf32.h>
|
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
#include <nuttx/binfmt/elf.h>
|
||||||
@@ -137,7 +136,7 @@ int elf_findsymtab(FAR struct elf_loadinfo_s *loadinfo);
|
|||||||
* Name: elf_readsym
|
* Name: elf_readsym
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Read the ELFT symbol structure at the specfied index into memory.
|
* Read the ELF symbol structure at the specfied index into memory.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* loadinfo - Load state information
|
* loadinfo - Load state information
|
||||||
@@ -294,7 +293,7 @@ int elf_addrenv_alloc(FAR struct elf_loadinfo_s *loadinfo, size_t textsize,
|
|||||||
* Name: elf_addrenv_select
|
* Name: elf_addrenv_select
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Temporarily select the task's address environemnt.
|
* Temporarily select the task's address environment.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* loadinfo - Load state information
|
* loadinfo - Load state information
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ int elf_addrenv_alloc(FAR struct elf_loadinfo_s *loadinfo, size_t textsize,
|
|||||||
ret = up_addrenv_vdata(&loadinfo->addrenv, textsize, &vdata);
|
ret = up_addrenv_vdata(&loadinfo->addrenv, textsize, &vdata);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
berr("ERROR: up_adup_addrenv_vdatadrenv_vtext failed: %d\n", ret);
|
berr("ERROR: up_addrenv_vdata failed: %d\n", ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,11 +41,11 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
#include <nuttx/binfmt/elf.h>
|
||||||
#include <nuttx/binfmt/symtab.h>
|
#include <nuttx/binfmt/symtab.h>
|
||||||
|
|
||||||
@@ -279,7 +279,7 @@ int elf_bind(FAR struct elf_loadinfo_s *loadinfo,
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
berr("elf_allocbuffer failed: %d\n", ret);
|
berr("elf_allocbuffer failed: %d\n", ret);
|
||||||
return -ENOMEM;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_ADDRENV
|
#ifdef CONFIG_ARCH_ADDRENV
|
||||||
|
|||||||
@@ -44,7 +44,6 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* binfmt/libelf/elf_iobuffer.c
|
* binfmt/libelf/libelf_iobuffer.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012-2013 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012-2013 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
|
|||||||
@@ -45,7 +45,6 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,6 @@
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
@@ -206,7 +205,7 @@ int elf_findsymtab(FAR struct elf_loadinfo_s *loadinfo)
|
|||||||
* Name: elf_readsym
|
* Name: elf_readsym
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Read the ELFT symbol structure at the specfied index into memory.
|
* Read the ELF symbol structure at the specified index into memory.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* loadinfo - Load state information
|
* loadinfo - Load state information
|
||||||
@@ -322,7 +321,7 @@ int elf_symvalue(FAR struct elf_loadinfo_s *loadinfo, FAR Elf32_Sym *sym,
|
|||||||
|
|
||||||
/* Yes... add the exported symbol value to the ELF symbol table entry */
|
/* Yes... add the exported symbol value to the ELF symbol table entry */
|
||||||
|
|
||||||
binfo("SHN_ABS: name=%s %08x+%08x=%08x\n",
|
binfo("SHN_UNDEF: name=%s %08x+%08x=%08x\n",
|
||||||
loadinfo->iobuffer, sym->st_value, symbol->sym_value,
|
loadinfo->iobuffer, sym->st_value, symbol->sym_value,
|
||||||
sym->st_value + symbol->sym_value);
|
sym->st_value + symbol->sym_value);
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
#include <nuttx/binfmt/elf.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
+4
-49
@@ -105,10 +105,6 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <sched.h>
|
#include <sched.h>
|
||||||
|
|
||||||
#if defined(CONFIG_ELF) || defined(CONFIG_MODULE)
|
|
||||||
# include <elf32.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <arch/arch.h>
|
#include <arch/arch.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -1323,55 +1319,14 @@ int up_shmdt(uintptr_t vaddr, unsigned int npages);
|
|||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Interfaces required for ELF module support
|
* Interfaces required for ELF module support
|
||||||
****************************************************************************/
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: up_checkarch
|
|
||||||
*
|
*
|
||||||
* Description:
|
* up_checkarch - Perform architecture-specific ELF check
|
||||||
* Given the ELF header in 'hdr', verify that the module is appropriate
|
* up_relocate - Perform architecture-specific ELF relocation
|
||||||
* for the current, configured architecture. Every architecture that uses
|
* up_relocateadd - Perform architecture-specific ELF relocation
|
||||||
* the module loader must provide this function.
|
|
||||||
*
|
|
||||||
* Input Parameters:
|
|
||||||
* hdr - The ELF header read from the module file.
|
|
||||||
*
|
|
||||||
* Returned Value:
|
|
||||||
* True if the architecture supports this module file.
|
|
||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if defined(CONFIG_ELF) || defined(CONFIG_MODULE)
|
/* See prototype in include/nuttx/elf.h */
|
||||||
bool up_checkarch(FAR const Elf32_Ehdr *hdr);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Name: up_relocate and up_relocateadd
|
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* Perform on architecture-specific ELF relocation. Every architecture
|
|
||||||
* that uses the module loader must provide this function.
|
|
||||||
*
|
|
||||||
* Input Parameters:
|
|
||||||
* rel - The relocation type
|
|
||||||
* sym - The ELF symbol structure containing the fully resolved value.
|
|
||||||
* There are a few relocation types for a few architectures that do
|
|
||||||
* not require symbol information. For those, this value will be
|
|
||||||
* NULL. Implementations of these functions must be able to handle
|
|
||||||
* that case.
|
|
||||||
* addr - The address that requires the relocation.
|
|
||||||
*
|
|
||||||
* Returned Value:
|
|
||||||
* Zero (OK) if the relocation was successful. Otherwise, a negated errno
|
|
||||||
* value indicating the cause of the relocation failure.
|
|
||||||
*
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(CONFIG_ELF) || defined(CONFIG_MODULE)
|
|
||||||
int up_relocate(FAR const Elf32_Rel *rel, FAR const Elf32_Sym *sym,
|
|
||||||
uintptr_t addr);
|
|
||||||
int up_relocateadd(FAR const Elf32_Rela *rel,
|
|
||||||
FAR const Elf32_Sym *sym, uintptr_t addr);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: up_coherent_dcache
|
* Name: up_coherent_dcache
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <nxflat.h>
|
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/sched.h>
|
#include <nuttx/sched.h>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
#include <elf32.h>
|
#include <elf32.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/module.h>
|
#include <nuttx/symtab.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
@@ -136,7 +136,7 @@ struct mod_info_s
|
|||||||
mod_uninitializer_t uninitializer; /* Module uninitializer */
|
mod_uninitializer_t uninitializer; /* Module uninitializer */
|
||||||
FAR void *arg; /* Uninitializer argument */
|
FAR void *arg; /* Uninitializer argument */
|
||||||
FAR const struct symtab_s *exports; /* Symbols exported by module */
|
FAR const struct symtab_s *exports; /* Symbols exported by module */
|
||||||
unsigned int nexports; /* Number of symobols in exports list */
|
unsigned int nexports; /* Number of symbols in exports list */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* A NuttX module is expected to export a function called module_initialize()
|
/* A NuttX module is expected to export a function called module_initialize()
|
||||||
@@ -161,7 +161,6 @@ typedef CODE int (*mod_callback_t)(FAR struct module_s *modp, FAR void *arg);
|
|||||||
|
|
||||||
/* This describes the file to be loaded. */
|
/* This describes the file to be loaded. */
|
||||||
|
|
||||||
struct symtab_s;
|
|
||||||
struct module_s
|
struct module_s
|
||||||
{
|
{
|
||||||
FAR struct module_s *flink; /* Supports a singly linked list */
|
FAR struct module_s *flink; /* Supports a singly linked list */
|
||||||
@@ -221,8 +220,6 @@ struct mod_loadinfo_s
|
|||||||
* Public Data
|
* Public Data
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
struct symtab_s;
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Function Prototypes
|
* Public Function Prototypes
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|||||||
@@ -40,13 +40,11 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <arch/elf.h>
|
#include <arch/elf.h>
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
|
|||||||
@@ -40,13 +40,11 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <arch/elf.h>
|
#include <arch/elf.h>
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
|
|||||||
@@ -40,13 +40,11 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <arch/elf.h>
|
#include <arch/elf.h>
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Functions
|
* Public Functions
|
||||||
|
|||||||
@@ -40,13 +40,11 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <arch/elf.h>
|
#include <arch/elf.h>
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Function Prototypes
|
* Public Function Prototypes
|
||||||
|
|||||||
@@ -40,13 +40,11 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <arch/elf.h>
|
#include <arch/elf.h>
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
|
|||||||
@@ -40,12 +40,10 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
|
|||||||
@@ -40,12 +40,10 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/binfmt/elf.h>
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Pre-processor Definitions
|
* Pre-processor Definitions
|
||||||
|
|||||||
@@ -43,10 +43,9 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <elf32.h>
|
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/module.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Function Prototypes
|
* Public Function Prototypes
|
||||||
@@ -85,7 +84,7 @@ int modlib_findsymtab(FAR struct mod_loadinfo_s *loadinfo);
|
|||||||
* Name: modlib_readsym
|
* Name: modlib_readsym
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Read the ELFT symbol structure at the specfied index into memory.
|
* Read the ELF symbol structure at the specified index into memory.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* loadinfo - Load state information
|
* loadinfo - Load state information
|
||||||
|
|||||||
@@ -41,14 +41,12 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
#include <nuttx/binfmt/symtab.h>
|
|
||||||
|
|
||||||
#include "modlib/modlib.h"
|
#include "modlib/modlib.h"
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
@@ -44,11 +44,9 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/fs/fs.h>
|
#include <nuttx/fs/fs.h>
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,6 @@
|
|||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
#include "libc.h"
|
#include "libc.h"
|
||||||
|
|||||||
@@ -45,12 +45,10 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
#include "libc.h"
|
#include "libc.h"
|
||||||
|
|||||||
@@ -43,11 +43,9 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/fs/fs.h>
|
#include <nuttx/fs/fs.h>
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/semaphore.h>
|
#include <nuttx/semaphore.h>
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@@ -72,7 +71,7 @@ struct mod_registrylock_s
|
|||||||
static struct mod_registrylock_s g_modlock =
|
static struct mod_registrylock_s g_modlock =
|
||||||
{
|
{
|
||||||
SEM_INITIALIZER(1), /* lock */
|
SEM_INITIALIZER(1), /* lock */
|
||||||
0, /* pid */
|
NO_HOLDER, /* pid */
|
||||||
0 /* count */
|
0 /* count */
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -118,7 +117,7 @@ void modlib_registry_lock(void)
|
|||||||
{
|
{
|
||||||
while ((ret = _SEM_WAIT(&g_modlock.lock)) < 0)
|
while ((ret = _SEM_WAIT(&g_modlock.lock)) < 0)
|
||||||
{
|
{
|
||||||
/* The only case that an error should occr here is if
|
/* The only case that an error should occur here is if
|
||||||
* the wait was awakened by a signal.
|
* the wait was awakened by a signal.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,6 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
#include "libc.h"
|
#include "libc.h"
|
||||||
|
|||||||
@@ -41,13 +41,10 @@
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
#include <nuttx/binfmt/symtab.h>
|
|
||||||
|
|
||||||
#include "modlib/modlib.h"
|
#include "modlib/modlib.h"
|
||||||
|
|
||||||
@@ -271,7 +268,7 @@ int modlib_findsymtab(FAR struct mod_loadinfo_s *loadinfo)
|
|||||||
* Name: modlib_readsym
|
* Name: modlib_readsym
|
||||||
*
|
*
|
||||||
* Description:
|
* Description:
|
||||||
* Read the ELFT symbol structure at the specfied index into memory.
|
* Read the ELF symbol structure at the specified index into memory.
|
||||||
*
|
*
|
||||||
* Input Parameters:
|
* Input Parameters:
|
||||||
* loadinfo - Load state information
|
* loadinfo - Load state information
|
||||||
@@ -421,7 +418,7 @@ int modlib_symvalue(FAR struct module_s *modp,
|
|||||||
|
|
||||||
/* Yes... add the exported symbol value to the ELF symbol table entry */
|
/* Yes... add the exported symbol value to the ELF symbol table entry */
|
||||||
|
|
||||||
binfo("SHN_ABS: name=%s %08x+%08x=%08x\n",
|
binfo("SHN_UNDEF: name=%s %08x+%08x=%08x\n",
|
||||||
loadinfo->iobuffer, sym->st_value, symbol->sym_value,
|
loadinfo->iobuffer, sym->st_value, symbol->sym_value,
|
||||||
sym->st_value + symbol->sym_value);
|
sym->st_value + symbol->sym_value);
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,6 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include <nuttx/symtab.h>
|
#include <nuttx/symtab.h>
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
@@ -43,8 +43,6 @@
|
|||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/kmalloc.h>
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
#include "libc.h"
|
#include "libc.h"
|
||||||
|
|||||||
@@ -42,7 +42,6 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#include <nuttx/module.h>
|
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
#include "libc.h"
|
#include "libc.h"
|
||||||
|
|||||||
@@ -40,11 +40,11 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
|
#include <nuttx/elf.h>
|
||||||
#include <nuttx/lib/modlib.h>
|
#include <nuttx/lib/modlib.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|||||||
@@ -42,7 +42,6 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <elf32.h>
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user