xref: /haiku/src/add-ons/kernel/debugger/demangle/demangle.h (revision 83b1a68c52ba3e0e8796282759f694b7fdddf06d)
1 /*
2  * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef DEMANGLE_H
6 #define DEMANGLE_H
7 
8 #include <SupportDefs.h>
9 
10 
11 const char* demangle_symbol(const char* mangledName, char* buffer, size_t bufferSize,
12 	bool* _isObjectMethod);
13 
14 status_t 	get_next_argument(uint32* _cookie, const char* mangledName, char* name,
15 	size_t nameSize, int32* _type, size_t* _argumentLength);
16 
17 // gcc 2
18 const char*	demangle_symbol_gcc2(const char* name, char* buffer,
19 				size_t bufferSize, bool* _isObjectMethod);
20 status_t	get_next_argument_gcc2(uint32* _cookie, const char* symbol,
21 				char* name, size_t nameSize, int32* _type,
22 				size_t* _argumentLength);
23 
24 
25 // gcc 3+
26 const char*	demangle_symbol_gcc3(const char* name, char* buffer,
27 				size_t bufferSize, bool* _isObjectMethod);
28 status_t	get_next_argument_gcc3(uint32* _cookie, const char* symbol,
29 				char* name, size_t nameSize, int32* _type,
30 				size_t* _argumentLength);
31 
32 #ifndef _KERNEL_MODE
33 const char*	demangle_name_gcc3(const char* name, char* buffer,
34 				size_t bufferSize);
35 #endif
36 
37 
38 #endif	// DEMANGLE_H
39