symbol.h Source File
Back to the index.
src
include
symbol.h
Go to the documentation of this file.
1
#ifndef SYMBOL_H
2
#define SYMBOL_H
3
4
/*
5
* Copyright (C) 2004-2010 Anders Gavare. All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
*
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* 3. The name of the author may not be used to endorse or promote products
16
* derived from this software without specific prior written permission.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28
* SUCH DAMAGE.
29
*
30
*
31
* Symbol handling routines.
32
*/
33
34
#include "
misc.h
"
35
36
/* This should actually only be used within symbol.c: */
37
struct
symbol
{
38
struct
symbol
*
next
;
39
uint64_t
addr
;
40
uint64_t
len
;
41
char
*
name
;
42
int
type
;
43
44
int
n_args
;
45
/* TODO: argument types */
46
};
47
48
49
struct
symbol_context
{
50
struct
symbol
*
first_symbol
;
51
int
sorted_array
;
52
int
n_symbols
;
53
54
};
55
56
/* symbol.c: */
57
int
symbol_nsymbols
(
struct
symbol_context
*);
58
int
get_symbol_addr
(
struct
symbol_context
*,
const
char
*
symbol
, uint64_t *
addr
);
59
char
*
get_symbol_name_and_n_args
(
struct
symbol_context
*, uint64_t
addr
,
60
uint64_t *offset,
int
*n_argsp);
61
char
*
get_symbol_name
(
struct
symbol_context
*, uint64_t
addr
, uint64_t *offset);
62
void
add_symbol_name
(
struct
symbol_context
*, uint64_t
addr
,
63
uint64_t
len
,
const
char
*
name
,
int
type
,
int
n_args
);
64
void
symbol_readfile
(
struct
symbol_context
*,
char
*fname);
65
void
symbol_recalc_sizes
(
struct
symbol_context
*);
66
void
symbol_init
(
struct
symbol_context
*);
67
68
/* symbol_demangle.c: */
69
char
*
symbol_demangle_cplusplus
(
const
char
*
name
);
70
71
#endif
/* SYMBOL_H */
symbol_context::first_symbol
struct symbol * first_symbol
Definition:
symbol.h:50
get_symbol_name
char * get_symbol_name(struct symbol_context *, uint64_t addr, uint64_t *offset)
Definition:
symbol.cc:188
symbol_context
Definition:
symbol.h:49
symbol_context::n_symbols
int n_symbols
Definition:
symbol.h:52
addr
uint32_t addr
Definition:
tmp_arm_multi.cc:52
symbol_init
void symbol_init(struct symbol_context *)
Definition:
symbol.cc:415
symbol::name
char * name
Definition:
symbol.h:41
symbol::type
int type
Definition:
symbol.h:42
symbol_demangle_cplusplus
char * symbol_demangle_cplusplus(const char *name)
Definition:
symbol_demangle.cc:236
symbol::addr
uint64_t addr
Definition:
symbol.h:39
misc.h
symbol::n_args
int n_args
Definition:
symbol.h:44
symbol::next
struct symbol * next
Definition:
symbol.h:38
get_symbol_addr
int get_symbol_addr(struct symbol_context *, const char *symbol, uint64_t *addr)
Definition:
symbol.cc:63
symbol
Definition:
symbol.h:37
add_symbol_name
void add_symbol_name(struct symbol_context *, uint64_t addr, uint64_t len, const char *name, int type, int n_args)
Definition:
symbol.cc:199
symbol::len
uint64_t len
Definition:
symbol.h:40
get_symbol_name_and_n_args
char * get_symbol_name_and_n_args(struct symbol_context *, uint64_t addr, uint64_t *offset, int *n_argsp)
Definition:
symbol.cc:110
symbol_recalc_sizes
void symbol_recalc_sizes(struct symbol_context *)
Definition:
symbol.cc:362
symbol_context::sorted_array
int sorted_array
Definition:
symbol.h:51
symbol_nsymbols
int symbol_nsymbols(struct symbol_context *)
Definition:
symbol.cc:49
symbol_readfile
void symbol_readfile(struct symbol_context *, char *fname)
Definition:
symbol.cc:284
Generated on Tue Mar 24 2020 14:04:48 for GXemul by
1.8.17