interrupt_controller
intc_info interrupt_controller;
intc_info interrupt_controller;
void arch_int_set_interrupt_controller(const interrupt_controller &controller);
intc_info &interrupt_controller = gKernelArgs.arch_args.interrupt_controller;
if (interrupt_controller.kind[0] == 0) {
dprintf(" kind: %s\n", interrupt_controller.kind);
interrupt_controller.regs1.start,
interrupt_controller.regs1.size);
interrupt_controller.regs2.start,
interrupt_controller.regs2.size);
intc_info &interrupt_controller = gKernelArgs.arch_args.interrupt_controller;
if (interrupt_controller.kind[0] == 0) {
memcpy(interrupt_controller.kind, kSupportedInterruptControllers[i].kind,
sizeof(interrupt_controller.kind));
dtb_get_reg(fdt, node, 0, interrupt_controller.regs1);
dtb_get_reg(fdt, node, 1, interrupt_controller.regs2);
intc_info &intc = gKernelArgs.arch_args.interrupt_controller;
intc_info &interrupt_controller = gKernelArgs.arch_args.interrupt_controller;
if (interrupt_controller.kind[0] == 0) {
memcpy(interrupt_controller.kind, kSupportedInterruptControllers[i].kind,
sizeof(interrupt_controller.kind));
dtb_get_reg(fdt, node, 0, interrupt_controller.regs1);
dtb_get_reg(fdt, node, 1, interrupt_controller.regs2);
intc_info &interrupt_controller = gKernelArgs.arch_args.interrupt_controller;
if (interrupt_controller.kind[0] == 0) {
dprintf(" kind: %s\n", interrupt_controller.kind);
interrupt_controller.regs1.start,
interrupt_controller.regs1.size);
interrupt_controller.regs2.start,
interrupt_controller.regs2.size);
if (strncmp(args->arch_args.interrupt_controller.kind, INTC_KIND_GICV2,
sizeof(args->arch_args.interrupt_controller.kind)) == 0) {
args->arch_args.interrupt_controller.regs1.start,
args->arch_args.interrupt_controller.regs2.start);
} else if (strncmp(args->arch_args.interrupt_controller.kind, INTC_KIND_OMAP3,
sizeof(args->arch_args.interrupt_controller.kind)) == 0) {
args->arch_args.interrupt_controller.regs1.start);
} else if (strncmp(args->arch_args.interrupt_controller.kind, INTC_KIND_PXA,
sizeof(args->arch_args.interrupt_controller.kind)) == 0) {
args->arch_args.interrupt_controller.regs1.start);
} else if (strncmp(args->arch_args.interrupt_controller.kind, INTC_KIND_SUN4I,
sizeof(args->arch_args.interrupt_controller.kind)) == 0) {
args->arch_args.interrupt_controller.regs1.start);
if (strcmp(args->arch_args.interrupt_controller.kind, INTC_KIND_GICV2) == 0) {
args->arch_args.interrupt_controller.regs1.start,
args->arch_args.interrupt_controller.regs2.start);
arch_int_set_interrupt_controller(const interrupt_controller& controller)
static const interrupt_controller* sCurrentPIC = NULL;
static const interrupt_controller ioapicController = {
static const interrupt_controller picController = {