summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-07-30tools/gen_symtab.py: fix input parsingRichard Braun
2018-07-30kern/symbol: work around clang aggressive optimization behaviorRichard Braun
2018-07-30tools/gen_symtab.py: put symbol names in the symbol table sectionRichard Braun
GCC apparently reserves memory for all symbol names in the .rodata section which meant adding symbol names would reuse those without changing the size of the .rodata section. That's not the case with Clang.
2018-07-30kern/log: minor changeRichard Braun
Insignificant coding style fix.
2018-07-30Rework assertive functionsRichard 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-25kern/{fmt,shell}: update from upstreamRichard Braun
The shell module has been "objectified" and now supports multiple instances with shareable command sets.
2018-07-10Makefile: print architecture-specific helpRichard Braun
2018-07-10x86/lapic: fix compiler warningsRichard Braun
2018-07-10x86: add portable architecture-specific qemu make targetRichard Braun
This target makes running QEMU simpler on non-x86 hosts.
2018-07-10kern/sleepq: make disabling interrupts optionalRichard Braun
Commit d2a89f7f6e976d022527c2a5a1c75268aab8cd49 changed sleep queues to allow semaphores to be signalled from interrupt handlers, but this implied disabling interrupts for all synchronization objects, and most of them do not require interrupts to be disabled. The sleep queue interface is augmented with interrupt-related versions.
2018-07-10kern/panic: remove initialization operationRichard 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-10x86/cpu: optimize interrupt handlingRichard Braun
Now that exceptions and interrupts are clearly separated, stack switching on an interrupt is unconditional.
2018-07-10x86/cpu: fix excetpion handling on i386Richard Braun
2018-07-08x86/pmu_intel: use the compiler popcount built-inRichard Braun
2018-07-08Make linking against libgcc a global requirementRichard 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-08x86/cpu: add red zone supportRichard Braun
Supporting the red zone is required for full ABI compliance, and in particular to safely link against libgcc.
2018-07-08kern/latomic: fix circular inclusionsRichard Braun
2018-07-07x86/cpu: improve CPU flags handlingRichard Braun
2018-07-07x86/cpu: use atomic operations for CPU boot synchronizationRichard Braun
2018-07-07x86/{boot,cpu}: rework AP boot stack managementRichard Braun
2018-07-07x86/cpu: turn cpu_delay into a compiler barrierRichard Braun
2018-07-07x86/boot: turn some far returns into far jumpsRichard Braun
2018-07-07kern/thread: add thread name accessorRichard Braun
2018-07-07x86: refactor interrupt/exception handlingRichard 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-07x86/cpu: add accessorsRichard Braun
The accessors provide access to the width of physical addresses and CPUID/vendor information.
2018-06-27x86/boot: rename entry pointRichard Braun
2018-06-26Merge branch 'symtab'Richard Braun
2018-06-26x86/strace: rework to use the embedded symbol tableRichard Braun
2018-06-26x86: update linker script to include the embedded symbol tableRichard Braun
2018-06-26Add support for an embedded symbol tableRichard Braun
2018-06-26kern/macros: new __weak macroRichard Braun
2018-06-26Makefile: remove linker script dependency file when cleaningRichard Braun
2018-06-26xbuild: minor changesRichard Braun
Improve the naming of compiler-related variables as well as their description.
2018-06-26kern/perfmon: fix PMC ID allocation descriptionRichard Braun
2018-06-26kern/thread: update commentRichard Braun
2018-06-25Merge branch 'perfmon'Richard Braun
2018-06-25x86: add performance monitoring supportRichard Braun
2018-06-25kern/perfmon: new moduleRichard Braun
2018-06-25kern/thread: new thread_cpu functionRichard Braun
2018-06-25kern/thread: slightly rework thread state handlingRichard Braun
2018-06-25kern/timer: add comment about timer_scheduleRichard Braun
2018-06-25kern/percpu: introduce per-CPU operationsRichard Braun
2018-06-25x86/cpu: new cpu_get_freq functionRichard Braun
2018-06-25x86/cpu: new 64-bit MSR accessorsRichard Braun
2018-06-25x86/cpu: fix and improve MSR accessorsRichard Braun
2018-06-25x86/cpu: identify processor vendorRichard Braun
2018-06-24kern/kmem: add option to disable the CPU layerRichard Braun
2018-05-17kern/xcall: add missing dependency on syscnt_setupRichard Braun
2018-05-14kern/thread: make thread_create slightly more convenientRichard Braun
Don't require the caller to pass a pointer to the newly created thread.
2018-05-08Makefile: fix out-of-tree buildsRichard Braun
Fix the path of the linker script dependency file so that it's generated in the build tree.