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

📄 so.h

📁 T-kernel 的extension源代码
💻 H
字号:
/* *---------------------------------------------------------------------- *    T-Kernel / Standard Extension * *    Copyright (C) 2006 by Ken Sakamura. All rights reserved. *    T-Kernel / Standard Extension is distributed  *      under the T-License for T-Kernel / Standard Extension. *---------------------------------------------------------------------- * *    Version:   1.00.00 *    Released by T-Engine Forum(http://www.t-engine.org) at 2006/8/11. * *---------------------------------------------------------------------- *//* *	@(#)so.h (solib)  * *	Shared object(SO)support library */#ifndef _SO_H_#define _SO_H_#include <basic.h>#include <tk/tkernel.h>#include <alloca.h>#include <extension/file.h>#include <extension/proctask.h>#include <extension/errno.h>#include <extension/seio.h>#include <sys/pinfo.h>#include <sys/tkseconf.h>#include <sys/solib.h>#include <tstring.h>#include <tcode.h>#include <sys/syslog.h>#include <sys/knldbg.h>#include <sys/debug.h>#include <seio/sys/stat.h>#undef free#include <tm/tmonitor.h>#define DM(s) { /*tm_putstring(s);*/ /*tm_monitor();*/ }#define STDLIB_DIR "/SYS/lib/"#define PATH_LENGTH_MAX	(256 + 1)/* * Local use memory allocation function */#define	malloc	__so_malloc#define	calloc	__so_calloc#define	realloc	__so_realloc#define	free	__so_free/* * Target symbol information of symbol link at runtime */typedef struct {	DLInfo	*dlp;		/* Target object */	UW	relofs;		/* Relocation table offset */} TargetSym;/* * Searched shared object information */typedef struct {	QUEUE q;	UB *name;		/* Object name(ASCII) */	SOBJ_HDR soHdr;} SobjInfo;/* ------------------------------------------------------------------------ *//* *	Global function/variable * */#define	IMPORT_DEFINE	1#if IMPORT_DEFINE/* soinit.c */IMPORT DLInfo	__dlInfo;IMPORT W	__so_LazyMode;IMPORT SOBJ_HDR	__so_myfile;IMPORT SOBJ_HDR	__so_stdlib;IMPORT QUEUE	__so_sobjInfo;IMPORT ER	__so_initloading( void );IMPORT void	__so_init( void );IMPORT void	__so_fini( void );/* dlinfo.c */IMPORT DLInfo*	__newDLInfo( SOBJ_HDR *soHdr, DLInfo *loader );IMPORT void	__freeDLInfo( DLInfo *dlp );IMPORT DLInfo*	__searchDLInfo( SOBJ_HDR *soHdr );/* load.c */IMPORT ER	__so_getdynamicinfo( DLInfo *dlp );IMPORT ER	__so_loading( DLInfo **dlpp, SOBJ_HDR *soHdr, DLInfo *loader );IMPORT ER	__so_depsloading( DLInfo *loader, UW global );IMPORT void	__so_callinit( DLInfo *loader );IMPORT void	__so_callfini( DLInfo *loader );/* reloc.c */IMPORT ER	__so_relocate( DLInfo *loader, UW lazy );/* resolve.c */IMPORT UW	__so_resolve( DLInfo *dlp, UB *name, UW reltype, Elf32_Sym **sym );IMPORT UW	__so_localresolve( DLInfo *dlp, UB *name, DLInfo *skip, Elf32_Sym **sym );/* somalloc.c */IMPORT ER	__so_initmalloc( void );IMPORT void*	__so_malloc( size_t size );IMPORT void*	__so_calloc( size_t nmemb, size_t size );IMPORT void*	__so_realloc( void *ptr, size_t size );IMPORT void	__so_free( void *ptr );#endif/* runtime.S */IMPORT void __so_runtime_resolve();#endif /* _SO_H_ *//* ------------------------------------------------------------------------ */

⌨️ 快捷键说明

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