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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? clibmisc.c

?? uCOS+uCFS在Armulator上的移植
?? C
字號:
/*
**********************************************************************
*                          Micrium, Inc.
*                      949 Crestview Circle
*                     Weston,  FL 33327-1848
*
*                            uC/FS
*
*             (c) Copyright 2001 - 2003, Micrium, Inc.
*                      All rights reserved.
*
***********************************************************************

----------------------------------------------------------------------
File        : clibmisc.c
Purpose     : C Library function implementation.
              To avoid usage of C runtime library function, the FS
              uses its own implementation of the required functions.
              Do not use them yourself in the application, because
              they might be limited to the functionality required by
              the FS. They are NOT meant to be a replacement for an
              ANSI C runtime library !
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
None.
---------------------------END-OF-HEADER------------------------------
*/

/*********************************************************************
*
*             #include Section
*
**********************************************************************
*/

#include "fs_port.h"
#ifndef FS_FARCHARPTR
  #define FS_FARCHARPTR char *
#endif
#include "fs_conf.h"
#include "fs_clib.h"


/*********************************************************************
*
*             Local Variables        
*
**********************************************************************
*/

const unsigned char _ToUpperTable[] = {
  0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
  0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
  0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
  0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
  0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
  0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
  0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
  0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
  0x40, 'A',  'B',  'C',  'D',  'E',  'F',  'G',
  'H',  'I',  'J',  'K',  'L',  'M',  'N',  'O',
  'P',  'Q',  'R',  'S',  'T',  'U',  'V',  'W',
  'X',  'Y',  'Z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
  0x60, 'A',  'B',  'C',  'D',  'E',  'F',  'G',
  'H',  'I',  'J',  'K',  'L',  'M',  'N',  'O',
  'P',  'Q',  'R',  'S',  'T',  'U',  'V',  'W',
  'X',  'Y',  'Z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
  0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
  0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
  0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
  0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
  0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
  0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
  0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
  0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
  0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
  0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
  0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
  0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
  0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
  0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
  0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
  0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
};


/*********************************************************************
*
*             Global functions
*
**********************************************************************
*/

/*********************************************************************
*
*             FS__CLIB_strchr
*
  Description:
  FS internal function. Locate the first occurrence of c (converted
  to a char) in the string pointed to by s.

  Parameters:
  s           - Pointer to a zero terminated string.
  c           - 'Character' value to find.
 
  Return value:
  ==0         - c was not found
  !=0         - Pointer to the located character in s.
*/

FS_FARCHARPTR FS__CLIB_strchr(const char *s, int c) {
  const char ch = c;

  for (; *s != ch; ++s) {
    if (*s == '\0') {
			return 0;
    }
  }
	return ((FS_FARCHARPTR)s);
}


/*********************************************************************
*
*             FS__CLIB_strlen
*
  Description:
  FS internal function. Compute the length of a string pointed to by s.

  Parameters:
  s           - Pointer to a zero terminated string.
 
  Return value:
  Number of characters preceding the terminating 0.
*/

FS_size_t FS__CLIB_strlen(const char *s) {	
	const char *sc;

  for (sc = s; *sc != '\0'; ++sc) {
  }
	return (sc - s);
}


/*********************************************************************
*
*             FS__CLIB_strncmp
*
  Description:
  FS internal function. Compare not more than n characters from the
  array pointed to by s1 to the array pointed to by s2.

  Parameters:
  s1          - Pointer to a character array.
  s2          - Pointer to a character array.
  n           - Number of characters to compare.
 
  Return value:
  <0          - s1<s2
  ==0         - s1==s2.
  >0          - s1>s2
*/

int FS__CLIB_strncmp(const char *s1, const char *s2, FS_size_t n) {
  for (; 0 < n; ++s1, ++s2, --n) {
    if (*s1 != *s2) {
			return (*(unsigned char *)s1 < *(unsigned char *)s2 ? -1 : +1);
    }
    else if (*s1 == '\0') {
			return 0;
    }
  }
	return 0;
}


/*********************************************************************
*
*             FS__CLIB_strcmp
*
  Description:
  FS internal function. Compare the sring pointed to by s1 with the 
  string pointed to by s2.

  Parameters:
  s1          - Pointer to a zero terminated string.
  s2          - Pointer to a zero terminated string.
 
  Return value:
  <0          - s1<s2
  ==0         - s1==s2.
  >0          - s1>s2
*/

int FS__CLIB_strcmp(const char *s1, const char *s2)	{
  for (; *s1 == *s2; ++s1, ++s2) {
    if (*s1 == '\0') 
      return 0;
  }
  return (*(unsigned char *)s1 < *(unsigned char *)s2 ? -1 : +1);
}


/*********************************************************************
*
*             FS__CLIB_atoi
*
  Description:
  FS internal function. Convert string to int. The function stops with
  the first character it cannot convert. It expects decimal numbers only.
  It can handle +/- at the beginning and leading 0. It cannot handle
  HEX or any other numbers.

  Parameters:
  s           - Pointer to a zero terminated string.
 
  Return value:
  0           - In case of any problem or if the converted value is zero.
  !=0         - Integer value of the converted string.
*/

int FS__CLIB_atoi(const char *s) {
  int value;
  int len;
  int i;
  unsigned int base;
  const char *t;
  char c;
  signed char sign;

  value = 0;
  /* Check for +/- */
  sign = 1;
  len = FS__CLIB_strlen(s);
  if (len <= 0) {
    return 0;
  }
  t = s;
  if (*t == '-') {
    t++;
    sign = -1;
  }
  else if (*t == '+') {
    t++;
  }
  /* Skip leading 0 */
  len = FS__CLIB_strlen(t);
  if (len <= 0) {
    return 0;
  }
  while (1) {
    if (*t != '0') {
      break;
    }
    t++;
    len--;
    if (len <= 0) {
      break;
    }
  }
  /* Find end of number */
  for (i = 0; i < len; i++) {
    if (t[i] > '9') {
      break;
    }
    if (t[i] < '0') {
      break;
    }
  }
  len = i;
  if (len <= 0) {
      return 0;
  }
  /* Calculate base */
  base = 1;
  for (i = 1; i < len; i++) {
    base *= 10;
  }
  /* Get value */
  for (i = 0; i < len; i++) {
    c = t[i];
    if (c > '9') {
      break;
    }
    if (c < '0') {
      break;
    }
    c -= '0';
    value += c*base;
    base /= 10;
  }
  return sign * value;
}


/*********************************************************************
*
*             FS__CLIB_memset
*
  Description:
  FS internal function. Copy the value of c (converted to an unsigned
  char) into each of the first n characters of the object pointed to 
  by s.

  Parameters:
  s           - Pointer to an object.
  c           - 'Character' value to be set.
  n           - Number of characters to be set.
 
  Return value:
  Value of s.
*/

void *FS__CLIB_memset(void *s, int c, FS_size_t n) {
  const unsigned char uc = c;
  unsigned char *su = (unsigned char *)s;
  
  for (; 0 < n; ++su, --n) {
    *su = uc;
  }
  return s;
}


/*********************************************************************
*
*             FS__CLIB_memcpy
*
  Description:
  FS internal function. Copy n characters from the object pointed to
  by s2 into the object pointed to by s1. 

  Parameters:
  s1          - Pointer to an object.
  s2          - Pointer to an object.
  n           - Number of characters to copy.
 
  Return value:
  Value of s1.
*/

void *FS__CLIB_memcpy(void *s1, const void *s2, FS_size_t n) {	
  char *su1 = (char *)s1;
  const char *su2 = (const char *)s2;
  
  for (; 0 < n; ++su1, ++su2, --n) {
    *su1 = *su2;
  }
  return s1;
}


/*********************************************************************
*
*             FS__CLIB_strncpy
*
  Description:
  FS internal function. Copy not more than n characters from the array
  pointed to by s2 to the array pointed to by s1.

  Parameters:
  s1          - Pointer to a character array.
  s2          - Pointer to a character array.
  n           - Number of characters to copy.
 
  Return value:
  Value of s1.
*/

char *FS__CLIB_strncpy(char *s1, const char *s2, FS_size_t n) {
  char *s;
  
  for (s = s1; (0 < n) && (*s2 != '\0'); --n) {
    *s++ = *s2++;	/* copy at most n chars from s2[] */
  }
  for (; 0 < n; --n) {
    *s++ = '\0';
  }
  return s1;
}


/*********************************************************************
*
*             FS__CLIB_toupper
*
  Description:
  FS internal function. Convert a lowecase letter to a corresponding
  uppercase letter. 

  Parameters:
  c           - Letter to convert.
 
  Return value:
  Corresponding uppercase character.
*/

int FS__CLIB_toupper(int c)	{
  return (int)_ToUpperTable[c];
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜一区二区三区在线观看| 中文字幕av不卡| 中文字幕色av一区二区三区| 日本系列欧美系列| 欧美日韩一区二区在线观看视频 | 久草热8精品视频在线观看| 欧美色窝79yyyycom| 五月天激情小说综合| 91麻豆精品国产91久久久久| 免费成人你懂的| wwwwww.欧美系列| 懂色av中文字幕一区二区三区| 欧美国产丝袜视频| 一本色道久久综合亚洲aⅴ蜜桃 | 亚洲第一在线综合网站| 欧美日韩美少妇| 久久99国产精品久久99果冻传媒| 欧美变态tickle挠乳网站| 国产成人精品一区二区三区四区 | 亚洲成av人片在线观看无码| 91精品国产欧美一区二区| 久久国产精品免费| 国产精品久久久久久亚洲毛片| 一本色道久久综合精品竹菊| 亚洲1区2区3区4区| 久久久不卡网国产精品二区| 91网站在线观看视频| 香蕉乱码成人久久天堂爱免费| 欧美大尺度电影在线| 成人av网址在线| 婷婷综合另类小说色区| 国产亚洲一本大道中文在线| 一本到不卡免费一区二区| 免费成人在线观看视频| 国产蜜臀97一区二区三区| 欧美三级视频在线观看| 国产激情一区二区三区四区| 一区二区三区色| 精品国产一区二区三区忘忧草| www.亚洲人| 久久www免费人成看片高清| 亚洲欧美在线视频| 精品美女在线播放| 91国产丝袜在线播放| 国产一区中文字幕| 性久久久久久久久久久久| 国产精品免费av| 日韩一区二区在线观看视频播放| av亚洲精华国产精华精| 久久草av在线| 天天av天天翘天天综合网| 中文字幕在线一区免费| 日韩精品中文字幕一区二区三区 | 日韩成人一级片| 亚洲欧美日韩人成在线播放| 久久先锋影音av| 在线不卡的av| 91豆麻精品91久久久久久| 国产成人精品一区二区三区网站观看| 丝袜诱惑亚洲看片| 亚洲黄色免费电影| 中文字幕一区二区三区蜜月| 337p粉嫩大胆噜噜噜噜噜91av | 天天综合日日夜夜精品| 亚洲婷婷在线视频| 国产欧美日韩一区二区三区在线观看| 欧美精品aⅴ在线视频| 色哟哟在线观看一区二区三区| 国产福利电影一区二区三区| 麻豆一区二区99久久久久| 日韩中文字幕91| 亚洲妇女屁股眼交7| 樱桃视频在线观看一区| 中文字幕在线观看不卡| 亚洲国产高清aⅴ视频| 亚洲精品一区二区三区四区高清| 欧美一区中文字幕| 欧美一区二区三区影视| 欧美日韩国产大片| 欧美理论片在线| 欧美日韩国产美女| 欧美老肥妇做.爰bbww| 欧美日韩一卡二卡三卡| 欧美日韩久久一区| 91精品国产综合久久久久| 欧美酷刑日本凌虐凌虐| 5566中文字幕一区二区电影| 欧美乱熟臀69xxxxxx| 欧美精品国产精品| 日韩视频在线永久播放| 日韩免费看的电影| 2020国产精品自拍| 欧美高清在线一区| 综合网在线视频| 一区二区三区精密机械公司| 亚洲成人久久影院| 蜜臀av性久久久久蜜臀aⅴ流畅 | 精品三级在线看| 久久婷婷综合激情| 国产精品第四页| 亚洲一区二区三区影院| 日本午夜精品视频在线观看| 精品一区二区三区久久| 国产成人aaa| 日本高清不卡视频| 91精品国产综合久久精品麻豆| 日韩精品一区二区三区在线观看 | 色菇凉天天综合网| 欧美男人的天堂一二区| 精品久久久久久无| 国产精品久久久久久久午夜片| 亚洲精品精品亚洲| 日韩成人免费看| 国产成人丝袜美腿| 欧美中文字幕一区二区三区 | 成人三级在线视频| 在线视频欧美精品| 精品国产一区二区亚洲人成毛片| 欧美韩国日本一区| 亚洲国产三级在线| 国产美女精品一区二区三区| 91麻豆自制传媒国产之光| 日韩欧美国产综合在线一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品不卡在线| 青青草97国产精品免费观看| 成人免费不卡视频| 制服丝袜激情欧洲亚洲| 国产精品久久久久久久久搜平片| 亚洲国产va精品久久久不卡综合 | 一区二区三区在线观看欧美| 日本不卡视频一二三区| 波多野结衣一区二区三区| 91麻豆精品国产自产在线观看一区 | 欧美男女性生活在线直播观看| 久久久久久电影| 亚洲午夜精品在线| 粉嫩绯色av一区二区在线观看| 欧美性生活久久| 国产精品青草久久| 久久国产乱子精品免费女| 在线一区二区三区四区五区| 国产香蕉久久精品综合网| 日韩高清不卡在线| 日本韩国视频一区二区| 亚洲国产激情av| 精品亚洲成a人| 欧美疯狂性受xxxxx喷水图片| 中文字幕一区二区三区色视频| 极品少妇xxxx精品少妇偷拍 | 亚洲一二三四在线| 成人动漫视频在线| 久久久天堂av| 琪琪一区二区三区| 欧美日韩精品高清| 亚洲午夜精品在线| 色婷婷av一区二区三区大白胸| 国产亚洲人成网站| 国产一区二区三区黄视频 | 欧美大片在线观看| 日韩精品成人一区二区在线| 欧洲精品一区二区| 国产精品乱码一区二区三区软件 | 视频一区二区国产| 欧美日韩免费一区二区三区视频| 日韩理论片中文av| 99久久国产综合色|国产精品| 国产色91在线| 国产成人免费av在线| 国产欧美日韩激情| 国产精品自产自拍| 国产亚洲美州欧州综合国| 韩国v欧美v日本v亚洲v| 亚洲精品一区二区三区香蕉| 精品一区二区三区在线播放视频| 日韩亚洲欧美一区| 另类调教123区| 精品国产一区二区亚洲人成毛片| 九色综合国产一区二区三区| 日韩一区二区三区免费观看| 麻豆视频观看网址久久| 欧美va亚洲va在线观看蝴蝶网| 美女视频网站久久| 久久综合久久综合久久综合| 国产麻豆精品视频| 日本一区二区三区在线观看| 成人精品在线视频观看| 自拍偷拍欧美精品| 欧美在线观看你懂的| 三级在线观看一区二区| 宅男噜噜噜66一区二区66| 精品亚洲国内自在自线福利| 国产午夜精品在线观看| 成人97人人超碰人人99| 一区二区三区在线观看网站| 欧美一级久久久久久久大片| 国产一区在线不卡| 亚洲欧洲日韩综合一区二区| 欧美三级电影网| 韩国理伦片一区二区三区在线播放|