Rizin
unix-like reverse engineering framework and cli tools
labels.c File Reference
#include <rz_analysis.h>

Go to the source code of this file.

Functions

 HEAPTYPE (ut64)
 
RZ_API ut64 rz_analysis_function_get_label (RzAnalysisFunction *fcn, const char *name)
 
RZ_API const char * rz_analysis_function_get_label_at (RzAnalysisFunction *fcn, ut64 addr)
 
RZ_API bool rz_analysis_function_set_label (RzAnalysisFunction *fcn, const char *name, ut64 addr)
 
RZ_API bool rz_analysis_function_delete_label (RzAnalysisFunction *fcn, const char *name)
 
RZ_API bool rz_analysis_function_delete_label_at (RzAnalysisFunction *fcn, ut64 addr)
 

Function Documentation

◆ HEAPTYPE()

HEAPTYPE ( ut64  )

◆ rz_analysis_function_delete_label()

RZ_API bool rz_analysis_function_delete_label ( RzAnalysisFunction fcn,
const char *  name 
)

Definition at line 34 of file labels.c.

34  {
35  rz_return_val_if_fail(fcn && name, false);
36  ut64 *addr = ht_pp_find(fcn->label_addrs, name, NULL);
37  if (!addr) {
38  return false;
39  }
40  ht_up_delete(fcn->labels, *addr);
41  ht_pp_delete(fcn->label_addrs, name);
42  return true;
43 }
#define NULL
Definition: cris-opc.c:27
#define rz_return_val_if_fail(expr, val)
Definition: rz_assert.h:108
Definition: z80asm.h:102
ut64(WINAPI *w32_GetEnabledXStateFeatures)()
static int addr
Definition: z80asm.c:58

References addr, rz_analysis_function_t::label_addrs, rz_analysis_function_t::labels, NULL, rz_return_val_if_fail, and ut64().

Referenced by rz_core_visual_cmd(), and rz_flag_local_remove_handler().

◆ rz_analysis_function_delete_label_at()

RZ_API bool rz_analysis_function_delete_label_at ( RzAnalysisFunction fcn,
ut64  addr 
)

Definition at line 45 of file labels.c.

45  {
46  rz_return_val_if_fail(fcn, false);
47  char *name = ht_up_find(fcn->labels, addr, NULL);
48  if (!name) {
49  return false;
50  }
51  ht_pp_delete(fcn->label_addrs, name);
52  ht_up_delete(fcn->labels, addr);
53  return true;
54 }

References addr, rz_analysis_function_t::label_addrs, rz_analysis_function_t::labels, NULL, and rz_return_val_if_fail.

◆ rz_analysis_function_get_label()

RZ_API ut64 rz_analysis_function_get_label ( RzAnalysisFunction fcn,
const char *  name 
)

Definition at line 9 of file labels.c.

9  {
11  ut64 *addr = ht_pp_find(fcn->label_addrs, name, NULL);
12  return addr ? *addr : UT64_MAX;
13 }
#define UT64_MAX
Definition: rz_types_base.h:86

References addr, rz_analysis_function_t::label_addrs, NULL, rz_return_val_if_fail, ut64(), and UT64_MAX.

Referenced by num_callback().

◆ rz_analysis_function_get_label_at()

RZ_API const char* rz_analysis_function_get_label_at ( RzAnalysisFunction fcn,
ut64  addr 
)

Definition at line 15 of file labels.c.

15  {
17  return ht_up_find(fcn->labels, addr, NULL);
18 }

References addr, rz_analysis_function_t::labels, NULL, and rz_return_val_if_fail.

Referenced by ds_print_fcn_name(), ds_print_labels(), and rz_core_init().

◆ rz_analysis_function_set_label()

RZ_API bool rz_analysis_function_set_label ( RzAnalysisFunction fcn,
const char *  name,
ut64  addr 
)

Definition at line 20 of file labels.c.

20  {
21  rz_return_val_if_fail(fcn && name, false);
22  if (ht_pp_find(fcn->label_addrs, name, NULL)) {
23  return false;
24  }
25  char *n = strdup(name);
26  if (!ht_up_insert(fcn->labels, addr, n)) {
27  free(n);
28  return false;
29  }
30  ht_pp_insert(fcn->label_addrs, name, ut64_new(addr));
31  return true;
32 }
RZ_API void Ht_() free(HtName_(Ht) *ht)
Definition: ht_inc.c:130
return strdup("=SP r13\n" "=LR r14\n" "=PC r15\n" "=A0 r0\n" "=A1 r1\n" "=A2 r2\n" "=A3 r3\n" "=ZF zf\n" "=SF nf\n" "=OF vf\n" "=CF cf\n" "=SN or0\n" "gpr lr .32 56 0\n" "gpr pc .32 60 0\n" "gpr cpsr .32 64 0 ____tfiae_________________qvczn\n" "gpr or0 .32 68 0\n" "gpr tf .1 64.5 0 thumb\n" "gpr ef .1 64.9 0 endian\n" "gpr jf .1 64.24 0 java\n" "gpr qf .1 64.27 0 sticky_overflow\n" "gpr vf .1 64.28 0 overflow\n" "gpr cf .1 64.29 0 carry\n" "gpr zf .1 64.30 0 zero\n" "gpr nf .1 64.31 0 negative\n" "gpr itc .4 64.10 0 if_then_count\n" "gpr gef .4 64.16 0 great_or_equal\n" "gpr r0 .32 0 0\n" "gpr r1 .32 4 0\n" "gpr r2 .32 8 0\n" "gpr r3 .32 12 0\n" "gpr r4 .32 16 0\n" "gpr r5 .32 20 0\n" "gpr r6 .32 24 0\n" "gpr r7 .32 28 0\n" "gpr r8 .32 32 0\n" "gpr r9 .32 36 0\n" "gpr r10 .32 40 0\n" "gpr r11 .32 44 0\n" "gpr r12 .32 48 0\n" "gpr r13 .32 52 0\n" "gpr r14 .32 56 0\n" "gpr r15 .32 60 0\n" "gpr r16 .32 64 0\n" "gpr r17 .32 68 0\n")
int n
Definition: mipsasm.c:19

References addr, free(), rz_analysis_function_t::label_addrs, rz_analysis_function_t::labels, n, NULL, rz_return_val_if_fail, and strdup().

Referenced by function_load_cb(), rz_core_visual_cmd(), and rz_flag_local_add_handler().