James Hawkins : fusion: Add the missing assembly table structs.
Alexandre Julliard
julliard at winehq.org
Mon May 5 07:14:55 CDT 2008
Module: wine
Branch: master
Commit: f52ecfe0411ce891d378169f5543bc9c06753693
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f52ecfe0411ce891d378169f5543bc9c06753693
Author: James Hawkins <jhawkins at 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;
More information about the wine-cvs
mailing list