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

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

?? gc_priv.h

?? 著名的boost庫
?? H
?? 第 1 頁 / 共 5 頁
字號:
/* 
 * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
 * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
 * Copyright (c) 1996-1999 by Silicon Graphics.  All rights reserved.
 * Copyright (c) 1999-2004 Hewlett-Packard Development Company, L.P.
 *
 *
 * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
 * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
 *
 * Permission is hereby granted to use or copy this program
 * for any purpose,  provided the above notices are retained on all copies.
 * Permission to modify the code and to distribute modified code is granted,
 * provided the above notices are retained, and a notice that the code was
 * modified is included with the above copyright notice.
 */
 

# ifndef GC_PRIVATE_H
# define GC_PRIVATE_H

# include <stdlib.h>
# if !(defined( sony_news ) )
#   include <stddef.h>
# endif

#ifdef DGUX
#   include <sys/types.h>
#   include <sys/time.h>
#   include <sys/resource.h>
#endif /* DGUX */

#ifdef BSD_TIME
#   include <sys/types.h>
#   include <sys/time.h>
#   include <sys/resource.h>
#endif /* BSD_TIME */

#ifdef PARALLEL_MARK
#   define AO_REQUIRE_CAS
#endif

#ifndef _GC_H
#   include "../gc.h"
#endif

#ifndef GC_TINY_FL_H
#   include "../gc_tiny_fl.h"
#endif

#ifndef GC_MARK_H
#   include "../gc_mark.h"
#endif

typedef GC_word word;
typedef GC_signed_word signed_word;
typedef unsigned int unsigned32;

typedef int GC_bool;
# define TRUE 1
# define FALSE 0

typedef char * ptr_t;	/* A generic pointer to which we can add	*/
			/* byte displacements and which can be used	*/
			/* for address comparisons.			*/

# ifndef GCCONFIG_H
#   include "gcconfig.h"
# endif

# ifndef HEADERS_H
#   include "gc_hdrs.h"
# endif

#if __GNUC__ >= 3
# define EXPECT(expr, outcome) __builtin_expect(expr,outcome)
  /* Equivalent to (expr), but predict that usually (expr)==outcome. */
# define INLINE inline
#else
# define EXPECT(expr, outcome) (expr)
# define INLINE
#endif /* __GNUC__ */

# ifndef GC_LOCKS_H
#   include "gc_locks.h"
# endif

# ifdef STACK_GROWS_DOWN
#   define COOLER_THAN >
#   define HOTTER_THAN <
#   define MAKE_COOLER(x,y) if ((x)+(y) > (x)) {(x) += (y);} \
			    else {(x) = (ptr_t)ONES;}
#   define MAKE_HOTTER(x,y) (x) -= (y)
# else
#   define COOLER_THAN <
#   define HOTTER_THAN >
#   define MAKE_COOLER(x,y) if ((x)-(y) < (x)) {(x) -= (y);} else {(x) = 0;}
#   define MAKE_HOTTER(x,y) (x) += (y)
# endif

#if defined(AMIGA) && defined(__SASC)
#   define GC_FAR __far
#else
#   define GC_FAR
#endif


/*********************************/
/*                               */
/* Definitions for conservative  */
/* collector                     */
/*                               */
/*********************************/

/*********************************/
/*                               */
/* Easily changeable parameters  */
/*                               */
/*********************************/

/* #define STUBBORN_ALLOC */
		    /* Enable stubborm allocation, and thus a limited	*/
		    /* form of incremental collection w/o dirty bits.	*/

/* #define ALL_INTERIOR_POINTERS */
		    /* Forces all pointers into the interior of an 	*/
		    /* object to be considered valid.  Also causes the	*/
		    /* sizes of all objects to be inflated by at least 	*/
		    /* one byte.  This should suffice to guarantee	*/
		    /* that in the presence of a compiler that does	*/
		    /* not perform garbage-collector-unsafe		*/
		    /* optimizations, all portable, strictly ANSI	*/
		    /* conforming C programs should be safely usable	*/
		    /* with malloc replaced by GC_malloc and free	*/
		    /* calls removed.  There are several disadvantages: */
		    /* 1. There are probably no interesting, portable,	*/
		    /*    strictly ANSI	conforming C programs.		*/
		    /* 2. This option makes it hard for the collector	*/
		    /*    to allocate space that is not ``pointed to''  */
		    /*    by integers, etc.  Under SunOS 4.X with a 	*/
		    /*    statically linked libc, we empiricaly		*/
		    /*    observed that it would be difficult to 	*/
		    /*	  allocate individual objects larger than 100K.	*/
		    /* 	  Even if only smaller objects are allocated,	*/
		    /*    more swap space is likely to be needed.       */
		    /*    Fortunately, much of this will never be	*/
		    /*    touched.					*/
		    /* If you can easily avoid using this option, do.	*/
		    /* If not, try to keep individual objects small.	*/
		    /* This is now really controlled at startup,	*/
		    /* through GC_all_interior_pointers.		*/
		    

#define GC_INVOKE_FINALIZERS() GC_notify_or_invoke_finalizers()

#if !defined(DONT_ADD_BYTE_AT_END)
# define EXTRA_BYTES GC_all_interior_pointers
# define MAX_EXTRA_BYTES 1
#else
# define EXTRA_BYTES 0
# define MAX_EXTRA_BYTES 0
#endif


# ifndef LARGE_CONFIG
#   define MINHINCR 16	 /* Minimum heap increment, in blocks of HBLKSIZE  */
			 /* Must be multiple of largest page size.	   */
#   define MAXHINCR 2048 /* Maximum heap increment, in blocks              */
# else
#   define MINHINCR 64
#   define MAXHINCR 4096
# endif

# define TIME_LIMIT 50	   /* We try to keep pause times from exceeding	 */
			   /* this by much. In milliseconds.		 */

# define BL_LIMIT GC_black_list_spacing
			   /* If we need a block of N bytes, and we have */
			   /* a block of N + BL_LIMIT bytes available, 	 */
			   /* and N > BL_LIMIT,				 */
			   /* but all possible positions in it are 	 */
			   /* blacklisted, we just use it anyway (and	 */
			   /* print a warning, if warnings are enabled). */
			   /* This risks subsequently leaking the block	 */
			   /* due to a false reference.  But not using	 */
			   /* the block risks unreasonable immediate	 */
			   /* heap growth.				 */

/*********************************/
/*                               */
/* Stack saving for debugging	 */
/*                               */
/*********************************/

#ifdef NEED_CALLINFO
    struct callinfo {
	word ci_pc;  	/* Caller, not callee, pc	*/
#	if NARGS > 0
	    word ci_arg[NARGS];	/* bit-wise complement to avoid retention */
#	endif
#	if (NFRAMES * (NARGS + 1)) % 2 == 1
	    /* Likely alignment problem. */
	    word ci_dummy;
#	endif
    };
#endif

#ifdef SAVE_CALL_CHAIN

/* Fill in the pc and argument information for up to NFRAMES of my	*/
/* callers.  Ignore my frame and my callers frame.			*/
void GC_save_callers(struct callinfo info[NFRAMES]);
  
void GC_print_callers(struct callinfo info[NFRAMES]);

#endif


/*********************************/
/*                               */
/* OS interface routines	 */
/*                               */
/*********************************/

#ifdef BSD_TIME
#   undef CLOCK_TYPE
#   undef GET_TIME
#   undef MS_TIME_DIFF
#   define CLOCK_TYPE struct timeval
#   define GET_TIME(x) { struct rusage rusage; \
			 getrusage (RUSAGE_SELF,  &rusage); \
			 x = rusage.ru_utime; }
#   define MS_TIME_DIFF(a,b) ((double) (a.tv_sec - b.tv_sec) * 1000.0 \
                               + (double) (a.tv_usec - b.tv_usec) / 1000.0)
#else /* !BSD_TIME */
# if defined(MSWIN32) || defined(MSWINCE)
#   include <windows.h>
#   include <winbase.h>
#   define CLOCK_TYPE DWORD
#   define GET_TIME(x) x = GetTickCount()
#   define MS_TIME_DIFF(a,b) ((long)((a)-(b)))
# else /* !MSWIN32, !MSWINCE, !BSD_TIME */
#   include <time.h>
#   if !defined(__STDC__) && defined(SPARC) && defined(SUNOS4)
      clock_t clock();	/* Not in time.h, where it belongs	*/
#   endif
#   if defined(FREEBSD) && !defined(CLOCKS_PER_SEC)
#     include <machine/limits.h>
#     define CLOCKS_PER_SEC CLK_TCK
#   endif
#   if !defined(CLOCKS_PER_SEC)
#     define CLOCKS_PER_SEC 1000000
/*
 * This is technically a bug in the implementation.  ANSI requires that
 * CLOCKS_PER_SEC be defined.  But at least under SunOS4.1.1, it isn't.
 * Also note that the combination of ANSI C and POSIX is incredibly gross
 * here. The type clock_t is used by both clock() and times().  But on
 * some machines these use different notions of a clock tick,  CLOCKS_PER_SEC
 * seems to apply only to clock.  Hence we use it here.  On many machines,
 * including SunOS, clock actually uses units of microseconds (which are
 * not really clock ticks).
 */
#   endif
#   define CLOCK_TYPE clock_t
#   define GET_TIME(x) x = clock()
#   define MS_TIME_DIFF(a,b) ((unsigned long) \
		(1000.0*(double)((a)-(b))/(double)CLOCKS_PER_SEC))
# endif /* !MSWIN32 */
#endif /* !BSD_TIME */

/* We use bzero and bcopy internally.  They may not be available.	*/
# if defined(SPARC) && defined(SUNOS4)
#   define BCOPY_EXISTS
# endif
# if defined(M68K) && defined(AMIGA)
#   define BCOPY_EXISTS
# endif
# if defined(M68K) && defined(NEXT)
#   define BCOPY_EXISTS
# endif
# if defined(VAX)
#   define BCOPY_EXISTS
# endif
# if defined(AMIGA)
#   include <string.h>
#   define BCOPY_EXISTS
# endif
# if defined(DARWIN)
#   include <string.h>
#   define BCOPY_EXISTS
# endif

# ifndef BCOPY_EXISTS
#   include <string.h>
#   define BCOPY(x,y,n) memcpy(y, x, (size_t)(n))
#   define BZERO(x,n)  memset(x, 0, (size_t)(n))
# else
#   define BCOPY(x,y,n) bcopy((void *)(x),(void *)(y),(size_t)(n))
#   define BZERO(x,n) bzero((void *)(x),(size_t)(n))
# endif

/*
 * Stop and restart mutator threads.
 */
# ifdef PCR
#     include "th/PCR_ThCtl.h"
#     define STOP_WORLD() \
 	PCR_ThCtl_SetExclusiveMode(PCR_ThCtl_ExclusiveMode_stopNormal, \
 				   PCR_allSigsBlocked, \
 				   PCR_waitForever)
#     define START_WORLD() \
	PCR_ThCtl_SetExclusiveMode(PCR_ThCtl_ExclusiveMode_null, \
 				   PCR_allSigsBlocked, \
 				   PCR_waitForever);
# else
#   if defined(GC_SOLARIS_THREADS) || defined(GC_WIN32_THREADS) \
	|| defined(GC_PTHREADS)
      void GC_stop_world();
      void GC_start_world();
#     define STOP_WORLD() GC_stop_world()
#     define START_WORLD() GC_start_world()
#   else
#     define STOP_WORLD()
#     define START_WORLD()
#   endif
# endif

/* Abandon ship */
# ifdef PCR
#   define ABORT(s) PCR_Base_Panic(s)
# else
#   ifdef SMALL_CONFIG
#	define ABORT(msg) abort()
#   else
	GC_API void GC_abort(const char * msg);
#       define ABORT(msg) GC_abort(msg)
#   endif
# endif

/* Exit abnormally, but without making a mess (e.g. out of memory) */
# ifdef PCR
#   define EXIT() PCR_Base_Exit(1,PCR_waitForever)
# else
#   define EXIT() (void)exit(1)
# endif

/* Print warning message, e.g. almost out of memory.	*/
# define WARN(msg,arg) (*GC_current_warn_proc)("GC Warning: " msg, (GC_word)(arg))
extern GC_warn_proc GC_current_warn_proc;

/* Get environment entry */
#if !defined(NO_GETENV)
#   if defined(EMPTY_GETENV_RESULTS)
	/* Workaround for a reputed Wine bug.	*/
	static inline char * fixed_getenv(const char *name)
	{
	  char * tmp = getenv(name);
	  if (tmp == 0 || strlen(tmp) == 0)
	    return 0;
	  return tmp;
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人中文字幕合集| 亚洲一二三专区| 久88久久88久久久| 精品国产91乱码一区二区三区 | 国产亚洲精品bt天堂精选| 国产一区二区三区美女| 久久久久99精品国产片| 成人一区二区三区中文字幕| 亚洲欧美在线观看| 欧美亚洲国产bt| 日韩电影一区二区三区四区| 日韩一区二区三区精品视频| 国产在线视频一区二区三区| 中文欧美字幕免费| 欧美性生活大片视频| 青青草视频一区| 国产亚洲欧美一级| 色综合久久88色综合天天| 天天射综合影视| 国产亚洲女人久久久久毛片| 99精品视频在线播放观看| 亚洲成人av免费| 久久精品亚洲国产奇米99| 97精品国产露脸对白| 日韩成人dvd| 国产精品无遮挡| 欧美精品精品一区| 国产成人超碰人人澡人人澡| 一区二区三区四区av| 欧美白人最猛性xxxxx69交| thepron国产精品| 日韩精品三区四区| 国产精品久久三| 69堂精品视频| 91香蕉视频在线| 美女mm1313爽爽久久久蜜臀| 亚洲日本va在线观看| 日韩欧美国产三级电影视频| 91视频你懂的| 国产一区二区三区日韩| 一区二区三区欧美日韩| 久久综合九色欧美综合狠狠| 在线免费观看日本一区| 国产a区久久久| 男男成人高潮片免费网站| 最新国产の精品合集bt伙计| 91精品国产色综合久久久蜜香臀| 粉嫩aⅴ一区二区三区四区| 免费视频一区二区| 一区二区免费看| 欧美国产日韩精品免费观看| 日韩欧美中文一区| 欧美体内she精高潮| 成人性生交大片免费看在线播放| 午夜成人免费电影| 亚洲愉拍自拍另类高清精品| 国产精品女主播av| 久久久久99精品国产片| 日韩精品自拍偷拍| 欧美三级电影一区| 色噜噜狠狠一区二区三区果冻| 国产精品一区二区不卡| 久久精品国产亚洲a| 偷拍一区二区三区| 亚洲电影视频在线| 亚洲一区国产视频| 亚洲精品欧美激情| 亚洲人亚洲人成电影网站色| 国产精品久久久久aaaa| 久久久.com| 久久亚洲二区三区| 久久综合狠狠综合| 精品久久久久久亚洲综合网 | 在线综合视频播放| 日本道在线观看一区二区| 成人av综合在线| 成人性色生活片| 成人午夜视频免费看| 成人性生交大片免费| 国产91精品在线观看| 国产成人高清视频| 成人午夜视频在线观看| jizz一区二区| 91视频免费播放| 欧美视频在线一区| 欧美日韩黄色影视| 欧美一区二区视频网站| 日韩一级精品视频在线观看| 欧美成人aa大片| 久久综合九色欧美综合狠狠| 国产欧美一区二区三区沐欲| 国产日产精品1区| 国产精品久久久久久久第一福利 | 亚洲chinese男男1069| 午夜精品在线视频一区| 免费三级欧美电影| 国产在线播放一区二区三区| 懂色av一区二区在线播放| 成人免费电影视频| 色婷婷国产精品久久包臀| 欧美日韩国产系列| 日韩精品资源二区在线| 欧美国产1区2区| 亚洲一区在线视频| 美女爽到高潮91| 国产1区2区3区精品美女| 一本大道久久a久久综合| 91精品国产福利| 麻豆成人久久精品二区三区小说| 久久99热这里只有精品| 成人黄动漫网站免费app| 欧美少妇性性性| 久久综合一区二区| 亚洲视频1区2区| 美美哒免费高清在线观看视频一区二区 | 日韩精品在线一区二区| 中文字幕乱码亚洲精品一区| 一区二区三区在线免费播放| 美女爽到高潮91| 97精品久久久午夜一区二区三区| 欧美福利视频一区| 国产精品国产三级国产普通话三级 | 亚洲男人的天堂在线观看| 无吗不卡中文字幕| 成人黄色软件下载| 日韩女优制服丝袜电影| 中文字幕一区二区在线播放| 日本成人在线电影网| 99这里只有久久精品视频| 日韩一区二区三区视频| 国产精品传媒入口麻豆| 蜜桃av一区二区三区| 色综合天天综合狠狠| 精品伦理精品一区| 一卡二卡欧美日韩| 丁香婷婷综合五月| 日韩久久精品一区| 亚洲午夜精品一区二区三区他趣| 国产露脸91国语对白| 91精品在线免费观看| 亚洲美女在线一区| 欧美不卡一区二区三区四区| 亚洲激情在线激情| 成人综合婷婷国产精品久久蜜臀 | 成人综合婷婷国产精品久久蜜臀 | 青娱乐精品视频| 在线免费视频一区二区| 国产精品美女久久久久久 | 久久综合久久99| 日韩中文字幕1| 欧美午夜精品理论片a级按摩| 亚洲国产成人午夜在线一区| 精一区二区三区| 欧美精品vⅰdeose4hd| 一区二区三区在线免费观看| 成人18精品视频| 亚洲国产成人自拍| 国产成a人亚洲| 国产三级精品三级| 国产一区二三区好的| 日韩午夜在线观看| 免费美女久久99| 69堂成人精品免费视频| 日韩精品色哟哟| 91精品国产品国语在线不卡| 亚洲国产日韩a在线播放| 在线看国产一区| 亚洲资源中文字幕| 欧美区在线观看| 日韩精品视频网站| 日韩欧美激情一区| 久久成人羞羞网站| 久久久国产精品午夜一区ai换脸| 韩国v欧美v亚洲v日本v| 久久久久久97三级| 高清国产午夜精品久久久久久| 国产欧美一区视频| www.欧美日韩| 一区二区三区资源| 欧美区视频在线观看| 免费成人性网站| 2023国产精品自拍| 成人美女视频在线看| 亚洲另类色综合网站| 欧美在线你懂的| 蜜臀久久99精品久久久久久9| 日韩美一区二区三区| 国产精品影音先锋| 136国产福利精品导航| 欧洲精品视频在线观看| 日韩福利视频网| 久久久久99精品国产片| 99久久综合精品| 亚洲大型综合色站| 日韩精品一区二区三区在线| 国产精品一级片| 亚洲另类中文字| 欧美成人官网二区| kk眼镜猥琐国模调教系列一区二区| 亚洲一区二区三区免费视频|