Home | History | Annotate | Download | only in src
      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