Files
raddebugger/src/radbin/radbin.h
T

81 lines
1.6 KiB
C

// Copyright (c) Epic Games Tools
// Licensed under the MIT license (https://opensource.org/license/mit/)
#ifndef RADBIN_H
#define RADBIN_H
////////////////////////////////
//~ rjf: Generated Code
#include "radbin/generated/radbin.meta.h"
////////////////////////////////
//~ rjf: Thread Parameters
typedef struct RB_ThreadParams RB_ThreadParams;
struct RB_ThreadParams
{
CmdLine *cmdline;
LaneCtx lane_ctx;
};
////////////////////////////////
//~ rjf: File Types
typedef U32 RB_FileFormatFlags;
enum
{
RB_FileFormatFlag_HasDWARF = (1<<0),
RB_FileFormatFlag_HasEhFrame = (1<<1),
};
typedef struct RB_File RB_File;
struct RB_File
{
RB_FileFormat format;
RB_FileFormatFlags format_flags;
String8 path;
String8 data;
};
typedef struct RB_FileNode RB_FileNode;
struct RB_FileNode
{
RB_FileNode *next;
RB_File *v;
};
typedef struct RB_FileList RB_FileList;
struct RB_FileList
{
RB_FileNode *first;
RB_FileNode *last;
U64 count;
};
read_only global RB_File rb_file_nil = {0};
#define rb_file_list_first(list) ((list)->first ? (list)->first->v : &rb_file_nil)
////////////////////////////////
//~ rjf: Cross-Thread State
typedef struct RB_Shared RB_Shared;
struct RB_Shared
{
RB_FileList input_files;
RB_FileList input_files_from_format_table[RB_FileFormat_COUNT];
};
////////////////////////////////
//~ rjf: Globals
global RB_Shared *rb_shared = 0;
////////////////////////////////
//~ rjf: Top-Level Entry Points
internal void rb_entry_point(CmdLine *cmdline);
internal void rb_thread_entry_point(void *p);
#endif //RADBIN_H