| 
					
				 | 
			
			
				@@ -0,0 +1,108 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+diff --git a/elf/syscallas.S b/elf/syscallas.S 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+new file mode 120000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+index 0000000..107bd13 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--- /dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++++ b/elf/syscallas.S 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -0,0 +1 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++../syscallas.S 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+\ No newline at end of file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+diff --git a/elf/syscalldb.c b/elf/syscalldb.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+new file mode 120000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+index 0000000..61dca52 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--- /dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++++ b/elf/syscalldb.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -0,0 +1 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++../syscalldb.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+\ No newline at end of file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+diff --git a/syscallas.S b/syscallas.S 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+new file mode 100644 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+index 0000000..07c6ffc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--- /dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++++ b/syscallas.S 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -0,0 +1,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#include <syscalldb.h> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++.weak syscalldb 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++.type syscalldb,@function 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++syscalldb: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++	.cfi_startproc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++	syscall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++	retq 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++	.cfi_endproc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++	.size syscalldb,.-syscalldb 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+diff --git a/syscalldb.c b/syscalldb.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+new file mode 100644 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+index 0000000..7a56162 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--- /dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++++ b/syscalldb.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -0,0 +1,16 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#include "syscalldb.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#include <stdarg.h> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#include <errno.h> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++int register_library (const char * name, unsigned long load_address) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++	__attribute__((weak)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++int register_library (const char * name, unsigned long load_address) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++	return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++long int glibc_option (const char * opt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++	return -EINVAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+diff --git a/syscalldb.h b/syscalldb.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+new file mode 100644 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+index 0000000..2833def 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--- /dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++++ b/syscalldb.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -0,0 +1,39 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#ifndef _SYSCALLDB_H_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#define _SYSCALLDB_H_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#ifdef __ASSEMBLER__ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++.weak syscalldb 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++.type syscalldb, @function 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++# if defined(PSEUDO) && defined(SYSCALL_NAME) && defined(SYSCALL_SYMBOL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#  define SYSCALLDB                     \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++    subq $128, %rsp;                    \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++    callq *syscalldb@GOTPCREL(%rip);    \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++    addq $128, %rsp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++# else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#  define SYSCALLDB                             \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++    callq *syscalldb@GOTPCREL(%rip) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++# endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#else /* !__ASSEMBLER__ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++asm ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++".weak syscalldb\r\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++".type syscalldb, @function\r\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#define SYSCALLDB                           \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++    "subq $128, %%rsp\n\t"                  \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++    "callq *syscalldb@GOTPCREL(%%rip)\n\t"  \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++    "addq $128, %%rsp\n\t" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#define SYSCALLDB_ASM                       \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++    "callq *syscalldb@GOTPCREL(%rip)\n\t" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++long int glibc_option (const char * opt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++asm ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++".weak glibc_option\r\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++".type glibc_option, @function\r\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#endif /* Assembler */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++#endif /* _SYSCALLDB_H */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+diff --git a/sysdeps/unix/sysv/linux/x86_64/syscalldb.h b/sysdeps/unix/sysv/linux/x86_64/syscalldb.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+new file mode 120000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+index 0000000..55ab305 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+--- /dev/null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++++ b/sysdeps/unix/sysv/linux/x86_64/syscalldb.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -0,0 +1 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++../../../../../syscalldb.h 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+\ No newline at end of file 
			 |