Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-09-13 | Fix the documentation according to the memory modelmemory_model_dev | Richard Braun | |
Also, change the ordering requirements of some operations. | |||
2019-08-19 | Remove all mentions of "barriers" in the cpu module | Richard Braun | |
2019-08-16 | Don't define cpu_delay as a compiler barrier | Richard Braun | |
2019-08-16 | Use atomic signal fences in the x86 local atomic implementation | Richard Braun | |
2019-08-16 | x86/latomic: fix latomic_x86_enter and latomic_x86_leave | Richard Braun | |
2018-11-12 | x86/boot: work around an SMP-related warning | Richard Braun | |
2018-08-04 | x86/cpu: fix data/stack alignment | Richard Braun | |
2018-08-04 | x86/cpu: improve low level code clarity | Richard Braun | |
Replace magic numbers with macros isolating the computation of offsets in exception frames. The latter are reworked as arrays of words. | |||
2018-07-30 | x86: use the uart0 console when testing with QEMU | Richard Braun | |
The UART console allows using a bigger screen as well as easy copy/pasting the output. | |||
2018-07-30 | x86/strace: align symbol names in backtraces | Richard Braun | |
2018-07-30 | Rework assertive functions | Richard Braun | |
Instead of combining assertions and checking into single functions, rework those into pure checking functions usable with assert(). Those functions were introduced because of warnings about unused functions/variables caused by an earlier implementation of assert(). | |||
2018-07-10 | Makefile: print architecture-specific help | Richard Braun | |
2018-07-10 | x86/lapic: fix compiler warnings | Richard Braun | |
2018-07-10 | x86: add portable architecture-specific qemu make target | Richard Braun | |
This target makes running QEMU simpler on non-x86 hosts. | |||
2018-07-10 | kern/panic: remove initialization operation | Richard Braun | |
Maintaining correct dependencies for the panic function is too complicated. It may be used very early, but would depend on the console, which is normally available quite late during initialization. Instead, the behavior of panic is now "best effort", i.e. if called at a time where it works, good, otherwise, the behavior is undefined, but should result in a freeze or a reset most of the time. | |||
2018-07-10 | x86/cpu: optimize interrupt handling | Richard Braun | |
Now that exceptions and interrupts are clearly separated, stack switching on an interrupt is unconditional. | |||
2018-07-10 | x86/cpu: fix excetpion handling on i386 | Richard Braun | |
2018-07-08 | x86/pmu_intel: use the compiler popcount built-in | Richard Braun | |
2018-07-08 | Make linking against libgcc a global requirement | Richard Braun | |
Linking against libgcc was made a per-architecture option for convenience reasons, an in particular because the kernel didn't have support for the red zone required by the AMD64 ABI. But lacking the compiler companion library proved to be problematic early after, so red zone support was implemented, and libgcc is now unconditionnally linked again. | |||
2018-07-08 | x86/cpu: add red zone support | Richard Braun | |
Supporting the red zone is required for full ABI compliance, and in particular to safely link against libgcc. | |||
2018-07-07 | x86/cpu: improve CPU flags handling | Richard Braun | |
2018-07-07 | x86/cpu: use atomic operations for CPU boot synchronization | Richard Braun | |
2018-07-07 | x86/{boot,cpu}: rework AP boot stack management | Richard Braun | |
2018-07-07 | x86/cpu: turn cpu_delay into a compiler barrier | Richard Braun | |
2018-07-07 | x86/boot: turn some far returns into far jumps | Richard Braun | |
2018-07-07 | kern/thread: add thread name accessor | Richard Braun | |
2018-07-07 | x86: refactor interrupt/exception handling | Richard Braun | |
This commit merges the trap module into the cpu module in order to solve interface problems caused by the degree to which those two modules are actually coupled, i.e. it just makes a lot more sense to not separate them at all. The cpu module is also internally reworked with improved object and method definitions, that clarify the double fault handling code, among other things. | |||
2018-07-07 | x86/cpu: add accessors | Richard Braun | |
The accessors provide access to the width of physical addresses and CPUID/vendor information. | |||
2018-06-27 | x86/boot: rename entry point | Richard Braun | |
2018-06-26 | x86/strace: rework to use the embedded symbol table | Richard Braun | |
2018-06-26 | x86: update linker script to include the embedded symbol table | Richard Braun | |
2018-06-25 | x86: add performance monitoring support | Richard Braun | |
2018-06-25 | kern/percpu: introduce per-CPU operations | Richard Braun | |
2018-06-25 | x86/cpu: new cpu_get_freq function | Richard Braun | |
2018-06-25 | x86/cpu: new 64-bit MSR accessors | Richard Braun | |
2018-06-25 | x86/cpu: fix and improve MSR accessors | Richard Braun | |
2018-06-25 | x86/cpu: identify processor vendor | Richard Braun | |
2018-05-07 | kern/atomic: alias to latomic operations if relevant | Richard Braun | |
2018-05-07 | x86/latomic: architecture-specific implementation | Richard Braun | |
2018-05-07 | kern/latomic: new module | Richard Braun | |
2018-05-07 | kern/atomic: minor changes | Richard Braun | |
This is mostly a polishing commit. | |||
2018-04-26 | kern/atomic: minor rework | Richard Braun | |
Allow architectures to specifically override any of the overloaded functions. This removes the need from architecture-specific code to implement selection. | |||
2018-04-21 | Merge branch 'atomic_rework' | Richard Braun | |
2018-04-21 | kern/atomic: rework | Richard Braun | |
This commit restricts atomic operations to 32-bit and 64-bit (when supported). It keeps a similar source interface, but adds restrictions on the supported types. The main drive behind this change is portability, and in particular, upcoming local atomic operations. | |||
2018-04-21 | Fix atomic operations argument types | Richard Braun | |
In preparation of the rework of atomic operations, all atomic function calls are fixed to use fully supported, compatible types. This means that atomic operations ar erestricted to 32-bit and 64-bit, and that value types must be strictly compatible with pointer types. | |||
2018-04-21 | x86: fix i386_defconfig | Richard Braun | |
2018-04-14 | Rename variables in function-like macros | Richard Braun | |
2018-04-14 | Fix left-over reserved identifiers | Richard Braun | |
For some reason, commit be5b9d6ab9f7e7a81c367e4bb0823ba11f85940f didn't take care of all reserved identifiers. | |||
2018-04-13 | x86/lapic: fix inter-process interrupt generation | Richard Braun | |
Make the lapic_ipi function interrupt-safe. | |||
2018-04-09 | Make linking with libgcc a per-architecture option | Richard Braun | |