ReactOS  0.4.15-dev-1397-g19779b3
cxx.h File Reference
#include "wine/asm.h"
Include dependency graph for cxx.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _rtti_base_descriptor
 
struct  _rtti_base_array
 
struct  _rtti_object_hierarchy
 
struct  _rtti_object_locator
 

Macros

#define VTABLE_ADD_FUNC(name)   "\t.long " THISCALL_NAME(name) "\n"
 
#define __ASM_VTABLE(name, funcs)
 
#define DEFINE_RTTI_DATA(name, off, base_classes_no, cl1, cl2, cl3, cl4, cl5, cl6, cl7, cl8, cl9, mangled_name)
 
#define DEFINE_RTTI_DATA0(name, off, mangled_name)   DEFINE_RTTI_DATA(name, off, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, mangled_name)
 
#define DEFINE_RTTI_DATA1(name, off, cl1, mangled_name)   DEFINE_RTTI_DATA(name, off, 1, cl1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, mangled_name)
 
#define DEFINE_RTTI_DATA2(name, off, cl1, cl2, mangled_name)   DEFINE_RTTI_DATA(name, off, 2, cl1, cl2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, mangled_name)
 
#define DEFINE_RTTI_DATA3(name, off, cl1, cl2, cl3, mangled_name)   DEFINE_RTTI_DATA(name, off, 3, cl1, cl2, cl3, NULL, NULL, NULL, NULL, NULL, NULL, mangled_name)
 
#define DEFINE_RTTI_DATA4(name, off, cl1, cl2, cl3, cl4, mangled_name)   DEFINE_RTTI_DATA(name, off, 4, cl1, cl2, cl3, cl4, NULL, NULL, NULL, NULL, NULL, mangled_name)
 
#define DEFINE_RTTI_DATA8(name, off, cl1, cl2, cl3, cl4, cl5, cl6, cl7, cl8, mangled_name)   DEFINE_RTTI_DATA(name, off, 8, cl1, cl2, cl3, cl4, cl5, cl6, cl7, cl8, NULL, mangled_name)
 
#define DEFINE_RTTI_DATA9(name, off, cl1, cl2, cl3, cl4, cl5, cl6, cl7, cl8, cl9, mangled_name)   DEFINE_RTTI_DATA(name, off, 9, cl1, cl2, cl3, cl4, cl5, cl6, cl7, cl8, cl9, mangled_name)
 
#define CALL_VTBL_FUNC(this, off, ret, type, args)   ((ret (__thiscall***)type)this)[0][off/4]args
 

Typedefs

typedef struct _rtti_base_descriptor rtti_base_descriptor
 
typedef struct _rtti_base_array rtti_base_array
 
typedef struct _rtti_object_hierarchy rtti_object_hierarchy
 
typedef struct _rtti_object_locator rtti_object_locator
 

Macro Definition Documentation

◆ __ASM_VTABLE

#define __ASM_VTABLE (   name,
  funcs 
)
Value:
__asm__(".data\n" \
"\t.balign 4\n" \
"\t.long " __ASM_NAME(#name "_rtti") "\n" \
"\t.globl " __ASM_NAME("MSVCRT_" #name "_vtable") "\n" \
__ASM_NAME("MSVCRT_" #name "_vtable") ":\n" \
funcs "\n\t.text")
__asm__("\t.globl GetPhys\n" "GetPhys:\t\n" "mflr 0\n\t" "stwu 0,-16(1)\n\t" "mfmsr 5\n\t" "andi. 6,5,0xffef\n\t" "mtmsr 6\n\t" "isync\n\t" "sync\n\t" "lwz 3,0(3)\n\t" "mtmsr 5\n\t" "isync\n\t" "sync\n\t" "lwz 0,0(1)\n\t" "addi 1,1,16\n\t" "mtlr 0\n\t" "blr")
#define __ASM_NAME(name)
Definition: config.h:934
static struct __wine_debug_functions funcs
Definition: debug.c:59
Definition: name.c:38

Definition at line 37 of file cxx.h.

◆ CALL_VTBL_FUNC

#define CALL_VTBL_FUNC (   this,
  off,
  ret,
  type,
  args 
)    ((ret (__thiscall***)type)this)[0][off/4]args

Definition at line 263 of file cxx.h.

◆ DEFINE_RTTI_DATA

#define DEFINE_RTTI_DATA (   name,
  off,
  base_classes_no,
  cl1,
  cl2,
  cl3,
  cl4,
  cl5,
  cl6,
  cl7,
  cl8,
  cl9,
  mangled_name 
)

Definition at line 49 of file cxx.h.

◆ DEFINE_RTTI_DATA0

#define DEFINE_RTTI_DATA0 (   name,
  off,
  mangled_name 
)    DEFINE_RTTI_DATA(name, off, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, mangled_name)

Definition at line 161 of file cxx.h.

◆ DEFINE_RTTI_DATA1

#define DEFINE_RTTI_DATA1 (   name,
  off,
  cl1,
  mangled_name 
)    DEFINE_RTTI_DATA(name, off, 1, cl1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, mangled_name)

Definition at line 163 of file cxx.h.

◆ DEFINE_RTTI_DATA2

#define DEFINE_RTTI_DATA2 (   name,
  off,
  cl1,
  cl2,
  mangled_name 
)    DEFINE_RTTI_DATA(name, off, 2, cl1, cl2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, mangled_name)

Definition at line 165 of file cxx.h.

◆ DEFINE_RTTI_DATA3

#define DEFINE_RTTI_DATA3 (   name,
  off,
  cl1,
  cl2,
  cl3,
  mangled_name 
)    DEFINE_RTTI_DATA(name, off, 3, cl1, cl2, cl3, NULL, NULL, NULL, NULL, NULL, NULL, mangled_name)

Definition at line 167 of file cxx.h.

◆ DEFINE_RTTI_DATA4

#define DEFINE_RTTI_DATA4 (   name,
  off,
  cl1,
  cl2,
  cl3,
  cl4,
  mangled_name 
)    DEFINE_RTTI_DATA(name, off, 4, cl1, cl2, cl3, cl4, NULL, NULL, NULL, NULL, NULL, mangled_name)

Definition at line 169 of file cxx.h.

◆ DEFINE_RTTI_DATA8

#define DEFINE_RTTI_DATA8 (   name,
  off,
  cl1,
  cl2,
  cl3,
  cl4,
  cl5,
  cl6,
  cl7,
  cl8,
  mangled_name 
)    DEFINE_RTTI_DATA(name, off, 8, cl1, cl2, cl3, cl4, cl5, cl6, cl7, cl8, NULL, mangled_name)

Definition at line 171 of file cxx.h.

◆ DEFINE_RTTI_DATA9

#define DEFINE_RTTI_DATA9 (   name,
  off,
  cl1,
  cl2,
  cl3,
  cl4,
  cl5,
  cl6,
  cl7,
  cl8,
  cl9,
  mangled_name 
)    DEFINE_RTTI_DATA(name, off, 9, cl1, cl2, cl3, cl4, cl5, cl6, cl7, cl8, cl9, mangled_name)

Definition at line 173 of file cxx.h.

◆ VTABLE_ADD_FUNC

#define VTABLE_ADD_FUNC (   name)    "\t.long " THISCALL_NAME(name) "\n"

Definition at line 35 of file cxx.h.

Typedef Documentation

◆ rtti_base_array

◆ rtti_base_descriptor

◆ rtti_object_hierarchy

◆ rtti_object_locator