⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ld_sysdep.h

📁 它通过提供glibc兼容使得应用程序移植到较小的c 库时相当得容易. 它能够应用到带虚拟存储的Linux和uClinux上.在大多数带MMU部件的平台上为使它更加紧凑,它也能够编译成共享库.uClib
💻 H
字号:
/* Various assmbly language/system dependent hacks that are required   so that we can minimize the amount of platform specific code. *//* Define this if the system uses RELOCA.  */#define ELF_USES_RELOCA/* Get a pointer to the argv array.  On many platforms this can be   just the address if the first argument, on other platforms we need   to do something a little more subtle here.  */#define GET_ARGV(ARGVP, ARGS) ((ARGVP) = ((unsigned int *) &(ARGS)))/* Initialization sequence for a GOT.  */#define INIT_GOT(GOT_BASE,MODULE)		\{						\  GOT_BASE[2] = (int) _dl_linux_resolve;	\  GOT_BASE[1] = (int) (MODULE);			\}/* Here is a macro to perform a relocation.  This is only used when   bootstrapping the dynamic loader.  RELP is the relocation that we   are performing, REL is the pointer to the address we are   relocating.  SYMBOL is the symbol involved in the relocation, and   LOAD is the load address. */#define PERFORM_BOOTSTRAP_RELOC(RELP,REL,SYMBOL,LOAD)		\  switch (ELF32_R_TYPE ((RELP)->r_info))			\    {								\    case R_68K_8:						\      *(char *) (REL) = (SYMBOL) + (RELP)->r_addend;		\      break;							\    case R_68K_16:						\      *(short *) (REL) = (SYMBOL) + (RELP)->r_addend;		\      break;							\    case R_68K_32:						\      *(REL) = (SYMBOL) + (RELP)->r_addend;			\      break;							\    case R_68K_PC8:						\      *(char *) (REL) = ((SYMBOL) + (RELP)->r_addend		\			 - (unsigned int) (REL));		\      break;							\    case R_68K_PC16:						\      *(short *) (REL) = ((SYMBOL) + (RELP)->r_addend		\			  - (unsigned int) (REL));		\      break;							\    case R_68K_PC32:						\      *(REL) = ((SYMBOL) + (RELP)->r_addend			\		- (unsigned int) (REL));			\      break;							\    case R_68K_GLOB_DAT:					\    case R_68K_JMP_SLOT:					\      *(REL) = (SYMBOL);					\      break;							\    case R_68K_RELATIVE:		/* Compatibility kludge */ \      *(REL) = ((unsigned int) (LOAD) + ((RELP)->r_addend ? : *(REL))); \      break;							\    default:							\      _dl_exit (1);						\    }/* Transfer control to the user's application, once the dynamic loader   is done.  */#define START()					\  __asm__ volatile ("unlk %%a6\n\t"		\		    "jmp %0@"			\		    : : "a" (_dl_elf_main));/* Here we define the magic numbers that this dynamic loader should accept */#define MAGIC1 EM_68K#undef MAGIC2/* Used for error messages */#define ELF_TARGET "m68k"struct elf_resolve;extern unsigned int _dl_linux_resolver (int, int, struct elf_resolve *, int);/* Define this because we do not want to call .udiv in the library.   Not needed for m68k.  */#define do_rem(result, n, base)  ((result) = (n) % (base))/* 4096 bytes alignment */#define PAGE_ALIGN 0xfffff000#define ADDR_ALIGN 0xfff#define OFFS_ALIGN 0x7ffff000

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -