1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Copyright 2013, Rene Gollent, rene@gollent.com. 4 * Distributed under the terms of the MIT License. 5 */ 6 #ifndef ATTRIBUTE_TABLES_H 7 #define ATTRIBUTE_TABLES_H 8 9 #include "DebugInfoEntry.h" 10 11 12 typedef status_t (DebugInfoEntry::* DebugInfoEntrySetter)(uint16, 13 const AttributeValue&); 14 15 16 // attribute classes 17 enum { 18 ATTRIBUTE_CLASS_UNKNOWN = 0, 19 ATTRIBUTE_CLASS_ADDRESS = 1, 20 ATTRIBUTE_CLASS_BLOCK = 2, 21 ATTRIBUTE_CLASS_CONSTANT = 3, 22 ATTRIBUTE_CLASS_FLAG = 4, 23 ATTRIBUTE_CLASS_LINEPTR = 5, 24 ATTRIBUTE_CLASS_LOCLISTPTR = 6, 25 ATTRIBUTE_CLASS_MACPTR = 7, 26 ATTRIBUTE_CLASS_RANGELISTPTR = 8, 27 ATTRIBUTE_CLASS_REFERENCE = 9, 28 ATTRIBUTE_CLASS_STRING = 10 29 }; 30 31 32 uint16 get_attribute_name_classes(uint32 name); 33 uint16 get_attribute_form_classes(uint32 form); 34 uint8 get_attribute_class(uint32 name, uint32 form); 35 36 const char* get_attribute_name_name(uint32 name); 37 const char* get_attribute_form_name(uint32 form); 38 39 DebugInfoEntrySetter get_attribute_name_setter(uint32 name); 40 41 42 #endif // ATTRIBUTE_TABLES_H 43