1 /*############################################################################ 2 # Copyright 2017 Intel Corporation 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 ############################################################################*/ 16 /// Tiny portable implementations of standard library functions 17 /*! \file */ 18 19 #include "epid/member/tiny/stdlib/tiny_stdlib.h" 20 21 #ifdef SHARED 22 23 void* memset(void* ptr, int value, size_t num) { 24 unsigned char* p = ptr; 25 size_t i = num; 26 while (i != 0) { 27 i -= 1; 28 p[i] = (unsigned char)value; 29 } 30 return ptr; 31 } 32 33 int memcmp(const void* ptr1, const void* ptr2, size_t num) { 34 const unsigned char* p1 = (const unsigned char*)ptr1; 35 const unsigned char* p2 = (const unsigned char*)ptr2; 36 int d = 0; 37 while (num != 0 && d == 0) { 38 d = (*p1 == *p2) ? 0 : ((*p1 < *p2) ? -1 : 1); 39 p1 += 1; 40 p2 += 1; 41 num -= 1; 42 } 43 return d; 44 } 45 46 #endif // SHARED 47