#
02463fb4 |
|
05-Mar-2024 |
X512 <danger_mail@list.ru> |
kernel/int: consolidate interrupt vector number to `int32` This is no-op for 32 bit platforms because `int32` is defined as `long` there. Change interrupt vector number from 64 bits to 32 bits for 64 bit platforms. Change-Id: I52d1ad616cab16488804e9733c7afaf772a670ba Reviewed-on: https://review.haiku-os.org/c/haiku/+/7507 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
|
#
3c259739 |
|
01-Dec-2021 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/int: Allow arch_int_assign_to_cpu to make its own decisions. For now this is used on RISCV64 to indicate that interrupts will always be on CPU 0. However, in the future, some architectures may want or require interrupts to be "steered" in various ways, and this also paves the way for that. Change-Id: Iec79870cf5c4898d102d0e624de19602271ae772 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4721 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
d897a478 |
|
17-Nov-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
kernel: Allow reassigning IRQs to logical processors
|
#
45bd7bb3 |
|
25-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed unnecessary inclusions of <boot/kernel_args.h> in private kernel headers and respectively added includes in source files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9de17be6 |
|
14-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved I/O APIC initialization to a later point, now the APCI and DPC modules can safely be used. * Since using the I/O APIC is disabled by default, I've removed the "return" that prevented its use when enabled. Let's see if it already does anything. * Adapted other arch_int.cpp with a bit of cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36290 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
567f7889 |
|
01-Oct-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fully inline {disable,restore}_interrupts() and friends when including <int.h>. Performance-wise not really significant, but gives nicer profiling results. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27827 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
69dddbde |
|
18-Jul-2008 |
Michael Lotz <mmlr@mlotz.ch> |
Initial work towards supporting IO APICs. This cannot work for PCI interrupts though until we use ACPI for proper PCI IRQ routing through the IO APIC. Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used. ISA interrupts would work though, as would PCI interrupts if you'd hardcode them for your specific configuration. Note that this change also modifies some parts in the bootloader and in the PIC setup to make local APICs available even on non-SMP systems. This causes APIC timers to be used instead the normal PIT if it is available (also on non-SMP configurations). Also fixes some general errors in SMP and PIC code as well as some code cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f4b0f67c |
|
06-Feb-2006 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added [arch_]int_post_device_manager() which is invoked after the device manager is initialized. For x86 it does nothing, but for PPC it searches for a supported interrupt controller and remembers it for later use. arch_int_{enable,disable}_io_interrupt() are implemented as well as handling of external exceptions (aka as I/O interrupts). We'll see later how well that works. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16271 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b20667b3 |
|
26-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
{install|remove}_io_interrupt_handler() now correctly handle the B_NO_ENABLE_COUNTER flag. Lots of cleanup: - moved B_NO_ENABLE_COUNTER flag definition out of int.h to KernelExport.h, as it's described in the BeBook (although it's probably not really used that often :)) - int.c no longer has any platform dependent code (+ 0x20 on interrupt numbers is gone); it's now entirely handled in the arch/x86/ section. - the io_vectors[] is now statically initialized, instead of allocated from the heap - removed {install|remove}_interrupt_handler(); they weren't that useful, arch_smp_init() is now calling install_io_interrupt_handler() correctly instead - introduced a new arch_int.h header file that currently contains NUM_IO_VECTORS only (though on x86, it also has ARCH_INTERRUPT_BASE == 0x20). - changed the return type from {install|remove}_io_interrupt_handler() from "long" to "status_t" - rearranged and cleaned the PIC initialization code, made the PIC code more prominent - changed comments that talk about a non existing 8239 (the PIC chip is actually 8259) - moved arch/x86/interrupts.h to the source directory, as it's not used outside - added BeOS compatible interrupts_enabled() function, that should replace our equivalent (and private) are_interrupts_enabled() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12477 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b0d8e689 |
|
20-Oct-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed some more init2 routines to init_post_vm() to make it clearer when and why they are called. Introduced a cpu_init_post_vm() that will now call arch_init_post_vm() instead of letting main() doing it. Fixed some return types (mostly from int to status_t). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9438 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
229ad83b |
|
28-Oct-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed arch_int_is_interrupts_enabled() to arch_int_are_interrupts_enabled(). Replaced definitions for enable_interrupts() and are_interrupts_enabled() with static inlines. Made int.h C++ safe. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5190 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f432eca4 |
|
07-Oct-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Now use the new kernel_args.h header file. Added C++ guards. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4958 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c17f45d1 |
|
03-May-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Some header cleanups. Renamed dbg_save_registers() to arch_...() since it's arch dependent. Removed unnecessary dependencies to stage2.h. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3138 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52a38012 |
|
08-Jul-2002 |
ejakowatz <ejakowatz@nowhere.fake> |
It is accomplished ... git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d897a478d7c01054aad29b23f7f545073c797530 |
|
17-Nov-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
kernel: Allow reassigning IRQs to logical processors
|
#
45bd7bb3db9d9e4dcb02b89a3e7c2bf382c0a88c |
|
25-Jun-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed unnecessary inclusions of <boot/kernel_args.h> in private kernel headers and respectively added includes in source files. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37259 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9de17be600220db91400c27772b19546284f470f |
|
14-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Moved I/O APIC initialization to a later point, now the APCI and DPC modules can safely be used. * Since using the I/O APIC is disabled by default, I've removed the "return" that prevented its use when enabled. Let's see if it already does anything. * Adapted other arch_int.cpp with a bit of cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36290 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
567f78895b7878437f43d68fa3091b7bae47fa36 |
|
01-Oct-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fully inline {disable,restore}_interrupts() and friends when including <int.h>. Performance-wise not really significant, but gives nicer profiling results. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27827 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
69dddbdea163b79cfb464b4a1bc18e6533ab06ff |
|
18-Jul-2008 |
Michael Lotz <mmlr@mlotz.ch> |
Initial work towards supporting IO APICs. This cannot work for PCI interrupts though until we use ACPI for proper PCI IRQ routing through the IO APIC. Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used. ISA interrupts would work though, as would PCI interrupts if you'd hardcode them for your specific configuration. Note that this change also modifies some parts in the bootloader and in the PIC setup to make local APICs available even on non-SMP systems. This causes APIC timers to be used instead the normal PIT if it is available (also on non-SMP configurations). Also fixes some general errors in SMP and PIC code as well as some code cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f4b0f67cf6e58e58eab0e9fa52c5219b82673544 |
|
06-Feb-2006 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added [arch_]int_post_device_manager() which is invoked after the device manager is initialized. For x86 it does nothing, but for PPC it searches for a supported interrupt controller and remembers it for later use. arch_int_{enable,disable}_io_interrupt() are implemented as well as handling of external exceptions (aka as I/O interrupts). We'll see later how well that works. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16271 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b20667b35b3effbc937914eba73761f43cc7520d |
|
26-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
{install|remove}_io_interrupt_handler() now correctly handle the B_NO_ENABLE_COUNTER flag. Lots of cleanup: - moved B_NO_ENABLE_COUNTER flag definition out of int.h to KernelExport.h, as it's described in the BeBook (although it's probably not really used that often :)) - int.c no longer has any platform dependent code (+ 0x20 on interrupt numbers is gone); it's now entirely handled in the arch/x86/ section. - the io_vectors[] is now statically initialized, instead of allocated from the heap - removed {install|remove}_interrupt_handler(); they weren't that useful, arch_smp_init() is now calling install_io_interrupt_handler() correctly instead - introduced a new arch_int.h header file that currently contains NUM_IO_VECTORS only (though on x86, it also has ARCH_INTERRUPT_BASE == 0x20). - changed the return type from {install|remove}_io_interrupt_handler() from "long" to "status_t" - rearranged and cleaned the PIC initialization code, made the PIC code more prominent - changed comments that talk about a non existing 8239 (the PIC chip is actually 8259) - moved arch/x86/interrupts.h to the source directory, as it's not used outside - added BeOS compatible interrupts_enabled() function, that should replace our equivalent (and private) are_interrupts_enabled() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12477 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b0d8e689acb4ec1fbe798773cfb066277c7d4f9b |
|
20-Oct-2004 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed some more init2 routines to init_post_vm() to make it clearer when and why they are called. Introduced a cpu_init_post_vm() that will now call arch_init_post_vm() instead of letting main() doing it. Fixed some return types (mostly from int to status_t). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9438 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
229ad83bf822e945bc4bf81979cead51463652ba |
|
28-Oct-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed arch_int_is_interrupts_enabled() to arch_int_are_interrupts_enabled(). Replaced definitions for enable_interrupts() and are_interrupts_enabled() with static inlines. Made int.h C++ safe. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5190 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f432eca4409efd2c3e52a198da77f11f0d3ec307 |
|
07-Oct-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Now use the new kernel_args.h header file. Added C++ guards. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4958 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c17f45d123e46467438e56fa001df91db9850917 |
|
03-May-2003 |
Axel Dörfler <axeld@pinc-software.de> |
Some header cleanups. Renamed dbg_save_registers() to arch_...() since it's arch dependent. Removed unnecessary dependencies to stage2.h. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3138 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
52a380120846174213ccce9c4aab0dda17c72083 |
|
08-Jul-2002 |
ejakowatz <ejakowatz@nowhere.fake> |
It is accomplished ... git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96
|