#pragma once

#include "../types.h"

#define DEFINE_GDB_PY_SCRIPT(name) \
	asm("\
		.pushsection \".debug_gdb_scripts\", \"MS\", @progbits, 1\n\
			.byte 1\n\
			.asciz \""name"\"\n\
		.popsection \n\
	");

/// Fixed data block placed at the address 0x100000
/// Please update the initialization code in /lcrash/setup/compressed/main.c when this is changed
struct GdbDataBlock {
	/// Update tick thing stored at the beginning of the fixed data block for debuggers
	/// TODO: Optimization may break this, should this be volatile?
	u64 Update;
	
	/// Base of the cmake build directory. This is needed for lwdbg to configure itself
	c8* BuildDirectory;

	/// cckernel is present
	bool CCKernelLoaded;

	/// Base address of the cckernel
	void* CCKernelBase;

	/// Full kernel is present
	bool KernelLoaded;

	/// Base address of the kernel
	void* KernelBase;
};