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

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

?? syscall.c.svn-base

?? 模擬多核狀態下龍芯處理器的功能
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
	/* check for an error condition */
	if (regs->regs_R[2] != -1)
	  regs->regs_R[7] = 0;
	else
	  {
	    /* got an error, return details */
	    regs->regs_R[2] = errno;
	    regs->regs_R[7] = 1;
	  }
      }
      break;


	/* this syscall may be not used */
	case SS_SYS_nice:
	{
		/*result*/regs->regs_R[2] = nice(regs->regs_R[4]);

		/* check for an error condition */
	    if (regs->regs_R[2] != -1)
	      regs->regs_R[7] = 0;
	    else
	    {
	      /* got an error, return details */
	      regs->regs_R[2] = errno;
	      regs->regs_R[7] = 1;
	    }
	}
	break;


	case SS_SYS_sync:
	{
		/* no return value */
		sync();

		/* check for an error condition *
		 * may be not used          */
	    if (regs->regs_R[2] != -1)
	      regs->regs_R[7] = 0;
	    else
	    {
	      /* got an error, return details */
	      regs->regs_R[2] = errno;
	      regs->regs_R[7] = 1;
	    }
	}
	break;


    /* this syscall may be not used, the simplescalar does not support multithread */
    case SS_SYS_kill:
	{
		/*result*/regs->regs_R[2] = kill(/*pid*/regs->regs_R[4], /*sig*/regs->regs_R[5]);	

		/* check for an error condition */
		if (regs->regs_R[2] != -1)
		  regs->regs_R[7] =0;
		else
		{
			regs->regs_R[2] = errno;
			regs->regs_R[7] = 1;
		}
	}
	break;


	case SS_SYS_rename:
	{
		char oldname[MAXBUFSIZE], newname[MAXBUFSIZE];

		/* copy arguments to the host memory */
		mem_strcpy(mem_fn, mem, Read, /*oldname*/regs->regs_R[4], oldname);
		mem_strcpy(mem_fn, mem, Read, /*newname*/regs->regs_R[5], newname);

		/*result*/regs->regs_R[2] = rename(oldname, newname);

		/* check for an error condition */
	    if (regs->regs_R[2] != -1)
	      regs->regs_R[7] = 0;
	    else
	    {
	      /* got an error, return details */
	      regs->regs_R[2] = errno;
	      regs->regs_R[7] = 1;
	    }
	}
	break;


	case SS_SYS_mkdir:
	{
		char buf[MAXBUFSIZE];

		/* copy arguments to the host memory */
		mem_strcpy(mem_fn, mem, Read, /*pathname*/regs->regs_R[4], buf);

		/*result*/regs->regs_R[2] = mkdir(buf, /*mode*/regs->regs_R[5]);

		/* check for an error condition */
	    if (regs->regs_R[2] != -1)
	      regs->regs_R[7] = 0;
	    else
	    {
	      /* got an error, return details */
	      regs->regs_R[2] = errno;
	      regs->regs_R[7] = 1;
	    }
	}
	break;


	case SS_SYS_rmdir:
	{
		char buf[MAXBUFSIZE];

		/* copy arguments to the host memory */
		mem_strcpy(mem_fn, mem, Read, /*pathname*/regs->regs_R[4], buf);

		/*result*/regs->regs_R[2] = rmdir(buf);

		/* check for an error condition */
	    if (regs->regs_R[2] != -1)
	      regs->regs_R[7] = 0;
	    else
	    {
	      /* got an error, return details */
	      regs->regs_R[2] = errno;
	      regs->regs_R[7] = 1;
	    }
	}
	break;


	  case SS_SYS_dup:
      /* dup() the file descriptor */
      /*fd*/regs->regs_R[2] = dup(/*fd*/regs->regs_R[4]);

      /* check for an error condition */
      if (regs->regs_R[2] != -1)
	regs->regs_R[7] = 0;
      else
	{
	  /* got an error, return details */
	  regs->regs_R[2] = errno;
	  regs->regs_R[7] = 1;
	}
      break;


#ifndef _MSC_VER
    case SS_SYS_pipe:
      {
	int fd[2];

	/* copy pipe descriptors to host memory */;
	mem_bcopy(mem_fn, mem, Read, /*fd's*/regs->regs_R[4], fd, sizeof(fd));

	/* create a pipe */
	/*result*/regs->regs_R[7] = pipe(fd);

	/* copy descriptor results to result registers */
	/*pipe1*/regs->regs_R[2] = fd[0];
	/*pipe2*/regs->regs_R[3] = fd[1];

	/* check for an error condition */
	if (regs->regs_R[7] == -1)
	  {
	    regs->regs_R[2] = errno;
	    regs->regs_R[7] = 1;
	  }
      }
    break;
#endif
	

	case SS_SYS_times:
	{
		struct tms tbuf;
		struct ss_tms ss_tbuf;

		/*result*/regs->regs_R[2] = times(&tbuf);

		/* translate from host tms structure to target format */
		ss_tbuf.ss_tms_utime = MD_SWAPW(tbuf.tms_utime);
		ss_tbuf.ss_tms_stime = MD_SWAPW(tbuf.tms_stime);
		ss_tbuf.ss_tms_cutime = MD_SWAPW(tbuf.tms_cutime);
		ss_tbuf.ss_tms_cstime = MD_SWAPW(tbuf.tms_cstime);

		/* copy result to the target memory */
		mem_bcopy(mem_fn, mem, Write, regs->regs_R[4],
		  &ss_tbuf, sizeof(struct ss_tms));
		
		/* check for an error condition */
		if (regs->regs_R[2] != -1)
		  regs->regs_R[7] = 0;
		else
		{
		  regs->regs_R[7] = 1;
		  regs->regs_R[2] = errno;
		}
	}
	break;


	/* this syscall can only run on the mips platform, since the return value
	   is different from the very syscall of other platform discribed in the document */
    case SS_SYS_brk:
      {
	md_addr_t addr;

	/* round the new heap pointer to the its page boundary */
	//addr = ROUND_UP(/*base*/regs->regs_R[4], MD_PAGE_SIZE);
	addr = regs->regs_R[4];

	/* check whether heap area has merged with stack area */
	if (addr >= ld_brk_point && addr < (md_addr_t)regs->regs_R[29])
	  {
	    regs->regs_R[2] = addr;
	    regs->regs_R[7] = 0;
	    ld_brk_point = addr;
	  }
	else if (addr >= (md_addr_t)regs->regs_R[29])
	     {
	       /* out of address space, indicate error */
	       regs->regs_R[2] = ENOMEM;
	       regs->regs_R[7] = 1;
	     }
	     else
	     {
	       regs->regs_R[2] = ld_brk_point;
	       regs->regs_R[7] = 0;
	     }
      }
      break;	


	case SS_SYS_setgid:
#ifdef _MSC_VER_
	warn("syscall setgid() not yet implemented for MSC...");
	regs->regs_R[7] = 0;
#else
		/*result*/regs->regs_R[2] = setgid(/*gid*/regs->regs_R[4]);

		/* check for an error condition */
      	if (regs->regs_R[2] != -1)
		  regs->regs_R[7] = 0;
      	else
	    {
	      /* got an error, return details */
	      regs->regs_R[2] = errno;
	      regs->regs_R[7] = 1;
	    }
#endif /*_MSC_VER_*/
	break;


	 case SS_SYS_getgid:
#ifdef _MSC_VER
      warn("syscall getgid() not yet implemented for MSC...");
      regs->regs_R[7] = 0;
#else /* !_MSC_VER */
      /* get current group id */
      /* result */regs->regs_R[2] = getgid();

	/* check for an error condition */
      if (regs->regs_R[2] != -1)
	regs->regs_R[7] = 0;
      else
	{
	  /* got an error, return details */
	  regs->regs_R[2] = errno;
	  regs->regs_R[7] = 1;
	}
#endif /* _MSC_VER */
      break;


	case SS_SYS_geteuid:
#ifdef _MSC_VER
      warn("syscall geteuid() not yet implemented for MSC...");
      regs->regs_R[7] = 0;
#else /* !_MSC_VER */
      /* get effective user id */
      /* result */regs->regs_R[2] = geteuid();

      /* check for an error condition */
      if (regs->regs_R[2] != -1)
	    regs->regs_R[7] = 0;
      else
	{
	  /* got an error, return details */
	  regs->regs_R[2] = errno;
	  regs->regs_R[7] = 1;
	}
#endif /* _MSC_VER */
      break;


	case SS_SYS_getegid:
#ifdef _MSC_VER
      warn("syscall getgid() not yet implemented for MSC...");
      regs->regs_R[7] = 0;
#else /* !_MSC_VER */
      /* get current effective group id */
      /* result */regs->regs_R[2] = getegid();

	/* check for an error condition */
      if (regs->regs_R[2] != -1)
	    regs->regs_R[7] = 0;
      else
	{
	  /* got an error, return details */
	  regs->regs_R[2] = errno;
	  regs->regs_R[7] = 1;
	}
#endif /* _MSC_VER */
      break;   


	case SS_SYS_acct:
	{
		char buf[MAXBUFSIZE];

		/* copy arguments to the host memory */
		mem_strcpy(mem_fn, mem, Read, regs->regs_R[4], buf);

		/*result*/regs->regs_R[2] = acct(buf);

		/* check for an error condition */
      if (regs->regs_R[2] != -1)
	    regs->regs_R[7] = 0;
      else
	  {
	    /* got an error, return details */
	    regs->regs_R[2] = errno;
	    regs->regs_R[7] = 1;
	  }
	}
	break;


#if 0
    case SS_SYS_umount:
    {
    	char name[MAXBUFSIZE];

    	/* copy arguments to the host memory */
    	mem_strcpy(mem_fn, mem, Read, /*name*/regs->regs_R[4], name);

    	/*result*/regs->regs_R[2] = umount(name, /*flags*/regs->regs_R[5]);

    	/* check for an error condition */
	    if (regs->regs_R[2] != -1)
	      regs->regs_R[7] = 0;
	    else
	    {
	      /* got an error, return details */
	      regs->regs_R[2] = errno;
	      regs->regs_R[7] = 1;
	    }
    }
    break;
#endif


 case SS_SYS_ioctl:
      {
	char buf[NUM_IOCTL_BYTES];
	int local_req = 0;

	/* convert target ioctl() request to host ioctl() request values */
	switch (/*req*/regs->regs_R[5]) {
#if 0
#ifdef TIOCGETP
	case SS_IOCTL_TIOCGETP:
	  local_req = TIOCGETP;
	  break;
#endif
#ifdef TIOCSETP
	case SS_IOCTL_TIOCSETP:
	  local_req = TIOCSETP;
	  break;
#endif
#ifdef TIOCGETP
	case SS_IOCTL_TCGETP:
	  local_req = TIOCGETP;
	  break;
#endif
#ifdef TCGETA
	case SS_IOCTL_TCGETA:
	  local_req = TCGETA;
	  break;
#endif
#ifdef TIOCGLTC
	case SS_IOCTL_TIOCGLTC:
	  local_req = TIOCGLTC;
	  break;
#endif
#ifdef TIOCSLTC
	case SS_IOCTL_TIOCSLTC:
	  local_req = TIOCSLTC;
	  break;
#endif
#ifdef TIOCGWINSZ
	case SS_IOCTL_TIOCGWINSZ:
	  local_req = TIOCGWINSZ;
	  break;
#endif
#ifdef TCSETAW
	case SS_IOCTL_TCSETAW:
	  local_req = TCSETAW;
	  break;
#endif
#ifdef TIOCGETC
	case SS_IOCTL_TIOCGETC:
	  local_req = TIOCGETC;
	  break;
#endif
#ifdef TIOCSETC
	case SS_IOCTL_TIOCSETC:
	  local_req = TIOCSETC;
	  break;
#endif
#ifdef TIOCLBIC
	case SS_IOCTL_TIOCLBIC:
	  local_req = TIOCLBIC;
	  break;
#endif
#ifdef TIOCLBIS
	case SS_IOCTL_TIOCLBIS:
	  local_req = TIOCLBIS;
	  break;
#endif
#ifdef TIOCLGET
	case SS_IOCTL_TIOCLGET:
	  local_req = TIOCLGET;
	  break;
#endif
#ifdef TIOCLSET
	case SS_IOCTL_TIOCLSET:
	  local_req = TIOCLSET;
	  break;
#endif
#else
	  /* linux-mips to x86 */
 case SS_IOCTL_TCGETA      : local_req=TCGETA; break;
 case SS_IOCTL_TCSETA      : local_req=TCSETA     ; break;
 case SS_IOCTL_TCSETAW     : local_req=TCSETAW    ; break;
 case SS_IOCTL_TCSETAF     : local_req=TCSETAF    ; break;
 case SS_IOCTL_TCSBRK      : local_req=TCSBRK     ; break;
 case SS_IOCTL_TCXONC      : local_req=TCXONC     ; break;
 case SS_IOCTL_TCFLSH      : local_req=TCFLSH     ; break;
 case SS_IOCTL_TCGETS      : local_req=TCGETS     ; break;
 case SS_IOCTL_TCSETS      : local_req=TCSETS     ; break;
 case SS_IOCTL_TCSETSW     : local_req=TCSETSW    ; break;
 case SS_IOCTL_TCSETSF     : local_req=TCSETSF    ; break;
 case SS_IOCTL_TIOCEXCL    : local_req=TIOCEXCL   ; break;
 case SS_IOCTL_TIOCNXCL    : local_req=TIOCNXCL   ; break;
 case SS_IOCTL_TIOCOUTQ    : local_req=TIOCOUTQ   ; break;
 case SS_IOCTL_TIOCSTI     : local_req=TIOCSTI    ; break;
 case SS_IOCTL_TIOCMGET    : local_req=TIOCMGET   ; break;
 case SS_IOCTL_TIOCMBIS    : local_req=TIOCMBIS   ; break;
 case SS_IOCTL_TIOCMBIC    : local_req=TIOCMBIC   ; break;
 /*
 case SS_IOCTL_TIOCGLTC    : local_req=TIOCGLTC   ; break;
 case SS_IOCTL_TIOCSLTC    : local_req=TIOCSLTC   ; break;
 */
#endif
	}

#if !defined(TIOCGETP) && defined(linux)
        if (!local_req && /*req*/regs->regs_R[5] == SS_IOCTL_TIOCGETP)
          {
            struct termios lbuf;
            struct ss_sgttyb buf;

            /* result */regs->regs_R[2] =
                          tcgetattr(/* fd */(int)regs->regs_R[4], &lbuf);

            /* translate results */
            buf.sg_ispeed = lbuf.c_ispeed;
            buf.sg_ospeed = lbuf.c_ospeed;
            buf.sg_erase = lbuf.c_cc[VERASE];
            buf.sg_kill = lbuf.c_cc[VKILL];
            buf.sg_flags = 0;   /* FIXME: this is wrong... */

            mem_bcopy(mem_fn, mem, Write,
                      /* buf */regs->regs_R[6], &buf,
                      sizeof(struct ss_sgttyb));

            if (regs->regs_R[2] != -1)
              regs->regs_R[7] = 0;
            else /* probably not a typewriter, return details */
              {
                regs->regs_R[2] = errno;
                regs->regs_R[7] = 1;
              }
          }
        else
#endif

	if (!local_req)
	  {
	    /* FIXME: could not translate the ioctl() request, just warn user
	       and ignore the request */
	    warn("syscall: ioctl: ioctl code not supported d=%d, req=%d",
		regs->regs_R[4], regs->regs_R[5]);
	    regs->regs_R[2] = 0;
	    regs->regs_R[7] = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产久精国产| 欧美人妖巨大在线| 精品成人在线观看| 麻豆精品一区二区综合av| 91麻豆国产精品久久| 国产日韩av一区| 国产成人aaa| 日本一区二区三区四区| 国产精品亚洲综合一区在线观看| 久久久电影一区二区三区| 国产精品一区二区你懂的| 国产亚洲一区二区三区四区| 偷拍日韩校园综合在线| 欧美日本一区二区在线观看| 日本亚洲视频在线| 精品福利一区二区三区| jvid福利写真一区二区三区| 日韩美女视频一区二区| 欧美日本一区二区三区四区| 日韩精品午夜视频| 久久久蜜臀国产一区二区| 成人中文字幕在线| 日韩—二三区免费观看av| 久久九九久久九九| 欧美人xxxx| 成人久久视频在线观看| 视频一区视频二区中文| 国产欧美精品区一区二区三区| 成人ar影院免费观看视频| 午夜精品视频一区| 国产精品二三区| 精品1区2区在线观看| 91国内精品野花午夜精品| 国产精品白丝av| 捆绑紧缚一区二区三区视频 | 国产高清不卡二三区| 亚洲成人你懂的| 亚洲综合图片区| 国产精品美女一区二区| 久久亚洲免费视频| 日韩午夜在线观看视频| 欧美精品一卡二卡| 色狠狠av一区二区三区| 91在线高清观看| 国产乱子伦一区二区三区国色天香| 亚洲一区二区三区四区在线免费观看| 国产欧美一区二区精品秋霞影院| 欧美美女网站色| 7799精品视频| 日韩欧美国产综合在线一区二区三区 | 中文字幕一区二区三区蜜月| 26uuu亚洲综合色欧美| 欧美r级电影在线观看| 91精品国产一区二区人妖| 欧美性受极品xxxx喷水| 欧美亚日韩国产aⅴ精品中极品| 91免费版pro下载短视频| 91色porny| 欧美老肥妇做.爰bbww| 91精品国产aⅴ一区二区| 欧美精品一卡二卡| 久久亚洲私人国产精品va媚药| 久久久影视传媒| 亚洲欧美自拍偷拍色图| 一区二区三区国产精华| 午夜电影久久久| 国产一区二区三区精品视频| 91网址在线看| 日韩一区二区在线观看视频播放| 精品国产髙清在线看国产毛片| 国产欧美精品一区aⅴ影院| 依依成人精品视频| 国产在线一区二区综合免费视频| 国产成人精品免费看| 欧美男生操女生| 国产亚洲午夜高清国产拍精品| 亚洲精品成人在线| 国产在线精品视频| 色综合天天综合网国产成人综合天| 欧美日韩成人一区二区| 国产精品污网站| 激情深爱一区二区| 91黄视频在线| 中文字幕一区二区三区色视频| 亚洲国产cao| 精品一区二区三区免费播放| 全国精品久久少妇| 日本久久精品电影| 午夜精品久久久| 成人激情图片网| 亚洲欧美中日韩| 欧美二区在线观看| 成人综合婷婷国产精品久久蜜臀 | 日韩视频在线你懂得| 国产九色精品成人porny| 亚洲情趣在线观看| 日韩一区二区在线播放| voyeur盗摄精品| 日韩成人午夜电影| 国产亲近乱来精品视频| 91精品婷婷国产综合久久性色| 国产成人综合视频| 免费人成黄页网站在线一区二区| 国产精品免费网站在线观看| 91精品蜜臀在线一区尤物| gogogo免费视频观看亚洲一| 日韩国产欧美一区二区三区| 亚洲视频香蕉人妖| 国产人久久人人人人爽| 精品久久一区二区三区| 欧美久久婷婷综合色| 91国产成人在线| av电影天堂一区二区在线| 国产精品一区二区无线| 九九视频精品免费| 日本中文一区二区三区| 亚洲综合男人的天堂| 亚洲精品国久久99热| 亚洲丝袜制服诱惑| 最新不卡av在线| 亚洲色图欧洲色图| 国产精品家庭影院| 亚洲欧美一区二区在线观看| 日本一区二区三区免费乱视频| 久久综合久久鬼色中文字| 日韩欧美国产综合在线一区二区三区| 欧美美女视频在线观看| 欧美一级精品大片| 日韩精品综合一本久道在线视频| 制服丝袜亚洲精品中文字幕| 3atv在线一区二区三区| 91麻豆精品国产91久久久使用方法| 欧美日韩高清影院| 欧美va日韩va| 国产日韩欧美综合在线| 国产精品理论片| 亚洲卡通欧美制服中文| 一区二区久久久久久| 免费高清在线一区| 国产99久久精品| 欧美日韩国产综合久久| 久久天天做天天爱综合色| 亚洲国产精华液网站w | 亚洲日本在线观看| 日韩精品亚洲一区二区三区免费| 国产在线一区二区| 色婷婷一区二区| 久久天堂av综合合色蜜桃网| 亚洲黄色免费网站| 久久99国产精品久久99 | 欧美激情在线看| 天天色综合成人网| voyeur盗摄精品| 久久精品夜夜夜夜久久| 性做久久久久久| 99久久免费国产| 精品国产3级a| 日韩制服丝袜先锋影音| 9i看片成人免费高清| 久久综合成人精品亚洲另类欧美 | 91黄色在线观看| 国产精品短视频| 懂色一区二区三区免费观看| 日韩欧美中文字幕一区| 亚洲一区二区欧美日韩| caoporm超碰国产精品| 久久综合视频网| 国产在线一区二区| 精品久久久三级丝袜| 久久激五月天综合精品| 3atv一区二区三区| 亚洲h动漫在线| 欧美日韩情趣电影| 亚洲国产一区二区三区青草影视 | 日韩精品一区在线观看| 五月激情综合婷婷| 日韩亚洲欧美中文三级| 蜜桃视频一区二区| 欧美精品一区二区三区蜜臀| 久久精品国产**网站演员| 欧美精品一区二区久久婷婷| 久草在线在线精品观看| 国产三级精品视频| 日本韩国欧美一区| 亚洲国产成人av好男人在线观看| 欧美中文字幕不卡| 久久国产福利国产秒拍| 欧美国产日韩亚洲一区| 在线一区二区视频| 日日摸夜夜添夜夜添国产精品| 日韩网站在线看片你懂的| 国产精品一区二区果冻传媒| 国产精品久99| 日韩欧美国产电影| 色综合天天做天天爱| 美女性感视频久久| 亚洲精品国产a| 久久亚洲一级片| 欧美亚洲动漫另类| 国产成人av影院|