mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-26 05:25:00 -07:00
47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
// Copyright (c) 2024 Epic Games Tools
|
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
|
|
|
#pragma once
|
|
|
|
typedef struct LNK_Export
|
|
{
|
|
struct LNK_Export *next;
|
|
String8 name;
|
|
LNK_Symbol *symbol;
|
|
U32 id;
|
|
U16 ordinal;
|
|
COFF_ImportType type;
|
|
B32 is_private;
|
|
} LNK_Export;
|
|
|
|
typedef struct LNK_ExportList
|
|
{
|
|
U64 count;
|
|
LNK_Export *first;
|
|
LNK_Export *last;
|
|
} LNK_ExportList;
|
|
|
|
typedef struct LNK_ExportArray
|
|
{
|
|
U64 count;
|
|
LNK_Export *v;
|
|
} LNK_ExportArray;
|
|
|
|
typedef struct LNK_ExportTable
|
|
{
|
|
Arena *arena;
|
|
HashTable *name_export_ht;
|
|
HashTable *noname_export_ht;
|
|
U64 voff_size;
|
|
U64 max_ordinal;
|
|
B8 *is_ordinal_used;
|
|
} LNK_ExportTable;
|
|
|
|
internal LNK_ExportTable * lnk_export_table_alloc(void);
|
|
internal void lnk_export_table_release(LNK_ExportTable **exptab_ptr);
|
|
internal LNK_Export * lnk_export_table_search(LNK_ExportTable *exptab, String8 name);
|
|
internal void lnk_collect_exports_from_def_files(LNK_ExportTable *exptab, String8List path_list);
|
|
internal void lnk_build_edata(LNK_ExportTable *exptab, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, String8 image_name, COFF_MachineType machine);
|
|
internal void lnk_collect_exports_from_obj_directives(LNK_ExportTable *exptab, LNK_ObjList obj_list, LNK_SymbolTable *symtab);
|
|
|