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
11const char* demangle_symbol(const char* mangledName, char* buffer, size_t bufferSize,
12	bool* _isObjectMethod);
13
14status_t 	get_next_argument(uint32* _cookie, const char* mangledName, char* name,
15	size_t nameSize, int32* _type, size_t* _argumentLength);
16
17// gcc 2
18const char*	demangle_symbol_gcc2(const char* name, char* buffer,
19				size_t bufferSize, bool* _isObjectMethod);
20status_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+
26const char*	demangle_symbol_gcc3(const char* name, char* buffer,
27				size_t bufferSize, bool* _isObjectMethod);
28status_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
33const char*	demangle_name_gcc3(const char* name, char* buffer,
34				size_t bufferSize);
35#endif
36
37
38#endif	// DEMANGLE_H
39