Improved tracing output a bit.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23643 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-01-19 16:36:53 +00:00
parent 4a553d3696
commit 5d8d6d9a0a
2 changed files with 25 additions and 7 deletions
@@ -104,19 +104,14 @@ class Block : public AbstractTraceEntry {
{
strlcpy(fLabel, label, sizeof(fLabel));
fSum = checksum(data, size);
memcpy(fBytes, data, min_c(size, sizeof(fBytes)));
Initialized();
}
virtual void AddDump(char *buffer, size_t size)
{
uint32 length = snprintf(buffer, size, "%s: block %Ld (%p), sum %lu,"
" s/l %lu/%lu, bytes ", fLabel, fBlock, fData, fSum, fStart,
" s/l %lu/%lu", fLabel, fBlock, fData, fSum, fStart,
fLength);
for (uint32 i = 0; length < size - 1 && i < sizeof(fBytes); i++) {
length += snprintf(buffer + length, size - length, "%02x",
fBytes[i]);
}
}
private:
@@ -126,7 +121,6 @@ class Block : public AbstractTraceEntry {
uint32 fLength;
uint32 fSum;
char fLabel[12];
uint8 fBytes[32];
};
} // namespace BFSBlockTracing
@@ -78,6 +78,28 @@ class Remove : public AbstractTraceEntry {
char fName[32];
};
class Action : public AbstractTraceEntry {
public:
Action(const char* action, Inode* inode)
:
fInode(inode),
fID(inode->ID())
{
strlcpy(fAction, action, sizeof(fAction));
Initialized();
}
virtual void AddDump(char *buffer, size_t size)
{
snprintf(buffer, size, "%s %Ld (%p)\n", fAction, fID, fInode);
}
private:
Inode* fInode;
ino_t fID;
char fAction[16];
};
class Resize : public AbstractTraceEntry {
public:
Resize(Inode* inode, off_t oldSize, off_t newSize)
@@ -2116,6 +2138,8 @@ Inode::NeedsTrimming()
status_t
Inode::TrimPreallocation(Transaction &transaction)
{
T(Action("TRIM", this));
status_t status = _ShrinkStream(transaction, Size());
if (status < B_OK)
return status;