xref: /haiku/src/kits/debugger/dwarf/AttributeClasses.h (revision e1c4049fed1047bdb957b0529e1921e97ef94770)
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