source: trunk/IPs/systemC/Environment/Data/src/Data.cpp @ 144

Last change on this file since 144 was 144, checked in by rosiere, 14 years ago

1) compatible gcc 4.4.3
2) Translation file in MORPHEO_PREFIX directory

  • Property svn:keywords set to Id
File size: 986 bytes
Line 
1#include "../include/Data.h"
2#include <stdlib.h>
3
4namespace environment {
5namespace data {
6
7  Data::Data (std::string name, Parameters * param)
8  {
9    this->name  = name;
10    this->param = param;
11
12    std::list<SEGMENT_TABLE_ENTRY> seglist = param->segtab->getSegmentList(param->globalIndex,param->localIndex);
13    nb_seg = seglist.size();
14
15    if (nb_seg >= param->max_seg)
16      {
17        std::cerr << "The number of seg can't be higher that " << param->max_seg << std::endl;
18        exit (1);
19      }
20   
21    segment = new Segment * [param->max_seg];
22   
23    uint32_t i=0;
24    for (std::list<SEGMENT_TABLE_ENTRY>::iterator iter = seglist.begin(); iter != seglist.end() ; ++iter)
25      {
26        SEGMENT_TABLE_ENTRY * entry = &(*iter);
27
28        segment [i] = new Segment (entry);
29       
30        param->segtab->setAddrAlloc(entry->getBase(),(void *)(segment [i]->data_addr()));
31
32        i ++;
33      }
34  }
35
36  Data::~Data (void)
37  {
38    for (uint32_t i=0; i<nb_seg; i++)
39      delete segment [i];
40    delete [] segment;
41  }
42
43};
44};
Note: See TracBrowser for help on using the repository browser.