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

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

?? wrapper.cpp

?? newos is new operation system
?? CPP
字號:
///-*-C++-*-////////////////////////////////////////////////////////////////////// Hoard: A Fast, Scalable, and Memory-Efficient Allocator//        for Shared-Memory Multiprocessors// Contact author: Emery Berger, http://www.cs.utexas.edu/users/emery//// Copyright (c) 1998-2000, The University of Texas at Austin.//// This library is free software; you can redistribute it and/or modify// it under the terms of the GNU Library General Public License as// published by the Free Software Foundation, http://www.fsf.org.//// This library is distributed in the hope that it will be useful, but// WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU// Library General Public License for more details./////////////////////////////////////////////////////////////////////////////////*  wrapper.cpp  ------------------------------------------------------------------------  Implementations of malloc(), free(), etc. in terms of hoard.  This lets us link in hoard in place of the stock malloc  (useful to test fragmentation).  ------------------------------------------------------------------------  @(#) $Id: wrapper.cpp,v 1.35 2001/06/01 18:37:28 emery Exp $  ------------------------------------------------------------------------  Emery Berger                    | <http://www.cs.utexas.edu/users/emery>  Department of Computer Sciences |             <http://www.cs.utexas.edu>  University of Texas at Austin   |                <http://www.utexas.edu>  ========================================================================*/#include <string.h>#include "config.h"#if USE_PRIVATE_HEAPS#include "privateheap.h"#define HEAPTYPE privateHeap#else#include "threadheap.h"#define HEAPTYPE threadHeap#endif#include "processheap.h"#include "arch-specific.h"inline static processHeap * getAllocator (void) {  static char * buf = (char *) hoardSbrk (sizeof(processHeap));  static processHeap * theAllocator = new (buf) processHeap;  return theAllocator;}#define HOARD_MALLOC(x) malloc(x)#define HOARD_FREE(x) free(x)#define HOARD_REALLOC(x,y) realloc(x,y)#define HOARD_CALLOC(x,y) calloc(x,y)#define HOARD_MEMALIGN(x,y) memalign(x,y)#define HOARD_VALLOC(x) valloc(x)extern "C" void * HOARD_MALLOC(size_t);extern "C" void HOARD_FREE(void *);extern "C" void * HOARD_REALLOC(void *, size_t);extern "C" void * HOARD_CALLOC(size_t, size_t);extern "C" void * HOARD_MEMALIGN(size_t, size_t);extern "C" void * HOARD_VALLOC(size_t);/* let libsupc++ provide the new/delete implementations */#if 0void * operator new (size_t size){  return HOARD_MALLOC (size);}/*void * operator new (size_t size, const std::nothrow_t&) throw() {  return HOARD_MALLOC (size);}*/void * operator new[] (size_t size){  return HOARD_MALLOC (size);}/*void * operator new[] (size_t size, const std::nothrow_t&) throw() {  return HOARD_MALLOC (size);}*/void operator delete (void * ptr){  HOARD_FREE (ptr);}void operator delete[] (void * ptr){  HOARD_FREE (ptr);}#endifextern "C" void * HOARD_MALLOC (size_t sz){  static processHeap * pHeap = getAllocator();  void * addr = pHeap->getHeap(pHeap->getHeapIndex()).malloc (sz);  return addr;}extern "C" void * HOARD_CALLOC (size_t nelem, size_t elsize){  static processHeap * pHeap = getAllocator();  void * ptr = pHeap->getHeap(pHeap->getHeapIndex()).malloc (nelem * elsize);  // Zero out the malloc'd block.  memset (ptr, 0, nelem * elsize);  return ptr;}extern "C" void HOARD_FREE (void * ptr){  static processHeap * pHeap = getAllocator();#if USE_PRIVATE_HEAPS  pHeap->getHeap(pHeap->getHeapIndex()).free(ptr);#else  pHeap->free (ptr);#endif}extern "C" void * HOARD_MEMALIGN (size_t alignment, size_t size){  static processHeap * pHeap = getAllocator();  void * addr = pHeap->getHeap(pHeap->getHeapIndex()).memalign (alignment, size);  return addr;}extern "C" void * HOARD_VALLOC (size_t size){  return HOARD_MEMALIGN (hoardGetPageSize(), size);}extern "C" void * HOARD_REALLOC (void * ptr, size_t sz){  if (ptr == NULL) {    return HOARD_MALLOC (sz);  }  if (sz == 0) {    HOARD_FREE (ptr);    return NULL;  }  // If the existing object can hold the new size,  // just return it.  size_t objSize = HEAPTYPE::objectSize (ptr);  if (objSize >= sz) {    return ptr;  }  // Allocate a new block of size sz.  void * buf = HOARD_MALLOC (sz);  // Copy the contents of the original object  // up to the size of the new block.  size_t minSize = (objSize < sz) ? objSize : sz;  memcpy (buf, ptr, minSize);  // Free the old block.  HOARD_FREE (ptr);  // Return a pointer to the new one.  return buf;}#ifdef WIN32// Replace the CRT debugging allocation routines, just to be on the safe side.// This is not a complete solution, but should avoid inadvertent mixing of allocations.extern "C" void * _malloc_dbg (size_t sz, int, const char *, int) {	return HOARD_MALLOC (sz);}void * operator new(        unsigned int cb,        int nBlockUse,        const char * szFileName,        int nLine        ){	return HOARD_MALLOC (cb);}extern "C" void * _calloc_dbg (size_t num, size_t size, int, const char *, int) {	return HOARD_CALLOC (num, size);}extern "C" void * _realloc_dbg (void * ptr, size_t newSize, int, const char *, int) {	return HOARD_REALLOC (ptr, newSize);}extern "C" void _free_dbg (void * ptr, int) {	HOARD_FREE (ptr);}extern "C" size_t _msize_dbg (void * ptr) {  // Find the block and superblock corresponding to this ptr.  block * b = (block *) ptr - 1;  assert (b->isValid());  // Check to see if this block came from a memalign() call.  if (((unsigned long) b->getNext() & 1) == 1) {    // It did. Set the block to the actual block header.    b = (block *) ((unsigned long) b->getNext() & ~1);    assert (b->isValid());  }  superblock * sb = b->getSuperblock();  assert (sb);  assert (sb->isValid());  const int sizeclass = sb->getBlockSizeClass();  return hoardHeap::sizeFromClass (sizeclass);}extern "C" size_t _msize (void * ptr) {  // Find the block and superblock corresponding to this ptr.  block * b = (block *) ptr - 1;  assert (b->isValid());  // Check to see if this block came from a memalign() call.  if (((unsigned long) b->getNext() & 1) == 1) {    // It did. Set the block to the actual block header.    b = (block *) ((unsigned long) b->getNext() & ~1);    assert (b->isValid());  }  superblock * sb = b->getSuperblock();  assert (sb);  assert (sb->isValid());  const int sizeclass = sb->getBlockSizeClass();  return hoardHeap::sizeFromClass (sizeclass);}extern "C" void * _nh_malloc_base (size_t sz, int) {	return HOARD_MALLOC (sz);}extern "C" void * _nh_malloc_dbg (size_t sz, size_t, int, int, const char *, int) {	return HOARD_MALLOC (sz);}#endif // WIN32#if 0extern "C" void malloc_stats (void){  TheWrapper.TheAllocator()->stats();}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂久久久久va久久久久| 久久久高清一区二区三区| 亚洲亚洲精品在线观看| 国产女人18水真多18精品一级做| 欧美videofree性高清杂交| 美腿丝袜亚洲色图| 精品国产第一区二区三区观看体验| 亚洲欧美激情插| 欧美三级日韩在线| 视频一区在线播放| 久久久精品国产免费观看同学| 国产成人精品三级| 国产精品免费网站在线观看| a4yy欧美一区二区三区| 亚洲伦理在线精品| 91精品国产综合久久久久久| 激情综合网天天干| 国产精品九色蝌蚪自拍| 欧美色网站导航| 日韩精品久久理论片| 欧美性猛交xxxx乱大交退制版| 麻豆免费精品视频| 中文在线免费一区三区高中清不卡| 91久久一区二区| 美美哒免费高清在线观看视频一区二区 | 久久亚洲一区二区三区四区| 高清国产午夜精品久久久久久| 亚洲欧美一区二区三区极速播放 | 国产欧美在线观看一区| 色婷婷国产精品| 亚洲成在人线在线播放| 精品国产乱码久久久久久夜甘婷婷| 成人国产精品免费网站| 午夜影院久久久| 久久亚洲一区二区三区四区| 91麻豆国产福利在线观看| 麻豆91在线看| 一区二区三区日韩精品视频| 2024国产精品| 欧美日韩一区中文字幕| 国产aⅴ精品一区二区三区色成熟| 亚洲精品乱码久久久久久久久| 精品国一区二区三区| 欧美羞羞免费网站| 国产91精品久久久久久久网曝门| 日韩精品高清不卡| 亚洲精品视频免费观看| 国产女主播视频一区二区| 777午夜精品免费视频| www.亚洲色图.com| 日韩国产欧美在线播放| 亚洲免费电影在线| 国产精品亲子乱子伦xxxx裸| 欧美va亚洲va香蕉在线| 欧美日韩精品电影| 一本大道久久精品懂色aⅴ| 国产精品中文字幕欧美| 另类中文字幕网| 午夜精彩视频在线观看不卡| 一区二区三区四区亚洲| 亚洲国产经典视频| 精品国产1区二区| 日韩一级黄色片| 欧美剧情片在线观看| 欧美亚洲动漫精品| 在线欧美小视频| 一本色道久久综合狠狠躁的推荐| 国内精品不卡在线| 一本色道久久综合亚洲91| 久久精品久久99精品久久| 亚洲aaa精品| 亚洲一区精品在线| 一区二区三区中文字幕| 亚洲人成亚洲人成在线观看图片 | 捆绑紧缚一区二区三区视频| 亚洲风情在线资源站| 亚洲精品久久嫩草网站秘色| 亚洲天堂2016| 一区二区三区资源| 亚洲一级二级在线| 五月天丁香久久| 精品av久久707| 精品欧美一区二区三区精品久久| 在线播放91灌醉迷j高跟美女 | 欧美一区二区三区在线观看| 91精品国产综合久久小美女| 国产亚洲美州欧州综合国| 26uuuu精品一区二区| 国产女主播一区| 亚洲欧美日韩一区二区| 亚洲韩国精品一区| 免费观看日韩av| 国产成人在线影院| 91麻豆精品视频| 欧美日韩电影一区| 精品国产一区二区三区久久久蜜月 | 亚洲欧美激情小说另类| 亚洲图片自拍偷拍| 久草在线在线精品观看| 成人网男人的天堂| 欧美中文字幕一二三区视频| 日韩写真欧美这视频| 久久人人爽爽爽人久久久| 国产精品国产三级国产普通话99| 亚洲已满18点击进入久久| 日韩1区2区日韩1区2区| 成人午夜电影网站| 欧美日韩视频一区二区| 精品免费国产一区二区三区四区| 欧美国产一区二区| 亚洲国产aⅴ天堂久久| 国产主播一区二区三区| 在线免费不卡电影| 日韩视频一区二区三区| 亚洲少妇30p| 九九热在线视频观看这里只有精品| 成人精品小蝌蚪| 日韩欧美在线不卡| 成人欧美一区二区三区小说| 日本91福利区| 色婷婷综合在线| 久久精品一区二区三区不卡| 亚洲自拍偷拍欧美| 粉嫩aⅴ一区二区三区四区五区| 欧美少妇bbb| 中文字幕五月欧美| 狠狠色狠狠色合久久伊人| 色婷婷久久99综合精品jk白丝| 日韩一区二区三区视频| 综合色天天鬼久久鬼色| 久久精工是国产品牌吗| 在线观看视频91| 亚洲国产成人在线| 免费视频一区二区| 在线免费观看视频一区| 亚洲国产精品成人综合色在线婷婷| 日韩国产欧美在线视频| 欧洲一区二区av| 国产成a人无v码亚洲福利| 日韩欧美久久久| 国产精品伊人色| 亚洲午夜一区二区| 大美女一区二区三区| 国产亚洲一区二区三区| 激情久久五月天| 久久久久久久久久久电影| 久久国产精品一区二区| 欧美日本一区二区在线观看| 一区二区三区小说| 欧美日韩不卡视频| 激情五月激情综合网| 成人精品免费看| 国产91在线看| 精品蜜桃在线看| 日韩av中文字幕一区二区三区| 91女神在线视频| 国产精品国产馆在线真实露脸| 国产麻豆一精品一av一免费| 精品欧美黑人一区二区三区| 日欧美一区二区| 欧美一区二区网站| 午夜av一区二区三区| 欧美日韩国产综合一区二区三区| 一区二区三区不卡视频在线观看| 99久久er热在这里只有精品15 | 国产丝袜在线精品| 国产精品中文字幕日韩精品| 久久亚洲欧美国产精品乐播| 精品一区二区影视| 26uuu成人网一区二区三区| 国产一区二区美女诱惑| 国产午夜精品一区二区三区视频| 国产一区福利在线| 中日韩av电影| 成人精品一区二区三区四区 | 成人黄色国产精品网站大全在线免费观看 | 天堂久久久久va久久久久| 欧美酷刑日本凌虐凌虐| 日本中文一区二区三区| 精品久久久影院| 国产成人夜色高潮福利影视| 欧美国产精品v| 91亚洲男人天堂| 亚洲成年人影院| 日韩美女视频一区二区在线观看| 九九视频精品免费| 欧美国产日韩a欧美在线观看| av欧美精品.com| 天天综合网 天天综合色| 精品久久久久久久久久久久久久久| 国产成人在线电影| 亚洲精品乱码久久久久久黑人| 欧美美女直播网站| 黄一区二区三区| 亚洲少妇30p| 欧美一区二区视频网站| 粉嫩高潮美女一区二区三区| 久久精品日产第一区二区三区高清版 | 麻豆91在线播放| 日本不卡1234视频|