#include <linux/tables.h>
#include <asm/x86_init_fn.h>
#include <asm/bootparam.h>

#include <linux/pci.h>

DECLARE_LINKTABLE(struct pci_fixup, pci_fixup_early);

void early_init_pci(void) {

	const struct pci_fixup *fixup;
	unsigned int tbl_size = LINUX_SECTION_SIZE(pci_fixup_early);

	pr_info("PCI fixup size: %d\n", tbl_size);

	sleep(1);
	pr_info("Demo: Using LINKTABLE_FOR_EACH\n");
	LINKTABLE_FOR_EACH(fixup, pci_fixup_early)
		fixup->hook();

	pr_info("Demo: Using LINKTABLE_RUN_ALL\n");
	LINKTABLE_RUN_ALL(pci_fixup_early, hook,);
}

bool detect_pci(void) {
	return true;
}

X86_INIT_EARLY_ALL(pci, detect_pci, NULL, early_init_pci, NULL, NULL);
