mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-11 12:01:26 -07:00
63 lines
1.7 KiB
C
63 lines
1.7 KiB
C
// Copyright (c) Epic Games Tools
|
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
|
|
|
#ifndef PE_MAKE_EXPORT_TABLE_H
|
|
#define PE_MAKE_EXPORT_TABLE_H
|
|
|
|
typedef struct PE_ExportParse
|
|
{
|
|
String8 obj_path;
|
|
String8 lib_path;
|
|
String8 name;
|
|
String8 alias;
|
|
COFF_ImportType type;
|
|
COFF_ImportByType import_by;
|
|
U16 hint;
|
|
U16 ordinal;
|
|
B32 is_ordinal_assigned;
|
|
B32 is_noname_present;
|
|
B32 is_private;
|
|
B32 is_forwarder;
|
|
} PE_ExportParse;
|
|
|
|
typedef struct PE_ExportParseNode
|
|
{
|
|
PE_ExportParse data;
|
|
struct PE_ExportParseNode *next;
|
|
} PE_ExportParseNode;
|
|
|
|
typedef struct PE_ExportParseList
|
|
{
|
|
U64 count;
|
|
PE_ExportParseNode *first;
|
|
PE_ExportParseNode *last;
|
|
} PE_ExportParseList;
|
|
|
|
typedef struct PE_ExportParsePtrArray
|
|
{
|
|
U64 count;
|
|
PE_ExportParse **v;
|
|
} PE_ExportParsePtrArray;
|
|
|
|
typedef struct PE_FinalizedExports
|
|
{
|
|
U64 ordinal_low;
|
|
union {
|
|
struct {
|
|
PE_ExportParsePtrArray named_exports;
|
|
PE_ExportParsePtrArray forwarder_exports;
|
|
PE_ExportParsePtrArray ordinal_exports;
|
|
};
|
|
PE_ExportParsePtrArray exports_with_names[2];
|
|
PE_ExportParsePtrArray all[3];
|
|
};
|
|
} PE_FinalizedExports;
|
|
|
|
////////////////////////////////
|
|
|
|
internal PE_ExportParsePtrArray pe_array_from_export_list(Arena *arena, PE_ExportParseList list);
|
|
internal PE_ExportParseNode * pe_export_parse_list_push(Arena *arena, PE_ExportParseList *list, PE_ExportParse data);
|
|
internal String8 pe_make_import_lib(Arena *arena, COFF_MachineType machine, COFF_TimeStamp time_stamp, String8 dll_name, String8 debug_symbols, PE_ExportParseList export_list);
|
|
|
|
#endif // COFF_EXPORT_TABLE_H
|