osprey-gcc-4.2.0/gcc/unwind-dw2-fde.c File Reference

#include "tconfig.h"
#include "tsystem.h"
#include "coretypes.h"
#include "tm.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 { const fde * tmp = x; x = y; y = tmp; } while (0)

Typedefs

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

Functions/Subroutines

void __register_frame_info_bases (const void *begin, struct object *ob, void *tbase, void *dbase)
void __register_frame_info (const 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 (const void *begin)
void__deregister_frame_info (const void *begin)
void __deregister_frame (void *begin)
static _Unwind_Ptr base_from_object (unsigned char encoding, struct object *ob)
static int get_cie_encoding (const struct dwarf_cie *cie)
static int get_fde_encoding (const struct dwarf_fde *f)
static int fde_unencoded_compare (struct object *ob __attribute__((unused)), const fde *x, const fde *y)
static int fde_single_encoding_compare (struct object *ob, const fde *x, const fde *y)
static int fde_mixed_encoding_compare (struct object *ob, const fde *x, const fde *y)
static int start_fde_sort (struct fde_accumulator *accu, size_t count)
static void fde_insert (struct fde_accumulator *accu, const 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_downheap (struct object *ob, fde_compare_t fde_compare, const fde **a, int lo, int hi)
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, const fde *this_fde)
static void add_fdes (struct object *ob, struct fde_accumulator *accu, const fde *this_fde)
static void init_object (struct object *ob)
static const fdelinear_search_fdes (struct object *ob, const fde *this_fde, void *pc)
static const fdebinary_search_unencoded_fdes (struct object *ob, void *pc)
static const fdebinary_search_single_encoding_fdes (struct object *ob, void *pc)
static const fdebinary_search_mixed_encoding_fdes (struct object *ob, void *pc)
static const fdesearch_object (struct object *ob, void *pc)
const 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 (  ) 

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

#define NO_BASE_OF_ENCODED_VALUE

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

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

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


Typedef Documentation

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

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


Function Documentation

void __deregister_frame ( void begin  ) 

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

References __deregister_frame_info(), and free().

void* __deregister_frame_info ( const void begin  ) 

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

References __deregister_frame_info_bases().

void* __deregister_frame_info_bases ( const void begin  ) 

void __register_frame ( void begin  ) 

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

References __register_frame_info(), and malloc.

void __register_frame_info ( const void begin,
struct object ob 
)

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

References __register_frame_info_bases().

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

void __register_frame_info_table ( void begin,
struct object ob 
)

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

References __register_frame_info_table_bases().

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

void __register_frame_table ( void begin  ) 

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

References __register_frame_info_table(), and malloc.

const fde* _Unwind_Find_FDE ( void pc,
struct dwarf_eh_bases bases 
)

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

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

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

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

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

static size_t classify_object_over_fdes ( struct object ob,
const 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,
const fde this_fde 
) [inline, static]

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

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

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 536 of file unwind-dw2-fde.c.

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

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

static int fde_single_encoding_compare ( struct object ob,
const fde x,
const 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 432 of file unwind-dw2-fde.c.

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

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

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

References dwarf_fde::pc_begin.

static void frame_downheap ( struct object ob,
fde_compare_t  fde_compare,
const fde **  a,
int  lo,
int  hi 
) [static]

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

References i, and SWAP.

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

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

References a, fde_vector::array, fde_vector::count, frame_downheap(), n, and SWAP.

static int get_cie_encoding ( const struct dwarf_cie cie  )  [static]

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

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

References get_cie(), and get_cie_encoding().

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

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

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

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


Variable Documentation

__gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT [static]

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

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

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


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