亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dyld.c

?? MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
?? C
字號:
/* loader-dyld.c -- dynamic linking on darwin and OS X   Copyright (C) 1998, 1999, 2000, 2004, 2006,                 2007 Free Software Foundation, Inc.   Written by Peter O'Gorman, 1998   NOTE: The canonical source of this file is maintained with the   GNU Libtool package.  Report bugs to bug-libtool@gnu.org.GNU Libltdl is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2 of the License, or (at your option) any later version.As a special exception to the GNU Lesser General Public License,if you distribute this file as part of a program or library thatis built using GNU Libtool, you may include this file under thesame distribution terms that you use for the rest of that program.GNU Libltdl is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU Lesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with GNU Libltdl; see the file COPYING.LIB.  If not, acopy can be downloaded from  http://www.gnu.org/licenses/lgpl.html,or obtained by writing to the Free Software Foundation, Inc.,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.*/#include "lt__private.h"#include "lt_dlloader.h"/* Use the preprocessor to rename non-static symbols to avoid namespace   collisions when the loader code is statically linked into libltdl.   Use the "<module_name>_LTX_" prefix so that the symbol addresses can   be fetched from the preloaded symbol list by lt_dlsym():  */#define get_vtable	dyld_LTX_get_vtableLT_BEGIN_C_DECLSLT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data);LT_END_C_DECLS/* Boilerplate code to set up the vtable for hooking this loader into   libltdl's loader list:  */static int	 vl_init  (lt_user_data loader_data);static int	 vl_exit  (lt_user_data loader_data);static lt_module vm_open  (lt_user_data loader_data, const char *filename,                           lt_dladvise advise);static int	 vm_close (lt_user_data loader_data, lt_module module);static void *	 vm_sym   (lt_user_data loader_data, lt_module module,			  const char *symbolname);/* Return the vtable for this loader, only the name and sym_prefix   attributes (plus the virtual function implementations, obviously)   change between loaders.  */lt_dlvtable *get_vtable (lt_user_data loader_data){  static lt_dlvtable *vtable = 0;  if (!vtable)    {      vtable = lt__zalloc (sizeof *vtable);    }  if (vtable && !vtable->name)    {      vtable->name		= "lt_dyld";      vtable->sym_prefix	= "_";      vtable->dlloader_init	= vl_init;      vtable->module_open	= vm_open;      vtable->module_close	= vm_close;      vtable->find_sym		= vm_sym;      vtable->dlloader_data	= loader_data;      vtable->priority		= LT_DLLOADER_APPEND;    }  if (vtable && (vtable->dlloader_data != loader_data))    {      LT__SETERROR (INIT_LOADER);      return 0;    }  return vtable;}/* --- IMPLEMENTATION --- */#if defined(HAVE_MACH_O_DYLD_H)#  if !defined(__APPLE_CC__) && !defined(__MWERKS__) && !defined(__private_extern__)  /* Is this correct? Does it still function properly? */#    define __private_extern__ extern#  endif#  include <mach-o/dyld.h>#endif#include <mach-o/getsect.h>/* We have to put some stuff here that isn't in older dyld.h files */#if !defined(ENUM_DYLD_BOOL)# define ENUM_DYLD_BOOL# undef FALSE# undef TRUE enum DYLD_BOOL {    FALSE,    TRUE };#endif#if !defined(LC_REQ_DYLD)# define LC_REQ_DYLD 0x80000000#endif#if !defined(LC_LOAD_WEAK_DYLIB)# define LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD)#endif#if !defined(NSADDIMAGE_OPTION_NONE)#  define NSADDIMAGE_OPTION_NONE                          0x0#endif#if !defined(NSADDIMAGE_OPTION_RETURN_ON_ERROR)#  define NSADDIMAGE_OPTION_RETURN_ON_ERROR               0x1#endif#if !defined(NSADDIMAGE_OPTION_WITH_SEARCHING)#  define NSADDIMAGE_OPTION_WITH_SEARCHING                0x2#endif#if !defined(NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED)#  define NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED         0x4#endif#if !defined(NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME)#  define NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME 0x8#endif#if !defined(NSLOOKUPSYMBOLINIMAGE_OPTION_BIND)#  define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND               0x0#endif#if !defined(NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW)#  define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW           0x1#endif#if !defined(NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY)#  define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY         0x2#endif#if !defined(NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR)#  define NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR    0x4#endif#define LT__SYMLOOKUP_OPTS	(NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW \				| NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR)#if defined(__BIG_ENDIAN__)#  define LT__MAGIC	MH_MAGIC#else#  define LT__MAGIC	MH_CIGAM#endif#define DYLD__SETMYERROR(errmsg)    LT__SETERRORSTR (dylderror (errmsg))#define DYLD__SETERROR(errcode)	    DYLD__SETMYERROR (LT__STRERROR (errcode))typedef struct mach_header mach_header;typedef struct dylib_command dylib_command;static const char *dylderror (const char *errmsg);static const mach_header *lt__nsmodule_get_header (NSModule module);static const char *lt__header_get_instnam (const mach_header *mh);static const mach_header *lt__match_loadedlib (const char *name);static NSSymbol lt__linkedlib_symbol (const char *symname, const mach_header *mh);static const mach_header *(*lt__addimage)	(const char *image_name,						 unsigned long options) = 0;static NSSymbol	(*lt__image_symbol)		(const mach_header *image,						 const char *symbolName,						 unsigned long options) = 0;static enum DYLD_BOOL (*lt__image_symbol_p)	(const mach_header *image,						 const char *symbolName) = 0;static enum DYLD_BOOL (*lt__module_export)	(NSModule module) = 0;static int dyld_cannot_close				  = 0;/* A function called through the vtable to initialise this loader.  */static intvl_init (lt_user_data loader_data){  int errors = 0;  if (! dyld_cannot_close)    {      if (!_dyld_present ())	{	  ++errors;	}      else	{	  (void) _dyld_func_lookup ("__dyld_NSAddImage",				    (unsigned long*) &lt__addimage);	  (void) _dyld_func_lookup ("__dyld_NSLookupSymbolInImage",				    (unsigned long*)&lt__image_symbol);	  (void) _dyld_func_lookup ("__dyld_NSIsSymbolNameDefinedInImage",				    (unsigned long*) &lt__image_symbol_p);	  (void) _dyld_func_lookup ("__dyld_NSMakePrivateModulePublic",				    (unsigned long*) &lt__module_export);	  dyld_cannot_close = lt_dladderror ("can't close a dylib");	}    }  return errors;}/* A function called through the vtable to open a module with this   loader.  Returns an opaque representation of the newly opened   module for processing with this loader's other vtable functions.  */static lt_modulevm_open (lt_user_data loader_data, const char *filename,         lt_dladvise LT__UNUSED advise){  lt_module module = 0;  NSObjectFileImage ofi = 0;  if (!filename)    {      return (lt_module) -1;    }  switch (NSCreateObjectFileImageFromFile (filename, &ofi))    {    case NSObjectFileImageSuccess:      module = NSLinkModule (ofi, filename, NSLINKMODULE_OPTION_RETURN_ON_ERROR			     		    | NSLINKMODULE_OPTION_PRIVATE			     		    | NSLINKMODULE_OPTION_BINDNOW);      NSDestroyObjectFileImage (ofi);      if (module)	{	  lt__module_export (module);	}      break;    case NSObjectFileImageInappropriateFile:      if (lt__image_symbol_p && lt__image_symbol)	{	  module = (lt_module) lt__addimage(filename,					    NSADDIMAGE_OPTION_RETURN_ON_ERROR);	}      break;    case NSObjectFileImageFailure:    case NSObjectFileImageArch:    case NSObjectFileImageFormat:    case NSObjectFileImageAccess:      /*NOWORK*/      break;    }  if (!module)    {      DYLD__SETERROR (CANNOT_OPEN);    }  return module;}/* A function called through the vtable when a particular module   should be unloaded.  */static intvm_close (lt_user_data loader_data, lt_module module){  int errors = 0;  if (module != (lt_module) -1)    {      const mach_header *mh = (const mach_header *) module;      int flags = 0;      if (mh->magic == LT__MAGIC)	{	  lt_dlseterror (dyld_cannot_close);	  ++errors;	}      else	{	  /* Currently, if a module contains c++ static destructors and it	     is unloaded, we get a segfault in atexit(), due to compiler and	     dynamic loader differences of opinion, this works around that.  */	  if ((const struct section *) NULL !=	      getsectbynamefromheader (lt__nsmodule_get_header (module),				       "__DATA", "__mod_term_func"))	    {	      flags |= NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED;	    }#if defined(__ppc__)	  flags |= NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES;#endif	  if (!NSUnLinkModule (module, flags))	    {	      DYLD__SETERROR (CANNOT_CLOSE);	      ++errors;	    }	}    }  return errors;}/* A function called through the vtable to get the address of   a symbol loaded from a particular module.  */static void *vm_sym (lt_user_data loader_data, lt_module module, const char *name){  NSSymbol *nssym = 0;  const mach_header *mh = (const mach_header *) module;  char saveError[256] = "Symbol not found";  if (module == (lt_module) -1)    {      void *address, *unused;      _dyld_lookup_and_bind (name, (unsigned long*) &address, &unused);      return address;    }  if (mh->magic == LT__MAGIC)    {      if (lt__image_symbol_p && lt__image_symbol)	{	  if (lt__image_symbol_p (mh, name))	    {	      nssym = lt__image_symbol (mh, name, LT__SYMLOOKUP_OPTS);	    }	}    }  else    {      nssym = NSLookupSymbolInModule (module, name);    }  if (!nssym)    {      strncpy (saveError, dylderror (LT__STRERROR (SYMBOL_NOT_FOUND)), 255);      saveError[255] = 0;      if (!mh)	{	  mh = (mach_header *)lt__nsmodule_get_header (module);	}      nssym = lt__linkedlib_symbol (name, mh);    }  if (!nssym)    {      LT__SETERRORSTR (saveError);    }  return nssym ? NSAddressOfSymbol (nssym) : 0;}/* --- HELPER FUNCTIONS --- *//* Return the dyld error string, or the passed in error string if none. */static const char *dylderror (const char *errmsg){  NSLinkEditErrors ler;  int lerno;  const char *file;  const char *errstr;  NSLinkEditError (&ler, &lerno, &file, &errstr);  if (! (errstr && *errstr))    {      errstr = errmsg;    }  return errstr;}/* There should probably be an apple dyld api for this. */static const mach_header *lt__nsmodule_get_header (NSModule module){  int i = _dyld_image_count();  const char *modname = NSNameOfModule (module);  const mach_header *mh = 0;  if (!modname)    return NULL;  while (i > 0)    {      --i;      if (strneq (_dyld_get_image_name (i), modname))	{	  mh = _dyld_get_image_header (i);	  break;	}    }  return mh;}/* NSAddImage is also used to get the loaded image, but it only works if   the lib is installed, for uninstalled libs we need to check the   install_names against each other.  Note that this is still broken if   DYLD_IMAGE_SUFFIX is set and a different lib was loaded as a result.  */static const char *lt__header_get_instnam (const mach_header *mh){  unsigned long offset = sizeof(mach_header);  const char* result   = 0;  int j;  for (j = 0; j < mh->ncmds; j++)    {      struct load_command *lc;      lc = (struct load_command*) (((unsigned long) mh) + offset);      if (LC_ID_DYLIB == lc->cmd)	{	  result=(char*)(((dylib_command*) lc)->dylib.name.offset +			 (unsigned long) lc);	}      offset += lc->cmdsize;    }  return result;}static const mach_header *lt__match_loadedlib (const char *name){  const mach_header *mh	= 0;  int i = _dyld_image_count();  while (i > 0)    {      const char *id;      --i;      id = lt__header_get_instnam (_dyld_get_image_header (i));      if (id && strneq (id, name))	{	  mh = _dyld_get_image_header (i);	  break;	}    }  return mh;}/* Safe to assume our mh is good. */static NSSymbollt__linkedlib_symbol (const char *symname, const mach_header *mh){  NSSymbol symbol = 0;  if (lt__image_symbol && NSIsSymbolNameDefined (symname))    {      unsigned long offset = sizeof(mach_header);      struct load_command *lc;      int j;      for (j = 0; j < mh->ncmds; j++)	{	  lc = (struct load_command*) (((unsigned long) mh) + offset);	  if ((LC_LOAD_DYLIB == lc->cmd) || (LC_LOAD_WEAK_DYLIB == lc->cmd))	    {	      unsigned long base = ((dylib_command *) lc)->dylib.name.offset;	      char *name = (char *) (base + (unsigned long) lc);	      const mach_header *mh1 = lt__match_loadedlib (name);	      if (!mh1)		{		  /* Maybe NSAddImage can find it */		  mh1 = lt__addimage (name,				      NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED				      | NSADDIMAGE_OPTION_WITH_SEARCHING				      | NSADDIMAGE_OPTION_RETURN_ON_ERROR);		}	      if (mh1)		{		  symbol = lt__image_symbol (mh1, symname, LT__SYMLOOKUP_OPTS);		  if (symbol)		    break;		}	    }	  offset += lc->cmdsize;	}    }  return symbol;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品久久久久蜜臀| 亚洲精品精品亚洲| 日韩欧美激情在线| 欧美日韩大陆一区二区| 欧洲生活片亚洲生活在线观看| www.日韩大片| av成人动漫在线观看| av一区二区三区| 92国产精品观看| 色拍拍在线精品视频8848| 91国偷自产一区二区三区观看| 色视频欧美一区二区三区| 欧美伊人久久久久久午夜久久久久| 欧美性生活久久| 欧美日韩久久一区二区| 欧美肥胖老妇做爰| 日韩美女天天操| 国产日韩综合av| **网站欧美大片在线观看| 亚洲最大成人综合| 日韩影院精彩在线| 激情综合色播五月| caoporn国产精品| 欧美中文字幕一区二区三区亚洲 | 日韩欧美国产wwwww| 精品国偷自产国产一区| 国产婷婷精品av在线| 亚洲日本va在线观看| 一个色综合av| 青青草原综合久久大伊人精品 | 在线观看欧美黄色| 69久久99精品久久久久婷婷| 日韩视频在线永久播放| 久久精品一区二区三区不卡牛牛| 国产精品人人做人人爽人人添| 亚洲免费观看在线观看| 午夜久久电影网| 福利一区在线观看| 欧美午夜理伦三级在线观看| 日韩一区二区在线观看视频| 国产精品美女www爽爽爽| 亚洲一区二区三区四区五区中文| 奇米四色…亚洲| 成人免费视频一区二区| 欧美私人免费视频| 国产日韩精品久久久| 亚洲午夜av在线| 粉嫩av一区二区三区在线播放| 欧洲亚洲精品在线| 久久精品视频免费观看| 亚洲国产欧美日韩另类综合| 激情综合色综合久久综合| 色婷婷综合久久久中文字幕| 久久影院视频免费| 一级中文字幕一区二区| 国产永久精品大片wwwapp| 欧洲一区二区三区在线| 欧美激情一区在线观看| 美女mm1313爽爽久久久蜜臀| 91亚洲精品乱码久久久久久蜜桃| 日韩精品一区二区三区蜜臀| 17c精品麻豆一区二区免费| 老司机精品视频线观看86| 一本色道a无线码一区v| 国产午夜亚洲精品午夜鲁丝片| 亚洲国产成人av网| 成人免费视频视频| 日韩精品一区二区三区四区 | 亚洲国产欧美在线人成| 国产成人高清在线| 日韩一区二区三区免费看 | 国产不卡视频在线播放| 欧美一级搡bbbb搡bbbb| 亚洲精品免费一二三区| 丰满少妇在线播放bd日韩电影| 91精品国产欧美一区二区18| 亚洲另类在线制服丝袜| 国产91精品入口| 精品国产自在久精品国产| 午夜欧美视频在线观看| 色八戒一区二区三区| 国产精品久久精品日日| 国产麻豆日韩欧美久久| 日韩欧美不卡一区| 丝袜亚洲另类欧美| 欧美日韩在线播放三区| 中文字幕亚洲区| 丁香一区二区三区| 久久亚洲私人国产精品va媚药| 理论电影国产精品| 日韩视频一区二区在线观看| 天堂资源在线中文精品| 中文久久乱码一区二区| 国产精品一线二线三线| 日韩西西人体444www| 日韩综合一区二区| 91.麻豆视频| 首页国产欧美日韩丝袜| 欧美久久一区二区| 午夜伊人狠狠久久| 欧美日本一区二区三区| 视频一区免费在线观看| 欧美精品99久久久**| 日韩精品亚洲一区二区三区免费| 欧美色手机在线观看| 亚洲福利一区二区三区| 欧美日韩国产综合一区二区三区 | 奇米一区二区三区| 欧美一级免费观看| 久久精品国产99国产| 日韩欧美一区在线| 国产精品一区免费在线观看| 国产女主播视频一区二区| 岛国精品在线播放| 亚洲欧美在线视频| 91久久精品日日躁夜夜躁欧美| 一区二区三区成人| 欧美日韩和欧美的一区二区| 日本中文在线一区| 精品福利一区二区三区免费视频| 九九**精品视频免费播放| 26uuu精品一区二区| 成人黄色av网站在线| 亚洲欧美色一区| 欧美日韩一区三区| 久久66热偷产精品| 久久久www成人免费无遮挡大片| 国产91丝袜在线18| 亚洲一区在线看| 欧美一区二区网站| 国产成人av网站| 99精品欧美一区二区三区小说| 亚洲欧美日韩久久精品| 91精品国产色综合久久不卡蜜臀| 久久福利视频一区二区| 欧美经典一区二区三区| 色94色欧美sute亚洲线路一ni| 同产精品九九九| 久久精品人人爽人人爽| 日本丶国产丶欧美色综合| 免费观看在线综合| 亚洲欧美在线观看| 在线电影院国产精品| 国产精品一区在线观看你懂的| 亚洲三级在线免费| 欧美一级日韩免费不卡| 99精品欧美一区二区三区小说| 丝袜美腿亚洲色图| 中文字幕在线不卡一区| 7777精品伊人久久久大香线蕉的 | 91精品国产综合久久久久久久| 国产专区欧美精品| 成人欧美一区二区三区小说 | 久久品道一品道久久精品| a级高清视频欧美日韩| 日韩电影在线免费看| 国产欧美一二三区| 欧美三级在线视频| 成人综合婷婷国产精品久久免费| 亚洲午夜影视影院在线观看| 久久久影视传媒| 欧美精品三级在线观看| 东方aⅴ免费观看久久av| 免费日本视频一区| 一级女性全黄久久生活片免费| 久久九九国产精品| 欧美高清dvd| 一本久久综合亚洲鲁鲁五月天| 国产美女久久久久| 日韩成人免费电影| 亚洲精品中文在线影院| 国产清纯美女被跳蛋高潮一区二区久久w | 紧缚奴在线一区二区三区| 一区二区三区不卡视频| 久久久99精品久久| 欧美一区二区三区在线视频| 色综合久久综合网97色综合| 国产激情偷乱视频一区二区三区| 亚洲成在人线免费| 亚洲激情自拍视频| 国产精品国产自产拍在线| 亚洲精品一区在线观看| 91麻豆精品国产91久久久久久久久| 91视频.com| 成人午夜电影网站| 国产一区二区三区最好精华液| 日韩电影在线一区二区三区| 亚洲综合在线视频| 亚洲丝袜精品丝袜在线| 国产欧美日韩在线视频| 久久丝袜美腿综合| 欧美精品一区二区三区一线天视频| 欧美二区三区91| 欧美日韩久久不卡| 日本久久一区二区三区| 91在线一区二区三区| 99久久免费精品| 97久久精品人人澡人人爽| 成人激情av网| youjizz国产精品|