Module: wine Branch: master Commit: f52ecfe0411ce891d378169f5543bc9c06753693 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f52ecfe0411ce891d378169f55...
Author: James Hawkins jhawkins@codeweavers.com Date: Sat May 3 21:16:24 2008 -0500
fusion: Add the missing assembly table structs.
---
dlls/fusion/assembly.c | 67 +++++++------- dlls/fusion/fusionpriv.h | 226 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 259 insertions(+), 34 deletions(-)
diff --git a/dlls/fusion/assembly.c b/dlls/fusion/assembly.c index eee889a..efffcca 100644 --- a/dlls/fusion/assembly.c +++ b/dlls/fusion/assembly.c @@ -64,54 +64,53 @@ struct tagASSEMBLY BYTE *blobs; };
-/* FIXME: fill in */ const DWORD COR_TABLE_SIZES[64] = { sizeof(MODULETABLE), sizeof(TYPEREFTABLE), sizeof(TYPEDEFTABLE), 0, + sizeof(FIELDTABLE), 0, + sizeof(METHODDEFTABLE), 0, + sizeof(PARAMTABLE), + sizeof(INTERFACEIMPLTABLE), + sizeof(MEMBERREFTABLE), + sizeof(CONSTANTTABLE), + sizeof(CUSTOMATTRIBUTETABLE), + sizeof(FIELDMARSHALTABLE), + sizeof(DECLSECURITYTABLE), + sizeof(CLASSLAYOUTTABLE), + sizeof(FIELDLAYOUTTABLE), + sizeof(STANDALONESIGTABLE), + sizeof(EVENTMAPTABLE), 0, + sizeof(EVENTTABLE), + sizeof(PROPERTYMAPTABLE), 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, + sizeof(PROPERTYTABLE), + sizeof(METHODSEMANTICSTABLE), + sizeof(METHODIMPLTABLE), + sizeof(MODULEREFTABLE), + sizeof(TYPESPECTABLE), + sizeof(IMPLMAPTABLE), + sizeof(FIELDRVATABLE), 0, 0, sizeof(ASSEMBLYTABLE), - 0, - 0, - 0, - 0, - 0, - 0, - 0, + sizeof(ASSEMBLYPROCESSORTABLE), + sizeof(ASSEMBLYOSTABLE), + sizeof(ASSEMBLYREFTABLE), + sizeof(ASSEMBLYREFPROCESSORTABLE), + sizeof(ASSEMBLYREFOSTABLE), + sizeof(FILETABLE), + sizeof(EXPORTEDTYPETABLE), sizeof(MANIFESTRESTABLE), - 0, - 0, - 0, - 0, + sizeof(NESTEDCLASSTABLE), + sizeof(GENERICPARAMTABLE), + sizeof(METHODSPECTABLE), + sizeof(GENERICPARAMCONSTRAINTTABLE), 0, 0, 0, diff --git a/dlls/fusion/fusionpriv.h b/dlls/fusion/fusionpriv.h index 829a6b7..08a2d5c 100644 --- a/dlls/fusion/fusionpriv.h +++ b/dlls/fusion/fusionpriv.h @@ -86,6 +86,13 @@ typedef struct
typedef struct { + WORD Flags; + WORD Name; + WORD Signature; +} FIELDTABLE; + +typedef struct +{ DWORD HashAlgId; WORD MajorVersion; WORD MinorVersion; @@ -107,6 +114,225 @@ typedef struct
typedef struct { + DWORD RVA; + WORD ImplFlags; + WORD Flags; + WORD Name; + WORD Signature; + WORD ParamList; +} METHODDEFTABLE; + +typedef struct +{ + WORD Flags; + WORD Sequence; + WORD Name; +} PARAMTABLE; + +typedef struct +{ + WORD Class; + WORD Interface; +} INTERFACEIMPLTABLE; + +typedef struct +{ + WORD Class; + WORD Name; + WORD Signature; +} MEMBERREFTABLE; + +typedef struct +{ + BYTE Type; + BYTE Reserved; + WORD Parent; + WORD Value; +} CONSTANTTABLE; + +typedef struct +{ + WORD Parent; + WORD Type; + WORD Value; +} CUSTOMATTRIBUTETABLE; + +typedef struct +{ + WORD Parent; + WORD NativeType; +} FIELDMARSHALTABLE; + +typedef struct +{ + WORD Action; + WORD Parent; + WORD PermissionSet; +} DECLSECURITYTABLE; + +typedef struct +{ + WORD PackingSize; + DWORD ClassSize; + WORD Parent; +} CLASSLAYOUTTABLE; + +typedef struct +{ + DWORD Offset; + WORD Field; +} FIELDLAYOUTTABLE; + +typedef struct +{ + WORD Signature; +} STANDALONESIGTABLE; + +typedef struct +{ + WORD Parent; + WORD EventList; +} EVENTMAPTABLE; + +typedef struct +{ + WORD EventFlags; + WORD Name; + WORD EventType; +} EVENTTABLE; + +typedef struct +{ + WORD Parent; + WORD PropertyList; +} PROPERTYMAPTABLE; + +typedef struct +{ + WORD Flags; + WORD Name; + WORD Type; +} PROPERTYTABLE; + +typedef struct +{ + WORD Semantics; + WORD Method; + WORD Association; +} METHODSEMANTICSTABLE; + +typedef struct +{ + WORD Class; + WORD MethodBody; + WORD MethodDeclaration; +} METHODIMPLTABLE; + +typedef struct +{ + WORD Name; +} MODULEREFTABLE; + +typedef struct +{ + WORD Signature; +} TYPESPECTABLE; + +typedef struct +{ + WORD MappingFlags; + WORD MemberForwarded; + WORD ImportName; + WORD ImportScope; +} IMPLMAPTABLE; + +typedef struct +{ + DWORD RVA; + WORD Field; +} FIELDRVATABLE; + +typedef struct +{ + DWORD Processor; +} ASSEMBLYPROCESSORTABLE; + +typedef struct +{ + DWORD OSPlatformID; + DWORD OSMajorVersion; + DWORD OSMinorVersion; +} ASSEMBLYOSTABLE; + +typedef struct +{ + WORD MajorVersion; + WORD MinorVersion; + WORD BuildNumber; + WORD RevisionNumber; + DWORD Flags; + WORD PublickKeyOrToken; + WORD Name; + WORD Culture; + WORD HashValue; +} ASSEMBLYREFTABLE; + +typedef struct +{ + DWORD Processor; + WORD AssemblyRef; +} ASSEMBLYREFPROCESSORTABLE; + +typedef struct +{ + DWORD OSPlatformId; + DWORD OSMajorVersion; + DWORD OSMinorVersion; + WORD AssemblyRef; +} ASSEMBLYREFOSTABLE; + +typedef struct +{ + DWORD Flags; + WORD Name; + WORD HashValue; +} FILETABLE; + +typedef struct +{ + DWORD Flags; + DWORD TypeDefId; + WORD TypeName; + WORD TypeNameSpace; + WORD Implementation; +} EXPORTEDTYPETABLE; + +typedef struct +{ + WORD NestedClass; + WORD EnclosingClass; +} NESTEDCLASSTABLE; + +typedef struct +{ + WORD Number; + WORD Flags; +} GENERICPARAMTABLE; + +typedef struct +{ + WORD MethodDef; + WORD Instantiation; +} METHODSPECTABLE; + +typedef struct +{ + WORD Owner; + WORD Constraint; +} GENERICPARAMCONSTRAINTTABLE; + +typedef struct +{ DWORD ImportLookupTable; DWORD DateTimeStamp; DWORD ForwarderChain;