diff options
Diffstat (limited to 'src/usr/errl/errlmanager.C')
-rw-r--r-- | src/usr/errl/errlmanager.C | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/usr/errl/errlmanager.C b/src/usr/errl/errlmanager.C index bc4e84c0b..132ec49c1 100644 --- a/src/usr/errl/errlmanager.C +++ b/src/usr/errl/errlmanager.C @@ -48,7 +48,7 @@ extern trace_desc_t* g_trac_errl; // Scaffolding // Store error logs in this memory buffer in L3 RAM. -char g_ErrlStorage[ ERRL_STORAGE_SIZE ]; +char* g_ErrlStorage = new char[ ERRL_STORAGE_SIZE ]; /** @@ -90,23 +90,19 @@ ErrlManager::ErrlManager() // This buffer has a header (storage_header_t) followed by // storage. iv_pStorage = reinterpret_cast<storage_header_t*>(g_ErrlStorage); - - // g_ErrlStorage is in BSS segment, therefore already zeroed. - // memset( iv_pStorage, 0, sizeof(storage_header_t)); + memset( iv_pStorage, 0, sizeof(storage_header_t)); // Storage size is placed here for benefit of downstream parsers. - iv_pStorage->cbStorage = sizeof( g_ErrlStorage ); + iv_pStorage->cbStorage = ERRL_STORAGE_SIZE; // Offsets are zero-based at &g_ErrlStorage[0], // so the first usable offset is just past the header. iv_pStorage->offsetMarker = sizeof(storage_header_t); iv_pStorage->offsetStart = sizeof(storage_header_t); - // g_ErrlStorage is in BSS segment, therefore already zeroed. - // Thus, the prime marker in storage is already zero. - // marker_t* l_pMarker = OFFSET2MARKER( iv_pStorage->offsetStart ); - // l_pMarker->offsetNext = 0; - // l_pMarker->length = 0; + marker_t* l_pMarker = OFFSET2MARKER( iv_pStorage->offsetStart ); + l_pMarker->offsetNext = 0; + l_pMarker->length = 0; } |