ROSE  0.9.9.139
Classes | Typedefs | Enumerations | Functions | Variables
Rose::BinaryAnalysis::CallingConvention Namespace Reference

Description

Support for binary calling conventions.

This namespace has three main classes and a number of auxiliary classes. The main classes are:

Classes

class  Analysis
 Function calling convention. More...
 
class  Definition
 Information about calling conventions. More...
 
class  ParameterLocation
 Abstract parameter location. More...
 

Typedefs

typedef Sawyer::SharedPointer< class DefinitionDefinitionPtr
 Reference counting pointer to calling convention definition. More...
 
typedef std::vector< Definition::PtrDictionary
 A ordered collection of calling convention definitions. More...
 

Enumerations

enum  StackParameterOrder {
  LEFT_TO_RIGHT,
  RIGHT_TO_LEFT,
  ORDER_UNSPECIFIED
}
 The order that arguments are pushed onto the stack. More...
 
enum  StackDirection {
  GROWS_UP,
  GROWS_DOWN
}
 The direction in which the stack grows. More...
 
enum  StackCleanup {
  CLEANUP_BY_CALLER,
  CLEANUP_BY_CALLEE,
  CLEANUP_UNSPECIFIED
}
 Who is responsible for popping stack parameters. More...
 

Functions

void initDiagnostics ()
 Initialize diagnostics. More...
 
const DictionarydictionaryAmd64 ()
 Common calling conventions for amd64 (x86-64). More...
 
const DictionarydictionaryArm ()
 Common calling conventions for ARM. More...
 
const DictionarydictionaryM68k ()
 Common calling conventions for m68k. More...
 
const DictionarydictionaryMips ()
 Common calling conventions for MIPS. More...
 
const DictionarydictionaryPowerpc ()
 Common calling conventions for PowerPC. More...
 
const DictionarydictionaryX86 ()
 Common calling conventions for 32-bit x86. More...
 
std::ostream & operator<< (std::ostream &, const Definition &)
 
std::ostream & operator<< (std::ostream &, const Analysis &)
 

Variables

Sawyer::Message::Facility mlog
 Facility for diagnostic output. More...
 

Typedef Documentation

Reference counting pointer to calling convention definition.

Definition at line 212 of file BinaryCallingConvention.h.

A ordered collection of calling convention definitions.

Definition at line 746 of file BinaryCallingConvention.h.

Enumeration Type Documentation

The order that arguments are pushed onto the stack.

Enumerator
LEFT_TO_RIGHT 

Stack parameters pushed left to right (Pascal order).

RIGHT_TO_LEFT 

Stack parameters pushed right to left (C order).

ORDER_UNSPECIFIED 

Stack parameter order is unknown or unspecified.

Definition at line 49 of file BinaryCallingConvention.h.

The direction in which the stack grows.

Enumerator
GROWS_UP 

A push increments the stack pointer.

GROWS_DOWN 

A push decrements the stack pointer.

Definition at line 56 of file BinaryCallingConvention.h.

Who is responsible for popping stack parameters.

Enumerator
CLEANUP_BY_CALLER 

The caller pops all stack parameters.

CLEANUP_BY_CALLEE 

The called function pops all stack parameters.

CLEANUP_UNSPECIFIED 

Stack parameter cleanup is unknown or unspecified.

Definition at line 62 of file BinaryCallingConvention.h.

Function Documentation

void Rose::BinaryAnalysis::CallingConvention::initDiagnostics ( )

Initialize diagnostics.

This is normally called as part of ROSE's diagnostics initialization, but it doesn't hurt to call it often.

const Dictionary& Rose::BinaryAnalysis::CallingConvention::dictionaryAmd64 ( )

Common calling conventions for amd64 (x86-64).

const Dictionary& Rose::BinaryAnalysis::CallingConvention::dictionaryArm ( )

Common calling conventions for ARM.

const Dictionary& Rose::BinaryAnalysis::CallingConvention::dictionaryM68k ( )

Common calling conventions for m68k.

const Dictionary& Rose::BinaryAnalysis::CallingConvention::dictionaryMips ( )

Common calling conventions for MIPS.

const Dictionary& Rose::BinaryAnalysis::CallingConvention::dictionaryPowerpc ( )

Common calling conventions for PowerPC.

const Dictionary& Rose::BinaryAnalysis::CallingConvention::dictionaryX86 ( )

Common calling conventions for 32-bit x86.

Variable Documentation

Sawyer::Message::Facility Rose::BinaryAnalysis::CallingConvention::mlog

Facility for diagnostic output.

The facility can be controlled directly or via ROSE's command-line.