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_ADDRPTR = 2, 21 ATTRIBUTE_CLASS_BLOCK = 3, 22 ATTRIBUTE_CLASS_CONSTANT = 4, 23 ATTRIBUTE_CLASS_FLAG = 5, 24 ATTRIBUTE_CLASS_LINEPTR = 6, 25 ATTRIBUTE_CLASS_LOCLIST = 7, 26 ATTRIBUTE_CLASS_LOCLISTPTR = 8, 27 ATTRIBUTE_CLASS_MACPTR = 9, 28 ATTRIBUTE_CLASS_RANGELIST = 10, 29 ATTRIBUTE_CLASS_RANGELISTPTR = 11, 30 ATTRIBUTE_CLASS_REFERENCE = 12, 31 ATTRIBUTE_CLASS_STRING = 13, 32 ATTRIBUTE_CLASS_STROFFSETSPTR = 14, 33 }; 34 35 36 uint16 get_attribute_name_classes(uint32 name); 37 uint16 get_attribute_form_classes(uint32 form); 38 uint8 get_attribute_class(uint32 name, uint32 form); 39 40 const char* get_attribute_name_name(uint32 name); 41 const char* get_attribute_form_name(uint32 form); 42 43 DebugInfoEntrySetter get_attribute_name_setter(uint32 name); 44 45 46 #endif // ATTRIBUTE_TABLES_H 47