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

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

?? disksim_iotrace.c

?? disksim是一個非常優秀的磁盤仿真工具
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * DiskSim Storage Subsystem Simulation Environment (Version 4.0) * Revision Authors: John Bucy, Greg Ganger * Contributors: John Griffin, Jiri Schindler, Steve Schlosser * * Copyright (c) of Carnegie Mellon University, 2001-2008. * * This software is being provided by the copyright holders under the * following license. By obtaining, using and/or copying this software, * you agree that you have read, understood, and will comply with the * following terms and conditions: * * Permission to reproduce, use, and prepare derivative works of this * software is granted provided the copyright and "No Warranty" statements * are included with all reproductions and derivative works and associated * documentation. This software may also be redistributed without charge * provided that the copyright and "No Warranty" statements are included * in all redistributions. * * NO WARRANTY. THIS SOFTWARE IS FURNISHED ON AN "AS IS" BASIS. * CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER * EXPRESSED OR IMPLIED AS TO THE MATTER INCLUDING, BUT NOT LIMITED * TO: WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY * OF RESULTS OR RESULTS OBTAINED FROM USE OF THIS SOFTWARE. CARNEGIE * MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT * TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. * COPYRIGHT HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE * OR DOCUMENTATION. * *//* * DiskSim Storage Subsystem Simulation Environment (Version 2.0) * Revision Authors: Greg Ganger * Contributors: Ross Cohen, John Griffin, Steve Schlosser * * Copyright (c) of Carnegie Mellon University, 1999. * * Permission to reproduce, use, and prepare derivative works of * this software for internal use is granted provided the copyright * and "No Warranty" statements are included with all reproductions * and derivative works. This software may also be redistributed * without charge provided that the copyright and "No Warranty" * statements are included in all redistributions. * * NO WARRANTY. THIS SOFTWARE IS FURNISHED ON AN "AS IS" BASIS. * CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER * EXPRESSED OR IMPLIED AS TO THE MATTER INCLUDING, BUT NOT LIMITED * TO: WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY * OF RESULTS OR RESULTS OBTAINED FROM USE OF THIS SOFTWARE. CARNEGIE * MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT * TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. *//* * DiskSim Storage Subsystem Simulation Environment * Authors: Greg Ganger, Bruce Worthington, Yale Patt * * Copyright (C) 1993, 1995, 1997 The Regents of the University of Michigan  * * This software is being provided by the copyright holders under the * following license. By obtaining, using and/or copying this software, * you agree that you have read, understood, and will comply with the * following terms and conditions: * * Permission to use, copy, modify, distribute, and sell this software * and its documentation for any purpose and without fee or royalty is * hereby granted, provided that the full text of this NOTICE appears on * ALL copies of the software and documentation or portions thereof, * including modifications, that you make. * * THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, * BUT NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR * THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY * THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. COPYRIGHT * HOLDERS WILL BEAR NO LIABILITY FOR ANY USE OF THIS SOFTWARE OR * DOCUMENTATION. * *  This software is provided AS IS, WITHOUT REPRESENTATION FROM THE * UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY PURPOSE, AND * WITHOUT WARRANTY BY THE UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER * EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE REGENTS * OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE FOR ANY DAMAGES, * INCLUDING SPECIAL , INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, * WITH RESPECT TO ANY CLAIM ARISING OUT OF OR IN CONNECTION WITH THE * USE OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN IF IT HAS * BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH DAMAGES * * The names and trademarks of copyright holders or authors may NOT be * used in advertising or publicity pertaining to the software without * specific, written prior permission. Title to copyright in this software * and any associated documentation will at all times remain with copyright * holders. */#include "config.h"#include "disksim_global.h"#include "disksim_hptrace.h"#include "disksim_iotrace.h"static void iotrace_initialize_iotrace_info (){   disksim->iotrace_info = DISKSIM_malloc (sizeof(iotrace_info_t));   bzero ((char *)disksim->iotrace_info, sizeof(iotrace_info_t));   tracebasetime = 0.0;   firstio = TRUE;   lasttime = 0.0;   basebigtime = -1;   basesmalltime = -1;   basesimtime = 0.0;   validate_lastserv = 0.0;   validate_nextinter = 0.0;   accumulated_event_time = 0.0;   lastaccesstime = 0.0;}void iotrace_set_format (char *formatname){   if (disksim->iotrace_info == NULL) {      iotrace_initialize_iotrace_info();   }   disksim->traceendian = _LITTLE_ENDIAN;   disksim->traceheader = TRUE;   if (strcmp(formatname, "0") == 0) {      disksim->traceformat = DEFAULT;   } else if (strcmp(formatname, "ascii") == 0) {	/* default ascii trace format */      disksim->traceformat = ASCII;   } else if (strcmp(formatname, "raw") == 0) {	/* format of traces collected at Michigan */      disksim->traceformat = RAW;   } else if (strcmp(formatname, "validate") == 0) {	/* format of disk validation traces */      disksim->traceformat = VALIDATE;   } else if (strcmp(formatname, "hpl") == 0) {	/* format of traces provided by HPLabs for research purposes */      disksim->traceformat = HPL;      disksim->traceendian = _BIG_ENDIAN;   } else if (strcmp(formatname, "hpl2") == 0) {	/* format of traces provided by HPLabs for research purposes,     */        /* after they have been modified/combined by the `hplcomb' program */      disksim->traceformat = HPL;      disksim->traceendian = _BIG_ENDIAN;      disksim->traceheader = FALSE;   } else if (strcmp(formatname, "dec") == 0) {	/* format of some traces provided by dec for research purposes */      disksim->traceformat = DEC;   } else if (strcmp(formatname, "emcsymm") == 0) {	/* format of Symmetrix traces provided by EMC for research purposes */      disksim->traceformat = EMCSYMM;   } else if (strcmp(formatname, "emcbackend") == 0) {        /* format of Symmetrix backend traces that have been converted to map	   logical devices to physical devices  */      disksim->traceformat = EMCBACKEND;   } else if (strcmp(formatname, "batch") == 0) {        /* ascii traces with added batch information */      disksim->traceformat = BATCH;   } else {      fprintf(stderr, "Unknown trace format - %s\n", formatname);      exit(1);   }}static int iotrace_read_space (FILE *tracefile, char *spaceptr, int spacesize){   if (fread(spaceptr, spacesize, 1, tracefile) != 1) {      return(-1);   }   return(0);}static int iotrace_read_char (FILE *tracefile, char *charptr){   StaticAssert (sizeof(char) == 1);   if (fread(charptr, sizeof(char), 1, tracefile) != 1) {      return(-1);   }   return(0);}static int iotrace_read_short (FILE *tracefile, short *shortptr){   StaticAssert (sizeof(short) == 2);   if (fread(shortptr, sizeof(short), 1, tracefile) != 1) {      return(-1);   }   if (disksim->endian != disksim->traceendian) {      *shortptr = ((*shortptr) << 8) + (((*shortptr) >> 8) & 0xFF);   }   return(0);}static int iotrace_read_int32 (FILE *tracefile, int32_t *intP){   int i;   intchar swapval;   intchar intcharval;   StaticAssert (sizeof(int) == 4);   if (fread(&intcharval.value, sizeof(int), 1, tracefile) != 1) {      return(-1);   }   if (disksim->endian != disksim->traceendian) {      for (i=0; i<sizeof(int); i++) {         swapval.byte[i] = intcharval.byte[(sizeof(int) - i - 1)];      }/*      fprintf (outputfile, "intptr.value %x, swapval.value %x\n", intcharval.value, swapval.value);*/      intcharval.value = swapval.value;   }   *intP = intcharval.value;   return(0);}#define iotrace_read_float(a, b) iotrace_read_int32(a, b)ioreq_event * iotrace_validate_get_ioreq_event (FILE *tracefile, ioreq_event *new){   char line[201];   char rw;   double servtime;   if (fgets(line, 200, tracefile) == NULL) {      addtoextraq((event *) new);      return(NULL);   }   new->time = simtime + (validate_nextinter / (double) 1000);   if (sscanf(line, "%c %s %d %d %lf %lf\n", 	      &rw, 	      validate_buffaction, 	      &new->blkno, 	      &new->bcount, 	      &servtime, 	      &validate_nextinter) != 6)    {      fprintf(stderr, "Wrong number of arguments for I/O trace event type\n");      ddbg_assert(0);   }   validate_lastserv = servtime / (double) 1000;   if (rw == 'R') {      new->flags = READ;   } else if (rw == 'W') {      new->flags = WRITE;   } else {      fprintf(stderr, "Invalid R/W value: %c\n", rw);      exit(1);   }   new->devno = 0;   new->buf = 0;   new->opid = 0;   new->cause = 0;   new->busno = 0;   new->tempint2 = 0;   new->tempint1 = 0;   validate_lastblkno = new->blkno;   validate_lastbcount = new->bcount;   validate_lastread = new->flags & READ;   return(new);}static ioreq_event * iotrace_dec_get_ioreq_event (FILE *tracefile, ioreq_event *new){   assert ("removed for distribution" == 0);   iotrace_read_space (tracefile, NULL, 0);   return (NULL);}static void iotrace_hpl_srt_convert_flags (ioreq_event *curr){   int flags;   flags = curr->flags;   curr->flags = 0;   if (flags & HPL_READ) {      curr->flags |= READ;      hpreads++;   } else {      hpwrites++;   }   if (!(flags & HPL_ASYNC)) {      curr->flags |= TIME_CRITICAL;      if (curr->flags & READ) {         syncreads++;      } else {         syncwrites++;      }   }   if (flags & HPL_ASYNC) {      if (curr->flags & READ) {         curr->flags |= TIME_LIMITED;         asyncreads++;      } else {         asyncwrites++;      }   }}static ioreq_event * iotrace_hpl_get_ioreq_event (FILE *tracefile, ioreq_event *new){   int32_t size;   int32_t id;   int32_t sec;   int32_t usec;   int32_t val;   int32_t junkint;   unsigned int failure = 0;   while (TRUE) {      failure |= iotrace_read_int32(tracefile, &size);      failure |= iotrace_read_int32(tracefile, &id);      failure |= iotrace_read_int32(tracefile, &sec);      failure |= iotrace_read_int32(tracefile, &usec);      if (failure) {         addtoextraq((event *) new);         return(NULL);      }      if (((id >> 16) < 1) || ((id >> 16) > 4)) {         fprintf(stderr, "Error in trace format - id %x\n", id);         exit(1);      }      if (((id & 0xFFFF) != HPL_SHORTIO) && ((id & 0xFFFF) != HPL_SUSPECTIO)) {         fprintf(stderr, "Unexpected record type - %x\n", id);         exit(1);      }      new->time = (double) sec * (double) MILLI;      new->time += (double) usec / (double) MILLI;      if ((disksim->traceheader == FALSE) && (new->time == 0.0)) {         tracebasetime = simtime;      }      failure |= iotrace_read_int32(tracefile, &val);    /* traced request start time */      new->tempint1 = val;      failure |= iotrace_read_int32(tracefile, &val);    /* traced request stop time */      new->tempint2 = val;      new->tempint2 -= new->tempint1;      failure |= iotrace_read_int32(tracefile, &val);      new->bcount = val;      if (new->bcount & 0x000001FF) {         fprintf(stderr, "HPL request for non-512B multiple size: %d\n", new->bcount);         exit(1);      }      new->bcount = new->bcount >> 9;      failure |= iotrace_read_int32(tracefile, &val);      new->blkno = val;      failure |= iotrace_read_int32(tracefile, &val);      new->devno = (val >> 8) & 0xFF;      failure |= iotrace_read_int32(tracefile, &val);       /* drivertype */      failure |= iotrace_read_int32(tracefile, &val);       /* cylno */      /* for convenience and historical reasons, this cast is being allowed */      /* (the value is certain to be less than 32 sig bits, and will not be */      /* used as a pointer).                                                */      new->buf = (void *) val;      failure |= iotrace_read_int32(tracefile, &val);      new->flags = val;      iotrace_hpl_srt_convert_flags(new);      failure |= iotrace_read_int32(tracefile, &junkint);           /* info */      size -= 13 * sizeof(int32_t);      if ((id >> 16) == 4) {         failure |= iotrace_read_int32(tracefile, &val);  /* queuelen */         new->slotno = val;         size -= sizeof(int32_t);      }      if ((id & 0xFFFF) == HPL_SUSPECTIO) {         failure |= iotrace_read_int32(tracefile, &junkint);    /* susflags */         size -= sizeof(int32_t);      }      if (failure) {         addtoextraq((event *) new);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区视频播放| 亚洲人精品午夜| 亚洲欧洲精品成人久久奇米网| 亚洲福利国产精品| 成人午夜短视频| 日韩网站在线看片你懂的| 一区二区在线免费观看| 国产99久久久精品| 精品日产卡一卡二卡麻豆| 婷婷国产在线综合| 色狠狠一区二区三区香蕉| 中文字幕不卡一区| 精品亚洲成a人在线观看 | 亚洲欧洲综合另类在线| 国产剧情一区在线| 日韩女优电影在线观看| 五月天激情综合| 欧美亚洲国产一区二区三区| 国产精品久久久久久久久果冻传媒 | 午夜精品久久久久久不卡8050| 99久久夜色精品国产网站| 久久久av毛片精品| 国产精品99久久久久久久vr| 精品少妇一区二区三区在线视频| 天堂精品中文字幕在线| 欧美性生活一区| 有码一区二区三区| 91久久线看在观草草青青| 国产精品久久久久影视| 成人性色生活片| 中日韩av电影| 成人性生交大片免费看视频在线 | 一区二区三区不卡视频| 色综合中文综合网| 99久久精品国产观看| 国产精品不卡一区| 色久综合一二码| 亚洲国产美女搞黄色| 欧美日韩精品一区二区三区四区 | 日韩免费电影一区| 久久aⅴ国产欧美74aaa| 欧美精品一区二| 国产精品1024久久| 亚洲欧洲日产国产综合网| 97久久超碰国产精品电影| 亚洲人成网站在线| 欧美日韩国产在线播放网站| 毛片一区二区三区| 久久精品无码一区二区三区| aaa亚洲精品一二三区| 一区二区三区在线观看视频| 这里只有精品免费| 国产一区二区美女诱惑| 国产精品免费网站在线观看| 色8久久精品久久久久久蜜| 午夜精品福利视频网站| 日韩美一区二区三区| 国产91丝袜在线播放| 亚洲伦理在线免费看| 91麻豆精品国产自产在线| 色天天综合色天天久久| 午夜精品久久久久久久| 久久日韩精品一区二区五区| 91小宝寻花一区二区三区| 亚洲电影一区二区三区| 久久久精品tv| 在线视频你懂得一区| 激情五月激情综合网| 亚洲色图视频网站| 日韩三级av在线播放| 97久久超碰国产精品电影| 日本美女视频一区二区| **性色生活片久久毛片| 日韩一级完整毛片| 99久久婷婷国产精品综合| 免费av成人在线| 亚洲欧美偷拍三级| 精品三级av在线| 欧美影片第一页| 国产另类ts人妖一区二区| 亚洲观看高清完整版在线观看| 国产亚洲自拍一区| 91麻豆精品国产91| 日本精品裸体写真集在线观看| 国产精品一卡二卡| 午夜电影一区二区| 亚洲精品欧美二区三区中文字幕| 日韩午夜激情视频| 欧美日韩精品一区二区在线播放| 成人av电影在线| 狠狠色狠狠色综合日日91app| 夜夜精品浪潮av一区二区三区| 欧美精品一区二区高清在线观看| 欧美日韩精品欧美日韩精品 | 欧美日韩大陆一区二区| 99久久精品99国产精品| 国产乱人伦精品一区二区在线观看| 亚洲国产精品久久人人爱蜜臀| 亚洲桃色在线一区| 日本一区二区三区dvd视频在线| 日韩精品一区二区三区在线播放 | 成人免费高清视频| 蓝色福利精品导航| 日韩av一区二区三区四区| 一区二区三区欧美日| 18成人在线观看| 国产精品美女久久久久久| 国产日本欧美一区二区| 久久亚洲一区二区三区四区| 日韩一区二区在线看| 欧美一区日韩一区| 欧美一区二区三级| 日韩免费成人网| 欧美tk—视频vk| 亚洲精品一线二线三线| 久久亚洲精华国产精华液| 亚洲精品在线电影| 国产欧美一二三区| 国产精品免费视频观看| 亚洲天堂2016| 亚洲一区二区免费视频| 亚洲成人在线观看视频| 日韩有码一区二区三区| 老司机免费视频一区二区| 国产麻豆成人精品| 国产成人免费视频精品含羞草妖精 | 日本一区二区视频在线观看| 国产精品久久久久久久久免费樱桃 | 亚洲图片另类小说| 一区二区三区不卡视频在线观看| 亚洲成人免费看| 精品一区二区三区在线播放| 国产一区二区成人久久免费影院| 国产乱码精品一区二区三区忘忧草| 国产精品一区免费在线观看| 成人av电影在线| 在线观看国产日韩| 精品人在线二区三区| 国产精品久久久久久久久快鸭| 亚洲自拍偷拍图区| 日本怡春院一区二区| 国产成人在线网站| 欧美在线一区二区| 久久女同互慰一区二区三区| 亚洲欧洲成人自拍| 日本不卡一区二区| 波多野结衣在线一区| 欧美日韩一区二区三区四区 | 欧美一级久久久| 国产精品不卡一区| 青青国产91久久久久久| 成人妖精视频yjsp地址| 在线电影欧美成精品| 久久奇米777| 调教+趴+乳夹+国产+精品| 国产精品一区二区三区99| 在线视频你懂得一区| 久久综合久久综合久久综合| 亚洲自拍与偷拍| 国产激情一区二区三区桃花岛亚洲| 色国产综合视频| 日本一二三四高清不卡| 日韩av电影免费观看高清完整版 | 欧美在线制服丝袜| 国产丝袜在线精品| 蜜臀99久久精品久久久久久软件| 91网站最新地址| 久久久久久久综合狠狠综合| 亚洲成人免费av| 99国产精品视频免费观看| 精品久久久久久久久久久久久久久| 亚洲精品免费电影| 成人精品一区二区三区中文字幕| 日韩午夜在线影院| 亚洲成人激情社区| 91蝌蚪porny成人天涯| 欧美激情综合五月色丁香 | 色婷婷综合激情| 国产精品丝袜91| 国产一区二区调教| 日韩免费看的电影| 午夜精品久久久久久久久| 欧洲一区在线观看| 亚洲欧美韩国综合色| 成人aa视频在线观看| 国产女主播视频一区二区| 久久狠狠亚洲综合| 欧美日韩一区二区三区免费看| 亚洲色图欧美在线| 97久久精品人人做人人爽 | 日本中文字幕一区二区视频 | 国产亚洲欧美在线| 国产一区二区三区高清播放| 日韩欧美国产午夜精品| 麻豆91精品91久久久的内涵| 日韩午夜电影av| 九色综合国产一区二区三区| 日韩欧美不卡在线观看视频| 老司机精品视频导航| 久久夜色精品国产噜噜av|