decompiler 1.0.0
Classes | Typedefs | Variables
fspec.hh File Reference

Definitions for specifying functions prototypes. More...

#include "op.hh"
#include "rangemap.hh"

Classes

struct  ParamUnassignedError
 Exception thrown when a prototype can't be modeled properly. More...
 
class  ParamEntry
 A contiguous range of memory that can be used to pass parameters. More...
 
class  ParamEntryRange
 Class for storing ParamEntry objects in an interval range (rangemap) More...
 
class  ParamEntryRange::InitData
 Helper class for initializing ParamEntryRange in a range map. More...
 
class  ParamEntryRange::SubsortPosition
 Helper class for subsorting on position. More...
 
class  ParamTrial
 A register or memory register that may be used to pass a parameter or return value. More...
 
class  ParamActive
 Container class for ParamTrial objects. More...
 
class  FspecSpace
 A special space for encoding FuncCallSpecs. More...
 
struct  ParameterPieces
 Basic elements of a parameter: address, data-type, properties. More...
 
class  EffectRecord
 Description of the indirect effect a sub-function has on a memory range. More...
 
class  ParamList
 
class  ParamListStandard
 A standard model for parameters as an ordered list of storage resources. More...
 
class  ParamListRegisterOut
 A model for passing back return values from a function. More...
 
class  ParamListRegister
 An unstructured model for passing input parameters to a function. More...
 
class  ParamListStandardOut
 A standard model for returning output parameters from a function. More...
 
class  ParamListMerged
 A union of other input parameter passing models. More...
 
class  ProtoModel
 A prototype model: a model for passing parameters between functions. More...
 
class  UnknownProtoModel
 An unrecognized prototype model. More...
 
class  ScoreProtoModel
 Class for calculating "goodness of fit" of parameter trials against a prototype model. More...
 
class  ScoreProtoModel::PEntry
 A record mapping trials to parameter entries in the prototype model. More...
 
class  ProtoModelMerged
 A prototype model made by merging together other models. More...
 
class  ProtoParameter
 A function parameter viewed as a name, data-type, and storage address. More...
 
class  ParameterBasic
 A stand-alone parameter with no backing symbol. More...
 
class  ProtoStore
 A collection parameter descriptions making up a function prototype. More...
 
class  ParameterSymbol
 A parameter with a formal backing Symbol. More...
 
class  ProtoStoreSymbol
 A collection of parameter descriptions backed by Symbol information. More...
 
class  ProtoStoreInternal
 A collection of parameter descriptions without backing symbols. More...
 
struct  PrototypePieces
 Raw components of a function prototype (obtained from parsing source code) More...
 
class  FuncProto
 A function prototype. More...
 
class  FuncCallSpecs
 A class for analyzing parameters to a sub-function call. More...
 

Typedefs

typedef rangemap< ParamEntryRangeParamEntryResolver
 A map from offset to ParamEntry.
 

Variables

AttributeId ATTRIB_CUSTOM
 Marshaling attribute "custom".
 
AttributeId ATTRIB_DOTDOTDOT
 Marshaling attribute "dotdotdot".
 
AttributeId ATTRIB_EXTENSION
 Marshaling attribute "extension".
 
AttributeId ATTRIB_HASTHIS
 Marshaling attribute "hasthis".
 
AttributeId ATTRIB_INLINE
 Marshaling attribute "inline".
 
AttributeId ATTRIB_KILLEDBYCALL
 Marshaling attribute "killedbycall".
 
AttributeId ATTRIB_MAXSIZE
 Marshaling attribute "maxsize".
 
AttributeId ATTRIB_MINSIZE
 Marshaling attribute "minsize".
 
AttributeId ATTRIB_MODELLOCK
 Marshaling attribute "modellock".
 
AttributeId ATTRIB_NORETURN
 Marshaling attribute "noreturn".
 
AttributeId ATTRIB_POINTERMAX
 Marshaling attribute "pointermax".
 
AttributeId ATTRIB_SEPARATEFLOAT
 Marshaling attribute "separatefloat".
 
AttributeId ATTRIB_STACKSHIFT
 Marshaling attribute "stackshift".
 
AttributeId ATTRIB_STRATEGY
 Marshaling attribute "strategy".
 
AttributeId ATTRIB_THISBEFORERETPOINTER
 Marshaling attribute "thisbeforeretpointer".
 
AttributeId ATTRIB_VOIDLOCK
 Marshaling attribute "voidlock".
 
ElementId ELEM_GROUP
 Marshaling element <group>
 
ElementId ELEM_INTERNALLIST
 Marshaling element <internallist>
 
ElementId ELEM_KILLEDBYCALL
 Marshaling element <killedbycall>
 
ElementId ELEM_LIKELYTRASH
 Marshaling element <likelytrash>
 
ElementId ELEM_LOCALRANGE
 Marshaling element <localrange>
 
ElementId ELEM_MODEL
 Marshaling element <model>
 
ElementId ELEM_PARAM
 Marshaling element <param>
 
ElementId ELEM_PARAMRANGE
 Marshaling element <paramrange>
 
ElementId ELEM_PENTRY
 Marshaling element <pentry>
 
ElementId ELEM_PROTOTYPE
 Marshaling element <prototype>
 
ElementId ELEM_RESOLVEPROTOTYPE
 Marshaling element <resolveprototype>
 
ElementId ELEM_RETPARAM
 Marshaling element <retparam>
 
ElementId ELEM_RETURNSYM
 Marshaling element <returnsym>
 
ElementId ELEM_UNAFFECTED
 Marshaling element <unaffected>
 

Detailed Description

Definitions for specifying functions prototypes.