#
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>
|
#
169349c9 |
|
20-Jul-2016 |
François Revol <revol@free.fr> |
M68K: more SMP stubbing We'll very much likely never support SMP on M68K... (unless someone has an SMP machine to donate? :D)
|
#
7cd7ba75 |
|
20-Jul-2016 |
François Revol <revol@free.fr> |
M68K: fix implicit casts of fault handler
|
#
88c54b54 |
|
19-Jan-2014 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
kernel: Rework ppc (and m68k) atomic functions post-scheduler * Make atomic function more like current x86 * Remove fake fallback atomic code for ppc as hardware spinlocks exist
|
#
966f2076 |
|
06-Mar-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
x86: enable data execution prevention Set execute disable bit for any page that belongs to area with neither B_EXECUTE_AREA nor B_KERNEL_EXECUTE_AREA set. In order to take advanage of NX bit in 32 bit protected mode PAE must be enabled. Thus, from now on it is also enabled when the CPU supports NX bit. vm_page_fault() takes additional argument which indicates whether page fault was caused by an illegal instruction fetch.
|
#
24df6592 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 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
|
#
0338371f |
|
13-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* All scheduler implementations: - enqueue_in_run_queue() no longer returns whether rescheduling is supposed to happen. Instead is sets cpu_ent::invoke_scheduler on the current CPU. - reschedule() does now handle cpu_ent::invoke_scheduler_if_idle(). No need to let all callers do that. * thread_unblock[_locked]() no longer return whether rescheduling is supposed to happen. * Got rid of the B_INVOKE_SCHEDULER handling. The interrupt hooks really can't know, when it makes sense to reschedule or not. * Introduced scheduler_reschedule_if_necessary[_locked]() functions for checking+invoking the scheduler. * Some semaphore functions (e.g. delete_sem()) invoke the scheduler now, if they wake up anything with greater priority. I've also tried to add scheduler invocations in the condition variable and mutex/rw_lock code, but that actually has a negative impact on performance, probably because it causes too much ping-ponging between threads when multiple locking primitives are involved. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34657 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e50cf876 |
|
02-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved the VM headers into subdirectory vm/. * Renamed vm_cache.h/vm_address_space.h to VMCache.h/VMAddressSpace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34449 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90d870c1 |
|
02-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved VMAddressSpace definition to vm_address_space.h. * "Classified" VMAddressSpace, i.e. turned the vm_address_space_*() functions into methods, made all attributes (but "areas") private, and added accessors. * Also turned the vm.cpp functions vm_area_lookup() and remove_area_from_address_space() into VMAddressSpace methods. The rest of the area management functionality will follow soon. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34447 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
94b1f001 |
|
12-Oct-2008 |
François Revol <revol@free.fr> |
- init PIC earlier - stub out RTC git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28016 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5222f12a |
|
12-Oct-2008 |
François Revol <revol@free.fr> |
- Add m68k pendant of: r27529 & r27778 - handle skipIframes parameter r27530 - allow faults with ints disabled if there is a handler r27648 - call the end-of-interrupt thread callback r27718 - add <asm_defs.h>, not used yet r27722 - register the commpage as image and symbols (but we don't use it yet) - remove dupped call to thread_get_current_thread() - use 16MB iospace for now, 4MB seems too small. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27999 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2fc21d4f |
|
01-Aug-2008 |
François Revol <revol@free.fr> |
Use a bool to check if an irq was acknowledged by the MFP, else we don't call the handler. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26725 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e70ba4e4 |
|
25-Jul-2008 |
François Revol <revol@free.fr> |
Fix build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26634 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
60b11851 |
|
25-Jul-2008 |
François Revol <revol@free.fr> |
partial support for 68901 MFP chip as interrupt controller, untested. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26633 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
36ee9f5c |
|
24-Jul-2008 |
François Revol <revol@free.fr> |
- use a physical page for natfeat debug output for now - add 040 cpu and mmu stuff - use leftover from the page root table to put interrupt vector table to set VBR to git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26627 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
30629f41 |
|
22-Jun-2008 |
François Revol <revol@free.fr> |
- move atari platform subclass to platform/atari_m68k/ - fix exception handling, at least it builds now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26089 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
35471ac5 |
|
21-Jun-2008 |
François Revol <revol@free.fr> |
- add fpu states - add needed asm_offsets - start of exception handling git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26073 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82610ec8 |
|
03-Feb-2008 |
François Revol <revol@free.fr> |
* get rid of ppc stuff * possible types of exception frames git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23833 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9a507b45 |
|
26-Jan-2008 |
François Revol <revol@free.fr> |
Some reorg. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23759 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4e44040d |
|
03-Nov-2007 |
François Revol <revol@free.fr> |
Ditto. cleanup Less ppc, more m68k :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22822 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
845a180f |
|
21-Oct-2007 |
François Revol <revol@free.fr> |
Unfinished kernel support for m68k. Based on ppc/x86 from r22648. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22650 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
88c54b548550f298727c450f2330cdfd59533ad9 |
|
19-Jan-2014 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
kernel: Rework ppc (and m68k) atomic functions post-scheduler * Make atomic function more like current x86 * Remove fake fallback atomic code for ppc as hardware spinlocks exist
|
#
966f207668d19610dae34d5331150e3742815bcf |
|
06-Mar-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
x86: enable data execution prevention Set execute disable bit for any page that belongs to area with neither B_EXECUTE_AREA nor B_KERNEL_EXECUTE_AREA set. In order to take advanage of NX bit in 32 bit protected mode PAE must be enabled. Thus, from now on it is also enabled when the CPU supports NX bit. vm_page_fault() takes additional argument which indicates whether page fault was caused by an illegal instruction fetch.
|
#
24df65921befcd0ad0c5c7866118f922da61cb96 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d80c86e19e2610e7444a4fcefe3e0f8e6 |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 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
|
#
0338371f26864c2a248b1ea53b9fe78c884af7f2 |
|
13-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* All scheduler implementations: - enqueue_in_run_queue() no longer returns whether rescheduling is supposed to happen. Instead is sets cpu_ent::invoke_scheduler on the current CPU. - reschedule() does now handle cpu_ent::invoke_scheduler_if_idle(). No need to let all callers do that. * thread_unblock[_locked]() no longer return whether rescheduling is supposed to happen. * Got rid of the B_INVOKE_SCHEDULER handling. The interrupt hooks really can't know, when it makes sense to reschedule or not. * Introduced scheduler_reschedule_if_necessary[_locked]() functions for checking+invoking the scheduler. * Some semaphore functions (e.g. delete_sem()) invoke the scheduler now, if they wake up anything with greater priority. I've also tried to add scheduler invocations in the condition variable and mutex/rw_lock code, but that actually has a negative impact on performance, probably because it causes too much ping-ponging between threads when multiple locking primitives are involved. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34657 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e50cf8765be50a7454c9488db38b638cf90805af |
|
02-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved the VM headers into subdirectory vm/. * Renamed vm_cache.h/vm_address_space.h to VMCache.h/VMAddressSpace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34449 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90d870c1556bdc415c7f41de5474ebebb0ceebdd |
|
02-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved VMAddressSpace definition to vm_address_space.h. * "Classified" VMAddressSpace, i.e. turned the vm_address_space_*() functions into methods, made all attributes (but "areas") private, and added accessors. * Also turned the vm.cpp functions vm_area_lookup() and remove_area_from_address_space() into VMAddressSpace methods. The rest of the area management functionality will follow soon. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34447 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
94b1f00114b400afb8a7dcc7414fd96aa8246013 |
|
12-Oct-2008 |
François Revol <revol@free.fr> |
- init PIC earlier - stub out RTC git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28016 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5222f12a3258fc1a52606765ce4e729a5af5fc72 |
|
12-Oct-2008 |
François Revol <revol@free.fr> |
- Add m68k pendant of: r27529 & r27778 - handle skipIframes parameter r27530 - allow faults with ints disabled if there is a handler r27648 - call the end-of-interrupt thread callback r27718 - add <asm_defs.h>, not used yet r27722 - register the commpage as image and symbols (but we don't use it yet) - remove dupped call to thread_get_current_thread() - use 16MB iospace for now, 4MB seems too small. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27999 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2fc21d4fad7056d3c2f023de5656a44aa2a74c0c |
|
01-Aug-2008 |
François Revol <revol@free.fr> |
Use a bool to check if an irq was acknowledged by the MFP, else we don't call the handler. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26725 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e70ba4e482d032bfc0724e32ed9fe202977bdb7f |
|
25-Jul-2008 |
François Revol <revol@free.fr> |
Fix build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26634 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
60b11851d49669095452371787cdf21357d9733a |
|
25-Jul-2008 |
François Revol <revol@free.fr> |
partial support for 68901 MFP chip as interrupt controller, untested. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26633 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
36ee9f5c625f4d16cd61636148f3e8591b5f66a5 |
|
24-Jul-2008 |
François Revol <revol@free.fr> |
- use a physical page for natfeat debug output for now - add 040 cpu and mmu stuff - use leftover from the page root table to put interrupt vector table to set VBR to git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26627 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
30629f410c67be6720cf3d7ac3d36c10d2413d52 |
|
22-Jun-2008 |
François Revol <revol@free.fr> |
- move atari platform subclass to platform/atari_m68k/ - fix exception handling, at least it builds now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26089 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
35471ac53e59be40ffc4747aef64ee1731e6e48b |
|
21-Jun-2008 |
François Revol <revol@free.fr> |
- add fpu states - add needed asm_offsets - start of exception handling git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26073 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
82610ec8eb20734bf4852eeed82195698ad2656a |
|
03-Feb-2008 |
François Revol <revol@free.fr> |
* get rid of ppc stuff * possible types of exception frames git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23833 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9a507b45d494ebf857254627f0e157a3b3f36f3c |
|
26-Jan-2008 |
François Revol <revol@free.fr> |
Some reorg. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23759 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4e44040df4d2763e5df092771c9464d4692fdaa3 |
|
03-Nov-2007 |
François Revol <revol@free.fr> |
Ditto. cleanup Less ppc, more m68k :) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22822 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
845a180f3d7a99ca0cd7fa51fa509dc37dcd29ee |
|
21-Oct-2007 |
François Revol <revol@free.fr> |
Unfinished kernel support for m68k. Based on ppc/x86 from r22648. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22650 a95241bf-73f2-0310-859d-f6bbb57e9c96
|