+void * memset (void *dest, char ch, size_t count)\r
+{\r
+ //\r
+ // NOTE: Here we use one base implementation for memset, instead of the direct\r
+ // optimized SetMem() wrapper. Because the IntrinsicLib has to be built \r
+ // without whole program optimization option, and there will be some \r
+ // potential register usage errors when calling other optimized codes.\r
+ //\r
+\r
+ //\r
+ // Declare the local variables that actually move the data elements as\r
+ // volatile to prevent the optimizer from replacing this function with\r
+ // the intrinsic memset()\r
+ //\r
+ volatile UINT8 *Pointer;\r
+\r
+ Pointer = (UINT8 *)dest;\r
+ while (count-- != 0) {\r
+ *(Pointer++) = ch;\r
+ }\r
+ \r
+ return dest;\r
+}\r
+\r
+/* Compare bytes in two buffers. */\r
+int memcmp (const void *buf1, const void *buf2, size_t count)\r
+{\r
+ return (int)CompareMem(buf1, buf2, count);\r
+}\r
+\r
+int strcmp (const char *s1, const char *s2)\r