osprey/kg++fe/gnu/unwind-dw2-fde.c File Reference

#include "tconfig.h"
#include "tsystem.h"
#include "dwarf2.h"
#include "unwind.h"
#include "unwind-pe.h"
#include "unwind-dw2-fde.h"
#include "gthr.h"

Include dependency graph for unwind-dw2-fde.c:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Types

type  fde_accumulator

Defines

#define NO_BASE_OF_ENCODED_VALUE
#define init_object_mutex_once()
#define SWAP(x, y)   do { fde * tmp = x; x = y; y = tmp; } while (0)

Typedefs

typedef int(* fde_compare_t )(struct object *, fde *, fde *)

Functions/Subroutines

void __register_frame_info_bases (void *begin, struct object *ob, void *tbase, void *dbase)
void __register_frame_info (void *begin, struct object *ob)
void __register_frame (void *begin)
void __register_frame_info_table_bases (void *begin, struct object *ob, void *tbase, void *dbase)
void __register_frame_info_table (void *begin, struct object *ob)
void __register_frame_table (void *begin)
void__deregister_frame_info_bases (void *begin)
void__deregister_frame_info (void *begin)
void __deregister_frame (void *begin)
static _Unwind_Ptr base_from_object (unsigned char encoding, struct object *ob)
static int get_cie_encoding (struct dwarf_cie *cie)
static int get_fde_encoding (struct dwarf_fde *f)
static int fde_unencoded_compare (struct object *ob __attribute__((unused)), fde *x, fde *y)
static int fde_single_encoding_compare (struct object *ob, fde *x, fde *y)
static int fde_mixed_encoding_compare (struct object *ob, fde *x, fde *y)
static int start_fde_sort (struct fde_accumulator *accu, size_t count)
static void fde_insert (struct fde_accumulator *accu, fde *this_fde)
static void fde_split (struct object *ob, fde_compare_t fde_compare, struct fde_vector *linear, struct fde_vector *erratic)
static void frame_heapsort (struct object *ob, fde_compare_t fde_compare, struct fde_vector *erratic)
static void fde_merge (struct object *ob, fde_compare_t fde_compare, struct fde_vector *v1, struct fde_vector *v2)
static void end_fde_sort (struct object *ob, struct fde_accumulator *accu, size_t count)
static size_t classify_object_over_fdes (struct object *ob, fde *this_fde)
static void add_fdes (struct object *ob, struct fde_accumulator *accu, fde *this_fde)
static void init_object (struct object *ob)
static fdelinear_search_fdes (struct object *ob, fde *this_fde, void *pc)
static fdebinary_search_unencoded_fdes (struct object *ob, void *pc)
static fdebinary_search_single_encoding_fdes (struct object *ob, void *pc)
static fdebinary_search_mixed_encoding_fdes (struct object *ob, void *pc)
static fdesearch_object (struct object *ob, void *pc)
fde_Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases)

Variables

static struct objectunseen_objects
static struct objectseen_objects
static __gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT


Define Documentation

 
#define init_object_mutex_once (  ) 

#define NO_BASE_OF_ENCODED_VALUE

Definition at line 36 of file unwind-dw2-fde.c.

#define SWAP ( x,
 )     do { fde * tmp = x; x = y; y = tmp; } while (0)


Typedef Documentation

typedef int(* fde_compare_t)(struct object *, fde *, fde *)

Definition at line 368 of file unwind-dw2-fde.c.


Function Documentation

void __deregister_frame ( void begin  ) 

Definition at line 227 of file unwind-dw2-fde.c.

void* __deregister_frame_info ( void begin  ) 

Definition at line 221 of file unwind-dw2-fde.c.

Referenced by __deinit_environment(), __deregister_frame(), and __frv_deregister_eh().

void* __deregister_frame_info_bases ( void begin  ) 

Definition at line 171 of file unwind-dw2-fde.c.

Referenced by __deregister_frame_info(), and live_image_destructor().

void __register_frame ( void begin  ) 

Definition at line 108 of file unwind-dw2-fde.c.

void __register_frame_info ( void begin,
struct object ob 
)

Definition at line 102 of file unwind-dw2-fde.c.

Referenced by __frv_register_eh(), __init_environment(), and __register_frame().

void __register_frame_info_bases ( void begin,
struct object ob,
void tbase,
void dbase 
)

Definition at line 75 of file unwind-dw2-fde.c.

Referenced by __register_frame_info().

void __register_frame_info_table ( void begin,
struct object ob 
)

Definition at line 146 of file unwind-dw2-fde.c.

Referenced by __register_frame_table().

void __register_frame_info_table_bases ( void begin,
struct object ob,
void tbase,
void dbase 
)

Definition at line 125 of file unwind-dw2-fde.c.

Referenced by __register_frame_info_table().

void __register_frame_table ( void begin  ) 

Definition at line 152 of file unwind-dw2-fde.c.

fde* _Unwind_Find_FDE ( void pc,
struct dwarf_eh_bases bases 
)

static void add_fdes ( struct object ob,
struct fde_accumulator accu,
fde this_fde 
) [static]

static _Unwind_Ptr base_from_object ( unsigned char  encoding,
struct object ob 
) [static]

static fde* binary_search_mixed_encoding_fdes ( struct object ob,
void pc 
) [inline, static]

static fde* binary_search_single_encoding_fdes ( struct object ob,
void pc 
) [inline, static]

static fde* binary_search_unencoded_fdes ( struct object ob,
void pc 
) [inline, static]

Definition at line 853 of file unwind-dw2-fde.c.

References fde_vector::array, fde_vector::count, f, i, lo, NULL, dwarf_fde::pc_begin, object::sort, object::u, and vec.

Referenced by search_object().

static size_t classify_object_over_fdes ( struct object ob,
fde this_fde 
) [static]

static void end_fde_sort ( struct object ob,
struct fde_accumulator accu,
size_t  count 
) [inline, static]

static void fde_insert ( struct fde_accumulator accu,
fde this_fde 
) [inline, static]

Definition at line 408 of file unwind-dw2-fde.c.

References fde_vector::array, fde_vector::count, and fde_accumulator::linear.

Referenced by add_fdes().

static void fde_merge ( struct object ob,
fde_compare_t  fde_compare,
struct fde_vector v1,
struct fde_vector v2 
) [inline, static]

Definition at line 537 of file unwind-dw2-fde.c.

References fde_vector::array, fde_vector::count, i1, i2, and NULL.

Referenced by end_fde_sort().

static int fde_mixed_encoding_compare ( struct object ob,
fde x,
fde y 
) [static]

static int fde_single_encoding_compare ( struct object ob,
fde x,
fde y 
) [static]

static void fde_split ( struct object ob,
fde_compare_t  fde_compare,
struct fde_vector linear,
struct fde_vector erratic 
) [inline, static]

Definition at line 427 of file unwind-dw2-fde.c.

References abort, fde_vector::array, count, fde_vector::count, i, and NULL.

Referenced by end_fde_sort().

static int fde_unencoded_compare ( struct object *ob   __attribute__(unused),
fde x,
fde y 
) [static]

Definition at line 318 of file unwind-dw2-fde.c.

References dwarf_fde::pc_begin.

Referenced by end_fde_sort().

static void frame_heapsort ( struct object ob,
fde_compare_t  fde_compare,
struct fde_vector erratic 
) [static]

Definition at line 472 of file unwind-dw2-fde.c.

References a, fde_vector::array, fde_vector::count, i, n, and SWAP.

Referenced by end_fde_sort().

static int get_cie_encoding ( struct dwarf_cie cie  )  [static]

static int get_fde_encoding ( struct dwarf_fde f  )  [inline, static]

static void init_object ( struct object ob  )  [inline, static]

static fde* linear_search_fdes ( struct object ob,
fde this_fde,
void pc 
) [static]

static fde* search_object ( struct object ob,
void pc 
) [static]

static int start_fde_sort ( struct fde_accumulator accu,
size_t  count 
) [inline, static]

Definition at line 389 of file unwind-dw2-fde.c.

References fde_vector::count, fde_accumulator::erratic, fde_accumulator::linear, malloc, and size.

Referenced by init_object().


Variable Documentation

__gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT [static]

Definition at line 50 of file unwind-dw2-fde.c.

Definition at line 47 of file unwind-dw2-fde.c.

Referenced by _Unwind_Find_FDE(), examine_objects(), and live_image_destructor().

Definition at line 46 of file unwind-dw2-fde.c.

Referenced by _Unwind_Find_FDE(), examine_objects(), and live_image_destructor().


Generated on Wed Apr 8 15:47:46 2009 for Open64 by  doxygen 1.5.6