# HG changeset patch # User Paul Boddie # Date 1619905888 -7200 # Node ID 32c2de3b6a0623851e637f420a6caf33d8672f2c # Parent bf404ff6a9e15cc23ef05784ba253e9047c23b7e Removed redundant region state size and validity method, implementing a flush method for completeness. diff -r bf404ff6a9e1 -r 32c2de3b6a06 libmem/include/mem/region.h --- a/libmem/include/mem/region.h Sat May 01 22:37:16 2021 +0200 +++ b/libmem/include/mem/region.h Sat May 01 23:51:28 2021 +0200 @@ -32,15 +32,14 @@ class RegionState { public: - unsigned long size; fileid_t fileid; offset_t filepos; - explicit RegionState(unsigned long size=0, fileid_t fileid=0, offset_t filepos=0); + explicit RegionState(fileid_t fileid=0, offset_t filepos=0); void fill(fileid_t fileid, offset_t filepos); - bool valid() { return size != 0; } + void flush(); }; diff -r bf404ff6a9e1 -r 32c2de3b6a06 libmem/lib/src/region.cc --- a/libmem/lib/src/region.cc Sat May 01 22:37:16 2021 +0200 +++ b/libmem/lib/src/region.cc Sat May 01 23:51:28 2021 +0200 @@ -28,8 +28,8 @@ /* Initialise region state, indicating the size, file and position. */ -RegionState::RegionState(unsigned long size, fileid_t fileid, offset_t filepos) -: size(size), fileid(fileid), filepos(filepos) +RegionState::RegionState(fileid_t fileid, offset_t filepos) +: fileid(fileid), filepos(filepos) { } @@ -39,6 +39,12 @@ this->filepos = filepos; } +void RegionState::flush() +{ + fileid = FILEID_INVALID; + filepos = 0; +} + /* Initialise a region having the given 'start' and 'end' addresses, with the @@ -52,11 +58,15 @@ memset((void *) start, 0, end - start); } +/* Deallocate the region, freeing its memory. */ + Region::~Region() { free((void *) start); } +/* Return the size of the region. */ + offset_t Region::size() { return end - start; @@ -74,13 +84,18 @@ return 0; } +/* Tag the region with file identifier and position details. */ + void Region::fill(fileid_t fileid, offset_t filepos) { state.fill(fileid, filepos); } +/* Remove the file details from the region state. */ + void Region::flush() { + state.flush(); } /* Simulation methods. */