* Copyright 2009-2012, Ingo Weinhold, ingo_weinhold@gmx.de.
* Distributed under the terms of the MIT License.
*/
#include "AttributeValue.h"
#include <stdio.h>
#include "AttributeClasses.h"
const char*
AttributeValue::ToString(char* buffer, size_t size)
{
switch (attributeClass) {
case ATTRIBUTE_CLASS_ADDRESS:
snprintf(buffer, size, "%#" B_PRIx64, address);
return buffer;
case ATTRIBUTE_CLASS_BLOCK:
snprintf(buffer, size, "(%p, %#" B_PRIx64 ")", block.data,
block.length);
return buffer;
case ATTRIBUTE_CLASS_CONSTANT:
snprintf(buffer, size, "%#" B_PRIx64, constant);
return buffer;
case ATTRIBUTE_CLASS_FLAG:
snprintf(buffer, size, "%s", flag ? "true" : "false");
return buffer;
case ATTRIBUTE_CLASS_ADDRPTR:
case ATTRIBUTE_CLASS_LINEPTR:
case ATTRIBUTE_CLASS_LOCLIST:
case ATTRIBUTE_CLASS_LOCLISTPTR:
case ATTRIBUTE_CLASS_MACPTR:
case ATTRIBUTE_CLASS_RANGELIST:
case ATTRIBUTE_CLASS_RANGELISTPTR:
case ATTRIBUTE_CLASS_STROFFSETSPTR:
snprintf(buffer, size, "%#" B_PRIx64, pointer);
return buffer;
case ATTRIBUTE_CLASS_REFERENCE:
snprintf(buffer, size, "%p", reference);
return buffer;
case ATTRIBUTE_CLASS_STRING:
snprintf(buffer, size, "\"%s\"", string);
return buffer;
default:
case ATTRIBUTE_CLASS_UNKNOWN:
return "<unknown>";
}
return buffer;
}