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

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

?? klibc.c

?? Simple Operating Systems (簡稱SOS)是一個可以運行在X86平臺上(包括QEMU
?? C
字號:
/* Copyright (C) 2004  David Decotigny (with INSA Rennes for vsnprintf)   Copyright (C) 2003  The KOS Team   Copyright (C) 1999  Free Software Foundation   This program is free software; you can redistribute it and/or   modify it under the terms of the GNU General Public License   as published by the Free Software Foundation; either version 2   of the License, or (at your option) any later version.      This program 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 General Public License for more details.      You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,   USA. */#include "klibc.h"/* For an optimized version, see BSD sources ;) */void *memcpy(void *dst0, const void *src0, register unsigned int size){  char *dst;  const char *src;  for (dst = (char*)dst0, src = (const char*)src0 ;       size > 0 ;       dst++, src++, size--)    *dst = *src;  return dst0;}/* ditto */void *memset(void *dst0, register int c, register unsigned int length){  char *dst;  for (dst = (char*) dst0 ;       length > 0 ;       dst++, length --)    *dst = (char)c;  return dst0;}int memcmp(const void *s1, const void *s2, sos_size_t len){  const unsigned char *c1, *c2;  unsigned int i;   for (i = 0, c1 = s1, c2 = s2; i < len; i++, c1++, c2++)    {      if(*c1 != *c2)        return *c1 - *c2;    }   return 0;}unsigned int strlen(register const char *str){  unsigned int retval = 0;    while (*str++)    retval++;    return retval;}unsigned int strnlen(const char * s, sos_size_t count){  const char *sc;    for (sc = s; count-- && *sc != '\0'; ++sc)    /* nothing */continue;  return sc - s;}char *strzcpy(register char *dst, register const char *src, register int len){  int i;  if (len <= 0)    return dst;    for (i = 0; i < len; i++)    {      dst[i] = src[i];      if(src[i] == '\0')        return dst;    }    dst[len-1] = '\0';   return dst;}char *strzcat (char *dest, const char *src, sos_size_t n){  char *res = dest;    for ( ; *dest ; dest++);    for ( ; *src ; src++, dest++) {    *dest = *src;    n--;    if (n <= 0)      break;  }  *dest = '\0';  return res;}int strcmp(register const char *s1, register const char *s2){  while (*s1 == *s2++)    if (*s1++ == 0)      return (0);    return (*(const unsigned char *)s1 - *(const unsigned char *)(s2 - 1));}int strncmp(register const char *s1, register const char *s2, register int len){  char c1 = '\0', c2 = '\0';    while (len > 0)    {      c1 = (unsigned char) *s1++;      c2 = (unsigned char) *s2++;      if (c1 == '\0' || c1 != c2)        return c1 - c2;      len--;    }    return c1 - c2;}/* I (d2) borrowed and rewrote this for Nachos/INSA Rennes. Thanks to   them for having kindly allowed me to do so. */int vsnprintf(char *buff, sos_size_t len, const char * format, va_list ap){  sos_size_t i, result;    if (!buff || !format || (len < 0))    return -1;  #define PUTCHAR(thechar) \  do { \    if (result < len-1) \      *buff++ = (thechar);  \    result++; \  } while (0)    result = 0;  for(i=0 ; format[i] != '\0' ; i++){    switch (format[i])      {      case '%':	i++;	switch(format[i])	  {	  case '%':	    {	      PUTCHAR('%');	      break;	    }	  case 'i':;	  case 'd':	    {	      int integer = va_arg(ap,int);	      int cpt2 = 0;	      char buff_int[16];	      	      if (integer<0)		PUTCHAR('-');	      /* Ne fait pas integer = -integer ici parce que INT_MIN		 n'a pas d'equivalent positif (int = [-2^31, 2^31-1]) */	      	      do {		int m10 = integer%10;		m10 = (m10 < 0)? -m10:m10;		buff_int[cpt2++]=(char)('0'+ m10);		integer=integer/10;	      } while(integer!=0);	      	      for(cpt2 = cpt2 - 1 ; cpt2 >= 0 ; cpt2--)		PUTCHAR(buff_int[cpt2]);	      	      break;	    }	    	  case 'c':	    {	      int value = va_arg(ap,int);	      PUTCHAR((char)value);	      break;	    }	    	  case 's':	    {	      char *string = va_arg(ap,char *);	      if (! string)		string = "(null)";	      for( ; *string != '\0' ; string++)		PUTCHAR(*string);	      break;	    }	  case 'x':	    {	      unsigned int hexa = va_arg(ap,int);	      unsigned int nb;	      int i, had_nonzero = 0;	      for(i=0 ; i < 8 ; i++)		{		  nb = (unsigned int)(hexa << (i*4));		  nb = (nb >> 28) & 0xf;		  // Skip the leading zeros		  if (nb == 0)		    {		      if (had_nonzero)			PUTCHAR('0');		    }		  else		    {		      had_nonzero = 1;		      if (nb < 10)			PUTCHAR('0'+nb);		      else			PUTCHAR('a'+(nb-10));		    }		}	      if (! had_nonzero)		PUTCHAR('0');	      break;	    }	    break;		  default:            PUTCHAR('%');	    PUTCHAR(format[i]);	  }	break;	      default:        PUTCHAR(format[i]);      }  }    *buff = '\0';  return result;}int snprintf(char * buff, sos_size_t len, const char *format, ...){  va_list ap;   va_start(ap, format);  len = vsnprintf(buff, len, format, ap);  va_end(ap);   return len;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕高清一区| 91在线观看视频| 粉嫩aⅴ一区二区三区四区| 国产伦精品一区二区三区免费迷| 成人做爰69片免费看网站| 99r精品视频| 3d动漫精品啪啪| 国产精品沙发午睡系列990531| 亚洲激情中文1区| 毛片不卡一区二区| www.日韩在线| 欧美一区二区视频免费观看| 日本一区二区三区在线观看| 亚洲午夜激情网页| 国产.欧美.日韩| 欧美日韩高清在线播放| 国产欧美在线观看一区| 亚洲午夜激情av| 粉嫩久久99精品久久久久久夜 | 久久精品一区二区三区不卡牛牛 | 欧美网站一区二区| 久久久久久久久伊人| 亚洲午夜免费视频| 成人免费毛片a| 91精品国产综合久久香蕉麻豆| 欧美高清在线一区| 麻豆成人在线观看| 色素色在线综合| 国产农村妇女精品| 美女视频免费一区| 欧美亚洲国产一区二区三区va| 26uuu精品一区二区在线观看| 亚洲美腿欧美偷拍| 国产成人在线影院| 欧美一区二区三区四区视频| 亚洲另类中文字| 春色校园综合激情亚洲| 日韩一级黄色大片| 一二三四区精品视频| 成人免费高清视频在线观看| 欧美成人女星排名| 午夜精品免费在线| 色综合天天综合色综合av| 久久美女艺术照精彩视频福利播放| 亚洲成人中文在线| 在线免费av一区| 国产精品乱人伦一区二区| 国产一区91精品张津瑜| 日韩一区二区三区视频| 亚洲成人中文在线| 日本韩国一区二区| 国产精品国产三级国产aⅴ中文 | 欧美国产激情一区二区三区蜜月| 美女一区二区视频| 欧美一三区三区四区免费在线看| 亚洲一级二级三级在线免费观看| 99国产精品国产精品久久| 国产精品视频九色porn| 东方欧美亚洲色图在线| 国产亚洲1区2区3区| 激情深爱一区二区| 精品久久久久久久久久久久包黑料 | 蜜桃久久精品一区二区| 欧美美女网站色| 亚洲第一二三四区| 欧美日本一区二区在线观看| 一区二区三区四区国产精品| 91免费国产在线观看| 日韩一区在线播放| 99久久精品免费看| 亚洲视频狠狠干| 91免费观看视频| 亚洲精品视频免费观看| 色综合网色综合| 亚洲午夜一区二区三区| 欧美日本一道本在线视频| 丝袜美腿亚洲色图| 在线播放中文字幕一区| 免费观看在线综合色| 欧美mv和日韩mv的网站| 国产一区二区h| 国产精品美女久久久久久2018| 成人高清免费在线播放| 综合欧美一区二区三区| 欧美性色aⅴ视频一区日韩精品| 亚洲福利一二三区| 日韩一区二区三区在线| 国产乱码精品一区二区三区av | 风间由美一区二区av101| 国产精品美女久久久久高潮| 色素色在线综合| 五月综合激情婷婷六月色窝| 欧美变态tickling挠脚心| 狠狠色丁香久久婷婷综合_中| 国产欧美日韩在线| 91视频一区二区| 午夜影视日本亚洲欧洲精品| 日韩精品一区二区在线| 懂色av一区二区三区免费观看| 亚洲精品国产视频| 欧美一区二区三区免费观看视频| 国产曰批免费观看久久久| 中文字幕一区二区三中文字幕| 色女孩综合影院| 日韩高清国产一区在线| 久久久久一区二区三区四区| fc2成人免费人成在线观看播放| 樱桃国产成人精品视频| 欧美一卡在线观看| 大美女一区二区三区| 亚洲综合色在线| 精品国精品国产尤物美女| 99免费精品在线| 视频一区免费在线观看| 久久精品男人的天堂| 欧美亚洲动漫精品| 韩国成人精品a∨在线观看| 亚洲三级免费电影| 欧美一级欧美一级在线播放| 成人精品国产免费网站| 亚洲超碰精品一区二区| 国产日韩一级二级三级| 精品视频一区二区三区免费| 国产成人精品1024| 亚洲地区一二三色| 国产精品美女久久久久久久久| 欧美精品亚洲二区| jiyouzz国产精品久久| 美日韩一级片在线观看| 亚洲精品高清视频在线观看| 亚洲精品在线观看视频| 欧美亚洲一区二区在线观看| 国产精品影视网| 日韩在线一区二区| 中文字幕一区日韩精品欧美| 欧美v国产在线一区二区三区| 91蝌蚪国产九色| 国产精品1区二区.| 天堂午夜影视日韩欧美一区二区| 国产精品国产三级国产普通话三级| 日韩一区二区三区精品视频| 日本韩国一区二区| 成人黄动漫网站免费app| 蜜桃视频在线一区| 亚洲国产精品久久一线不卡| 国产精品麻豆99久久久久久| 26uuu欧美| 欧美日韩日本视频| 色天使色偷偷av一区二区| 国产999精品久久| 精品一区二区三区的国产在线播放| 一区二区三区成人| 国产精品三级在线观看| 欧美精品一区二区三区四区| 欧美日韩国产小视频在线观看| 99久久99久久精品免费观看 | 国产精品久久久久久久久图文区| 欧美精品一区二区久久久| 3751色影院一区二区三区| 日本精品免费观看高清观看| 北条麻妃一区二区三区| 国产精品资源网站| 九色|91porny| 老司机精品视频在线| 免费人成精品欧美精品| 午夜不卡av免费| 午夜欧美大尺度福利影院在线看| 一区二区三区国产精华| 亚洲男人的天堂在线aⅴ视频| 国产精品高清亚洲| 日本一二三四高清不卡| 久久精品亚洲乱码伦伦中文| 久久青草国产手机看片福利盒子| 日韩一级在线观看| 欧美一区二区黄色| 9191久久久久久久久久久| 欧美视频在线一区| 欧美性xxxxx极品少妇| 欧美写真视频网站| 欧美日韩精品久久久| 欧美日韩一区视频| 欧美亚洲高清一区二区三区不卡| 欧洲av在线精品| 在线播放/欧美激情| 日韩一区二区三区高清免费看看| 日韩欧美电影一区| 精品欧美一区二区久久| 精品av久久707| 国产精品丝袜91| 中文字幕一区二区三区在线观看 | 欧美日韩一级二级| 7777女厕盗摄久久久| 91精品国产欧美一区二区| 日韩一区二区免费在线电影| 欧美不卡一区二区三区| 国产午夜亚洲精品不卡| 国产精品女主播在线观看| 亚洲色图欧美在线| 亚洲在线视频一区| 日韩av高清在线观看|