1.1 --- a/libmem/lib/src/region.cc Sat May 01 22:37:16 2021 +0200
1.2 +++ b/libmem/lib/src/region.cc Sat May 01 23:51:28 2021 +0200
1.3 @@ -28,8 +28,8 @@
1.4
1.5 /* Initialise region state, indicating the size, file and position. */
1.6
1.7 -RegionState::RegionState(unsigned long size, fileid_t fileid, offset_t filepos)
1.8 -: size(size), fileid(fileid), filepos(filepos)
1.9 +RegionState::RegionState(fileid_t fileid, offset_t filepos)
1.10 +: fileid(fileid), filepos(filepos)
1.11 {
1.12 }
1.13
1.14 @@ -39,6 +39,12 @@
1.15 this->filepos = filepos;
1.16 }
1.17
1.18 +void RegionState::flush()
1.19 +{
1.20 + fileid = FILEID_INVALID;
1.21 + filepos = 0;
1.22 +}
1.23 +
1.24
1.25
1.26 /* Initialise a region having the given 'start' and 'end' addresses, with the
1.27 @@ -52,11 +58,15 @@
1.28 memset((void *) start, 0, end - start);
1.29 }
1.30
1.31 +/* Deallocate the region, freeing its memory. */
1.32 +
1.33 Region::~Region()
1.34 {
1.35 free((void *) start);
1.36 }
1.37
1.38 +/* Return the size of the region. */
1.39 +
1.40 offset_t Region::size()
1.41 {
1.42 return end - start;
1.43 @@ -74,13 +84,18 @@
1.44 return 0;
1.45 }
1.46
1.47 +/* Tag the region with file identifier and position details. */
1.48 +
1.49 void Region::fill(fileid_t fileid, offset_t filepos)
1.50 {
1.51 state.fill(fileid, filepos);
1.52 }
1.53
1.54 +/* Remove the file details from the region state. */
1.55 +
1.56 void Region::flush()
1.57 {
1.58 + state.flush();
1.59 }
1.60
1.61 /* Simulation methods. */