Changeset 271 for soft/giet_vm/giet_libs


Ignore:
Timestamp:
Jan 17, 2014, 11:49:27 PM (11 years ago)
Author:
cfuguet
Message:
  • Bugfix: The ISR_SWITCH index should be NB_PROCS_MAX + local_pid. This is because the first NB_PROCS_MAX indexes on the XICU in each cluster are used for the WAKEUP software interrupts.
  • Relocating the memcpy and memset functions into the giet_libs/stdlib.* files.
  • Modification of the sort application to used 8 threads instead of
    1. Modifying the mapping files to distribute the 8 threads on the available processors. (Ex. When using 4 processors, each one executes 2 threads)
Location:
soft/giet_vm/giet_libs
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_libs/srl.h

    r258 r271  
    1010#include "mapping_info.h"
    1111#include "stdio.h"
    12 #include "utils.h"
     12#include "stdlib.h"
    1313
    1414#include "libsrl/srl_public_types.h"
  • soft/giet_vm/giet_libs/stdio.c

    r267 r271  
    1313#include <stdio.h>
    1414#include <giet_config.h>
    15 
    1615
    1716////////////////////////////////////////////////////////////////////////////////////
     
    823822    }
    824823}
    825 ///////////////////////////////////////////////////////////////////////////////////
    826 // memcpy()
    827 ///////////////////////////////////////////////////////////////////////////////////
    828 inline void* memcpy( void*        dest,
    829                      const void*  source,
    830                      unsigned int size )
    831 {
    832     unsigned int*       dst = dest;
    833     const unsigned int* src = source;
    834 
    835     // word-by-word copy
    836     if (!((unsigned int) dst & 3) && !((unsigned int) src & 3))
    837     {
    838         while (size > 3)
    839         {
    840             *dst++ = *src++;
    841             size -= 4;
    842         }
    843     }
    844 
    845     unsigned char * cdst = (unsigned char *) dst;
    846     unsigned char * csrc = (unsigned char *) src;
    847 
    848     /* byte-by-byte copy */
    849     while (size--)
    850     {
    851         *cdst++ = *csrc++;
    852     }
    853     return dest;
    854 }
    855824
    856825// Local Variables:
  • soft/giet_vm/giet_libs/stdlib.c

    r259 r271  
    55// Copyright (c) UPMC-LIP6
    66///////////////////////////////////////////////////////////////////////////////////
     7
     8#include <stdlib.h>
    79
    810///////////////////////////////////////////////////////////////////////////////////
     
    3133}
    3234       
     35////////////////////////////////////////////////////////////////////////////////////////
     36//  mempcy()
     37// GCC requires this function. Taken from MutekH.
     38////////////////////////////////////////////////////////////////////////////////////////
     39void * memcpy(void *_dst, const void * _src, unsigned int size) {
     40    unsigned int * dst = _dst;
     41    const unsigned int * src = _src;
     42    if (!((unsigned int) dst & 3) && !((unsigned int) src & 3) )
     43        while (size > 3) {
     44            *dst++ = *src++;
     45            size -= 4;
     46        }
     47
     48    unsigned char *cdst = (unsigned char*)dst;
     49    unsigned char *csrc = (unsigned char*)src;
     50
     51    while (size--) {
     52        *cdst++ = *csrc++;
     53    }
     54    return _dst;
     55}
     56
     57
     58////////////////////////////////////////////////////////////////////////////////////////
     59//  mempcy()
     60// GCC requires this function. Taken from MutekH.
     61////////////////////////////////////////////////////////////////////////////////////////
     62inline void * memset(void * dst, int s, unsigned int count) {
     63    char * a = (char *) dst;
     64    while (count--){
     65        *a++ = (char)s;
     66    }
     67    return dst;
     68}
     69
    3370// Local Variables:
    3471// tab-width: 4
  • soft/giet_vm/giet_libs/stdlib.h

    r259 r271  
    1010
    1111int atoi (char * str);
     12
     13////////////////////////////////////////////////////////////////////////////////////////
     14//  mempcy()
     15// GCC requires this function. Taken from MutekH.
     16////////////////////////////////////////////////////////////////////////////////////////
     17void * memcpy(void *_dst, const void * _src, unsigned int size);
     18
     19////////////////////////////////////////////////////////////////////////////////////////
     20//  mempcy()
     21// GCC requires this function. Taken from MutekH.
     22////////////////////////////////////////////////////////////////////////////////////////
     23inline void * memset(void * dst, int s, unsigned int count);
    1224#endif
    1325
Note: See TracChangeset for help on using the changeset viewer.