The Pedigree Project  0.1
MemoryCount.cc
1 /*
2  * Copyright (c) 2008-2014, Pedigree Developers
3  *
4  * Please see the CONTRIB file in the root of the source tree for a full
5  * list of contributors.
6  *
7  * Permission to use, copy, modify, and distribute this software for any
8  * purpose with or without fee is hereby granted, provided that the above
9  * copyright notice and this permission notice appear in all copies.
10  *
11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 #include "pedigree/kernel/utilities/MemoryCount.h"
21 #include "pedigree/kernel/Log.h"
22 #include "pedigree/kernel/processor/PhysicalMemoryManager.h"
23 #include "pedigree/kernel/processor/types.h"
24 
25 MemoryCount::MemoryCount(const char *context)
26 {
28  m_EndPages = 0;
29  m_Context = context;
30 }
31 
32 MemoryCount::~MemoryCount()
33 {
35  ssize_t diff = static_cast<ssize_t>(m_StartPages - m_EndPages);
36  NOTICE(
37  "KERNELELF: Page difference while executing " << m_Context << ": "
38  << Dec << diff << Hex);
39  NOTICE(
40  "KERNELELF: -> difference is " << Dec << ((diff * 4096) / 1024) << Hex
41  << "K");
42 }
static PhysicalMemoryManager & instance()
#define NOTICE(text)
Definition: Log.h:74
Definition: Log.h:136
virtual size_t freePageCount() const
Definition: Log.h:138