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

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

?? skeleton.c

?? OXCC is a multipass, interpreting C compiler with several language extensions. It generates an Archi
?? C
?? 第 1 頁 / 共 4 頁
字號:
SKIPVARS;
unsigned cursize;
unsigned *address;
struct _bins *bp;
NodePM onode;

	if(addr == 0) 
		return mallocC(category, newsize);
	else
	{
		if(!(bp = getcat(category))) {
		   VCRASH("reallocC:%d: non-existant category at:%x\n",category,addr);
		}
HEAPCHECK 
		if(newsize == 0)
			newsize = ALIGNMENTM;
		else
			newsize += ROUNDINGM(newsize);
		newsize += bp->guarded;

		address = (void*)(((char*)addr)-(bp->guarded/2));
		FINDKEY(USEDH, (unsigned)address)
		if(node->key != (unsigned)address) {
		  VCRASH("reallocC:%d: bogus address=0x%x\n", category, addr);
		}
		cursize = node->value;
		node->value = newsize;
		onode = node;

		CHECKGUARDS(reallocC)

		if(newsize == cursize)
			return addr;
		if(newsize > cursize)
		{/* check if block can be extended */
		void *taddr = ((char*)address) + cursize;
		unsigned extendsize = newsize-cursize;

			/* check freelist for an available block at the right address */
			FINDKEY(FREEH, (unsigned)taddr)
			if(node->key == (unsigned)taddr)
			{
			AddrP sp = (AddrP)node->value;
				if(sp->size >= extendsize)
				{/* BLOCK CAN BE EXTENDED INTERNALLY */
					node->key += extendsize;
					sp->size -= extendsize;
					DETACH(sp)
					if(sp->size == 0)
					{/* the extension block is used up, delete this node */
						free_addr(bp, sp);
						DELETENODE(FREEH)
					}
					else
					{/* shift the remainder in the sizelist */
						addto_sizelist(bp, sp);
					}
					/* SUCCESS */
					if(bp->guarded)
					{
						*((unsigned*)(((char*)address)+newsize-ALIGNMENTM))
							= BACKGUARD;
					}
					return addr;
				}
			}
			/* HERE WE COULD CHECK OTHER SOURCES OF SPACE */

			/* can't extend block, malloc some new space */
			if((taddr = mallocC(category,newsize-bp->guarded)))
			{
				memmove(taddr,addr,cursize-bp->guarded);
				onode->value = cursize;
				freeC(category, addr);
			}
			/* SUCCESS */
			return taddr;
		}
		else
		{/* shrink block */
			if(bp->guarded)
			{
				*((unsigned*)(((char*)address)+newsize-ALIGNMENTM))
					= BACKGUARD;
			}
			addto_freelist(bp, ((char*)address)+newsize, cursize-newsize); 
			return addr;
		}
  	}
}
void
freecat(int category)
{
struct _bins *bp;

	if(category == 0)
		return;

	if((bp = getcat(category)))
	{
	struct _catlocs *cl = bp->catlocs;
	struct _bins *hbp;
	struct _bins *prev;

		while(cl)
		{/* Space allocated to the category is moved to category 0 */
		void *ql = cl->fptr;

			freeC(0, cl->addr);
			free_catloc(cl);
			cl = ql;
		}
		/* space for the _bins struct is placed on a free list */
		hbp = hmap[category % 1009];
		prev = 0;
		while(hbp)
		{
			if(hbp->bincat == category)
			{
				if(prev == 0)
					hmap[category % 1009] = hbp->fptr;
				else
					prev->fptr = hbp->fptr;
				free_bins(hbp);
				return;
			}
			prev = hbp;
			hbp = hbp->fptr;
		}
	}
}
int
memrangeC(int category, unsigned *min, unsigned *max)
{
struct _bins *bp;

	if((bp = getcat(category)))
	{
		*min = bp->minloc;
		*max = bp->maxloc;
		return 1;
	}
	return 0;
}
int
usedrangeC(int category, unsigned *min, unsigned *max)
{
struct _bins *bp;
NodePM node;
int level;

	if((bp = getcat(category)))
	{
		node = bp->USEDHheader;
		*min = node->fptr[0]->key;
		for(level = bp->USEDHlevel; level >= 0; level--)
		  while(node->fptr[level]->key < 0xffffffff)
			node = node->fptr[level];
		*max = node->key;
		return 1;
	}
	return 0;
}
void
totrangeC(unsigned *min, unsigned *max)
{
	*min = minloc;
	*max = maxloc;
}
void
guardC(int category)
{
struct _bins *bp;

	if(!(bp = getcat(category)))
	  if(!(bp = initcat(category)))
		  return;

	if(!bp->guarded)
	{
		bp->guarded = 2*ALIGNMENTM;
		bp->addrbump = 1;
	}
}
void*
heapcheckC(int category, void *start)
{
struct _bins *bp;
NodePM node,prev;
unsigned *p1,*p2;

	if((bp = getcat(category)))
	{
		if(bp->guarded)
		{
			prev = 0;
			node = bp->USEDHheader;
			while(		(node = node->fptr[0]) != (NodePM)0xffffffff
					&&	node->key != 0xffffffffUL)
			{
				if((void*)node->key > start)
				{
					p1 = (unsigned*)node->key;
					if(*p1 != FRNTGUARD)
					{
						if(prev)
							return (char*)prev->key+ALIGNMENTM;
						else
							return (void*)1;
					}
					p2 = (unsigned*)(((char*)p1)+node->value-ALIGNMENTM);
					if(*p2 != BACKGUARD)
						return (char*)node->key+ALIGNMENTM;
				}
				prev = node;
			}
		}
	}
	return 0;
}
void* 
mallocC(int category, unsigned size)
{
	return memalignC(category, 0, size);
}

void* 
vallocC(int category, unsigned bytes)
{
  return memalignC (category, PAGESIZE, bytes);
}
unsigned
mallocsizeC(int category, void* addr)
{
struct _bins *bp;
SKIPVARS;

	if(addr && (bp = getcat(category)))
	{
	unsigned address = (unsigned)((unsigned*)addr - bp->addrbump);
		FINDKEY(USEDH, address)
		if(node->key == address)
			return node->value - bp->guarded;
	}
	return 0;
}

int
NewMallocCategory(void)
{
static unsigned int cat = BASE_CATEGORY;
	return ++cat;
}
/* ====================== END MULTI-HEAP MALLOC ============================ */


/* These are here to prevent the system malloc from being linked */
void *
malloc(unsigned a)
{
void *result = mallocC(BASE_CATEGORY, a);
MPRINTF("malloc %d bytes at %p caller=%x\n", a, result, ((unsigned *)&a)[-1]);
	return result;
}
void
free(void *a)
{
MPRINTF("free at %p caller=%x\n", a, ((unsigned*)&a)[-1]);
	freeC(BASE_CATEGORY,a);
}
void *
realloc(void *a, unsigned b)
{
void *result = reallocC(BASE_CATEGORY,a,b);
MPRINTF("realloc %d bytes at %p old=%p caller=%x\n",
	b, result, a, ((unsigned*)&a)[-1]);
	return result;
}
void *
calloc(unsigned a, unsigned b)
{
void *result = callocC(BASE_CATEGORY,a,b);
MPRINTF("calloc %d bytes at %p caller=%x\n", a*b, result, ((unsigned*)&a)[-1]);
	return result;
}
void *
valloc(unsigned a)
{
void *result = vallocC(BASE_CATEGORY,a);
MPRINTF("valloc %d bytes at %p caller=%x\n", a, result, ((unsigned *)&a)[-1]);
	return result;
}
void *
memalign(unsigned a, unsigned b)
{
void *result = memalignC(BASE_CATEGORY,a,b);
MPRINTF("memalign(%u) %u bytes at %p caller=%x\n",
	a,b,result,((unsigned *)&a)[-1]);
	return result;
}
unsigned
mallocsize(void *a)
{
	return mallocsizeC(BASE_CATEGORY, a);
}

static int 
lnulfunc()
{
	return 0;
}
static void 
lhash(void *keyptr, int cnt, CAT *cat)
{/* THIS FUNCTION IS IDENTICAL TO 'key_hash' in CFF */
STOR  value;
int  i;

	cat->c0.item = 0;

	if(cnt <= 8)
		for (i = 0; i < cnt; ++i)
			cat->c0.a5.b[i] = *((unsigned char *)keyptr)++;
	else
		for (i = 0; i < cnt; ++i)
			cat->c0.a5.b[i&7] ^= *((unsigned char *)keyptr)++;

	/* THE CONSTANTS WERE CAREFULLY CHOSEN BY THEORY */
	/* value.item is a long long (use gcc only) */

	value.item = ((1103515245LL)*(cat->c0.a4.s0 ^ cat->c0.a4.s1))+453816693LL;
	if(value.a0 == 0) value.a0 = 1;
	value.a0 &= 0x0fffffff;
	if(cnt <= 8) value.a0 |= 0x80000000;	/* exact key chunk */
	cat->c1.a0 = value.a0;
}
static int linkup_complete;
static int
laccess(char *a, int b)
{/* suppress use of 'access', it links in too many other functions */

	if(linkup_complete)
		return ((VOBTYPE(a) & (OB_XFILE|OB_TREEDIR|OB_HASHDIR)) ? 0 : 1);
	else {
	int fd = VOPEN(a,O_RDONLY|O_BINARY);
		if(fd > 0)
		{
			VCLOSE(fd);
			return 0;
		}
		return 1;
	}
}
static int
lpagesize()
{
	return 4096;
}
static int
lprintchar(int c)
{
	return VWRITE(1,&c,1);
}
static void
lprintstr(char *str)
{
	while(*str)
		lprintchar(*str++);
}

#if EARLY_PRINT == 1

struct parameters
{
  int number_of_output_chars;
  int (*output_function)(void *, int);
  void *output_pointer;
  short minimum_field_width;
  short edited_string_length;
  short leading_zeros;
  char options;
    #define MINUS_SIGN    1
    #define RIGHT_JUSTIFY 2
    #define ZERO_PAD      4
    #define CAPITAL_HEX   8
};

static void output_and_count(struct parameters *p, int c)
{
  if (p->number_of_output_chars >= 0)
  {
    int n = (*p->output_function)(p->output_pointer, c);
    if (n>=0) p->number_of_output_chars++;
    else p->number_of_output_chars = n;
  }
}

static void output_field(struct parameters *p, char *s)
{
  short justification_length =
    p->minimum_field_width - p->leading_zeros - p->edited_string_length;
  if (p->options & MINUS_SIGN)
  {
    if (p->options & ZERO_PAD)
      output_and_count(p, '-');
    justification_length--;
  }
  if (p->options & RIGHT_JUSTIFY)
    while (--justification_length >= 0)
      output_and_count(p, p->options & ZERO_PAD ? '0' : ' ');
  if (p->options & MINUS_SIGN && !(p->options & ZERO_PAD))
    output_and_count(p, '-');
  while (--p->leading_zeros >= 0)
    output_and_count(p, '0');
  while (--p->edited_string_length >= 0)
    output_and_count(p, *s++);
  while (--justification_length >= 0)
    output_and_count(p, ' ');
}
    

static int 
gprintf(int (*output_function)(void *, int), void *output_pointer,
  char *control_string, int *argument_pointer)
{
  struct parameters p;
  char control_char;
  p.number_of_output_chars = 0;
  p.output_function = output_function;
  p.output_pointer = output_pointer;
  control_char = *control_string++;
  while (control_char != '\0')
  {
    if (control_char == '%')
    {
      short precision = -1;
      short long_argument = 0;
      short base = 0;
      control_char = *control_string++;
      p.minimum_field_width = 0;
      p.leading_zeros = 0;
      p.options = RIGHT_JUSTIFY;
      if (control_char == '-')
      {
        p.options = 0;
        control_char = *control_string++;
      }
      if (control_char == '0')
      {
        p.options |= ZERO_PAD;
        control_char = *control_string++;
      }
      if (control_char == '*')
      {
        p.minimum_field_width = *argument_pointer++;
        control_char = *control_string++;
      }
      else
      {
        while ('0' <= control_char && control_char <= '9')
        {
          p.minimum_field_width =
            p.minimum_field_width * 10 + control_char - '0';
          control_char = *control_string++;
        }
      }
      if (control_char == '.')
      {
        control_char = *control_string++;
        if (control_char == '*')
        {
          precision = *argument_pointer++;
          control_char = *control_string++;
        }
        else
        {
          precision = 0;
          while ('0' <= control_char && control_char <= '9')
          {
            precision = precision * 10 + control_char - '0';
            control_char = *control_string++;
          }
        }
      }
      if (control_char == 'l')
      {
        long_argument = 1;
        control_char = *control_string++;
      }
      if (control_char == 'd')
        base = 10;
      else if (control_char == 'x' || control_char == 'p')
        base = 16;
      else if (control_char == 'X')
      {
        base = 16;
        p.options |= CAPITAL_HEX;
      }
      else if (control_char == 'u')
        base = 10;
      else if (control_char == 'o')
        base = 8;
      else if (control_char == 'b')
        base = 2;
      else if (control_char == 'c')
      {
        base = -1;
        p.options &= ~ZERO_PAD;
      }
      else if (control_char == 's')
      {
        base = -2;
        p.options &= ~ZERO_PAD;
      }
      if (base == 0)  /* invalid conversion type */
      {
        if (control_char != '\0')
        {
          output_and_count(&p, control_char);
          control_char = *control_string++;
        }
      }
      else
      {
        if (base == -1)  /* conversion type c */
        {
          char c = *argument_pointer++;
          p.edited_string_length = 1;
          output_field(&p, &c);
        }
        else if (base == -2)  /* conversion type s */
        {
          char *string;
          p.edited_string_length = 0;
          string = * (char **) argument_pointer;
          argument_pointer += sizeof(char *) / sizeof(int);
          while (string[p.edited_string_length] != 0)
            p.edited_string_length++;
          if (precision >= 0 && p.edited_string_length > precision)
            p.edited_string_length = precision;
          output_field(&p, string);
        }
        else  /* conversion type d, b, o or x */
        {
          unsigned long x;
          char buffer[64];
          p.edited_string_length = 0;
          if (long_argument) 
          {
            x = * (unsigned long *) argument_pointer;
            argument_pointer += sizeof(unsigned long) / sizeof(int);
          }
          else if (control_char == 'd')
            x = (long) *argument_pointer++;
          else
            x = (unsigned) *argument_pointer++;
          if (control_char == 'd' && (long) x < 0)
          {
            p.options |= MINUS_SIGN;
            x = - (long) x;
          }
          do 
          {
            int c;
            c = x % base + '0';
            if (c > '9')
            {
              if (p.options & CAPITAL_HEX)
                c += 'A'-'9'-1;
              else
                c += 'a'-'9'-1;
            }
            buffer[sizeof(buffer) - 1 - p.edited_string_length++] = c;
          }
          while ((x/=base) != 0);
          if (precision >= 0 && precision > p.edited_string_length)
            p.leading_zeros = precision - p.edited_string_length;
          output_field(&p, buffer + sizeof(buffer) - p.edited_string_length);
        }
        control_char = *control_string++;
      }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产大陆a不卡| 欧美一区二区三区婷婷月色| 国产一区二区三区在线观看精品 | 91一区一区三区| 欧美日韩精品一区视频| www国产成人| 一区二区视频在线| 国产福利91精品| 在线不卡免费av| 一区二区三区成人| 国产福利91精品一区| 日韩欧美国产精品| 亚洲成人在线免费| 色综合久久88色综合天天6| 精品福利一区二区三区免费视频| 亚洲影院免费观看| 97精品国产露脸对白| 国产亚洲污的网站| 国产日产欧产精品推荐色| 一本久道中文字幕精品亚洲嫩| 欧美高清你懂得| 中文字幕日本乱码精品影院| 日本视频在线一区| 欧美日韩免费一区二区三区视频| 中文字幕中文字幕一区| 高清av一区二区| 337p日本欧洲亚洲大胆精品 | 日本一区二区免费在线观看视频 | 亚洲欧美另类综合偷拍| 国产suv一区二区三区88区| 精品美女被调教视频大全网站| 天天影视涩香欲综合网| 欧美mv和日韩mv国产网站| 国产精品成人免费在线| 国产99一区视频免费| 久久午夜免费电影| 九一久久久久久| 精品国产一区二区三区久久影院 | 99久久婷婷国产| 亚洲国产精品av| 福利一区二区在线| 久久99日本精品| 精品欧美一区二区在线观看| 美国十次了思思久久精品导航| 这里只有精品99re| 免费成人在线影院| 精品噜噜噜噜久久久久久久久试看| 午夜视黄欧洲亚洲| 欧美一区二区三区白人| 另类专区欧美蜜桃臀第一页| 久久综合九色综合欧美就去吻| 欧美美女一区二区在线观看| 日日摸夜夜添夜夜添亚洲女人| 91精品国模一区二区三区| 久久97超碰色| 欧美国产亚洲另类动漫| 91高清在线观看| 天天综合日日夜夜精品| 欧美α欧美αv大片| 风流少妇一区二区| 亚洲免费在线观看| 欧美日韩精品二区第二页| 裸体歌舞表演一区二区| 中文久久乱码一区二区| 91黄色激情网站| 韩国精品一区二区| 日韩码欧中文字| 日韩欧美区一区二| 成人高清免费观看| 欧美a级理论片| 欧美国产成人在线| 9191精品国产综合久久久久久| 国产美女在线观看一区| 一区二区三区日韩在线观看| 日韩精品一区二区三区老鸭窝| 成人激情视频网站| 日韩av不卡一区二区| 久久精品国产精品亚洲精品| 精品久久国产老人久久综合| 成人动漫av在线| 日韩高清在线一区| 国产乱人伦偷精品视频不卡| 最新热久久免费视频| 日韩久久免费av| 欧洲视频一区二区| 国产河南妇女毛片精品久久久| 亚洲一区免费观看| 欧美激情在线一区二区三区| 欧美精品xxxxbbbb| 一本色道久久综合亚洲91| 看电视剧不卡顿的网站| 亚洲午夜电影在线| 国产精品精品国产色婷婷| 精品少妇一区二区三区| 欧美日本韩国一区二区三区视频| 不卡的av在线播放| 国产精品一色哟哟哟| 青青草国产精品97视觉盛宴| 亚洲精品欧美激情| 国产精品毛片久久久久久久| 久久精品在线观看| 日韩欧美自拍偷拍| 美日韩一级片在线观看| 国产欧美日韩激情| 日韩欧美国产1| 欧美日韩国产另类不卡| 色香色香欲天天天影视综合网| 精品一区二区久久| 奇米精品一区二区三区在线观看 | 久久不见久久见免费视频7| 一区二区三区视频在线观看| 亚洲欧美日韩一区| 一区免费观看视频| 中文字幕一区三区| 国产精品进线69影院| 蜜桃视频免费观看一区| 日本一区二区三区dvd视频在线| 88在线观看91蜜桃国自产| 色婷婷久久久久swag精品| 99久久99久久久精品齐齐| 国产jizzjizz一区二区| 国产a区久久久| 成人国产精品免费| 成人午夜视频网站| 99精品国产视频| 91小视频在线| 色综合久久久久综合| 色一情一伦一子一伦一区| 欧美在线你懂得| 欧美日韩激情在线| 精品美女一区二区| 欧美精品vⅰdeose4hd| 国产女人aaa级久久久级| 国产亚洲一区字幕| 精品少妇一区二区三区| 国产午夜精品在线观看| 亚洲色图在线看| 日韩精品色哟哟| 国产.欧美.日韩| 成人午夜激情在线| 91老师片黄在线观看| 欧美日韩中文字幕一区二区| 欧美精品高清视频| 久久久久久日产精品| 1024成人网色www| 亚洲va国产va欧美va观看| 乱中年女人伦av一区二区| 国产91精品一区二区麻豆网站| 97久久精品人人澡人人爽| 欧美久久高跟鞋激| 久久久久久久久久久99999| 亚洲人成电影网站色mp4| 五月激情综合婷婷| 国产一区二区女| 91小视频免费看| 日韩精品中文字幕一区二区三区 | 亚洲综合色婷婷| 精品一区二区免费视频| 色中色一区二区| 日韩欧美高清dvd碟片| 日韩精品色哟哟| 首页综合国产亚洲丝袜| 国产精品99久久久久久有的能看| 日本国产一区二区| 精品国产乱码久久久久久1区2区| 亚洲视频在线一区二区| 老司机精品视频导航| 欧美特级限制片免费在线观看| 91精品国产91久久久久久最新毛片 | 国产精品国产三级国产aⅴ入口| 午夜免费欧美电影| 成人福利视频在线看| 日韩欧美一级片| 一区二区三区欧美日韩| 国产精品中文字幕日韩精品| 精品污污网站免费看| 中文字幕一区免费在线观看| 精品中文av资源站在线观看| 欧美特级限制片免费在线观看| 国产精品视频在线看| 老司机午夜精品| 91精品中文字幕一区二区三区| 亚洲欧美电影院| 国产日韩欧美在线一区| 国产一区二区三区精品欧美日韩一区二区三区 | 青青草原综合久久大伊人精品| 欧美另类久久久品| 亚洲黄色免费电影| 国产99久久精品| 精品国产制服丝袜高跟| 免费观看在线综合色| 9191精品国产综合久久久久久| 亚洲一区在线观看免费| 99re在线视频这里只有精品| 国产蜜臀97一区二区三区| 国产精品自产自拍| 2021中文字幕一区亚洲| 麻豆成人免费电影| 欧美va亚洲va在线观看蝴蝶网| 毛片基地黄久久久久久天堂|