#include "gic.h"

static gic_distributor_registers* gic_dregs;
static gic_cpu_interface_registers* gic_ifregs;

void gic_init(void) {
	gic_ifregs = (gic_cpu_interface_registers*)GIC_IFACE_BASE;
	gic_dregs = (gic_distributor_registers*)GIC_DIST_BASE;

	WRITE32(gic_iftegs->CCPMR, 0xFFFFu); /* Enable all interrupt priorities */
	WRITE32(gic_ifregs->CCTLR, CCTRL_ENABLE); /* Enable interrupt forwarding to this CPU */

	gic_distributor_registers* gic_dregs = (gic_distributor_registers*) GIC_DIST_BASE;
	WRITE32(gic_dregs->DCTLR, DCTLR_ENABLE); /* Enable the interrupt distributor */
