static void irqs_sysinit(void) { static const char name[] = "IRQS"; rtems_status_code status; status = rtems_interrupt_server_initialize( rtems_bsd_get_task_priority(name), rtems_bsd_get_task_stack_size(name), RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_ATTRIBUTES, NULL ); BSD_ASSERT(status == RTEMS_SUCCESSFUL); }
static int nexus_probe(device_t dev) { static const char name[] = "IRQS"; rtems_status_code status; int err; const rtems_bsd_device *nd; device_set_desc(dev, "RTEMS Nexus device"); #ifndef DISABLE_INTERRUPT_EXTENSION status = rtems_interrupt_server_initialize( rtems_bsd_get_task_priority(name), rtems_bsd_get_task_stack_size(name), RTEMS_DEFAULT_MODES, RTEMS_DEFAULT_ATTRIBUTES, NULL ); BSD_ASSERT(status == RTEMS_SUCCESSFUL); #endif mem_rman.rm_start = 0; mem_rman.rm_end = ~0UL; mem_rman.rm_type = RMAN_ARRAY; mem_rman.rm_descr = "I/O memory addresses"; err = rman_init(&mem_rman) != 0; BSD_ASSERT(err == 0); err = rman_manage_region(&mem_rman, mem_rman.rm_start, mem_rman.rm_end); BSD_ASSERT(err == 0); irq_rman.rm_start = 0; irq_rman.rm_end = ~0UL; irq_rman.rm_type = RMAN_ARRAY; irq_rman.rm_descr = "Interrupt vectors"; err = rman_init(&irq_rman) != 0; BSD_ASSERT(err == 0); err = rman_manage_region(&irq_rman, irq_rman.rm_start, irq_rman.rm_end); BSD_ASSERT(err == 0); SET_FOREACH(nd, nexus) { device_add_child(dev, nd->name, nd->unit); }