init_global_static_roots.cpp raw

   1  // Symbian-specific file.
   2  
   3  #include <e32def.h>
   4  
   5  #include "gc.h"
   6  
   7  extern "C" {
   8  
   9  #if defined(__WINS__)
  10  extern int winscw_data_start, winscw_data_end;
  11  #else
  12  extern int Image$$RW$$Limit[], Image$$RW$$Base[];
  13  #endif
  14  
  15  GC_API void GC_CALL
  16  GC_init_global_static_roots()
  17  {
  18    void *dataStart;
  19    void *dataEnd;
  20  
  21  #if defined(__WINS__)
  22    dataStart = &winscw_data_start;
  23    dataEnd = &winscw_data_end;
  24  #else
  25    dataStart = (void *)Image$$RW$$Base;
  26    dataEnd = (void *)Image$$RW$$Limit;
  27  #endif
  28    GC_add_roots(dataStart, dataEnd);
  29  }
  30  
  31  } /* extern "C" */
  32