summaryrefslogtreecommitdiff
path: root/kern/work.c
AgeCommit message (Collapse)Author
2018-02-24New errno.h standard headerRichard Braun
Use standard errno codes. This change also adds strerror to string.h.
2018-02-20Rework the initialization operations of some kernel modulesRichard Braun
In order to avoid workarounds that check whether a module is ready or not, break the initialization of some core modules into a bootstrap step for basic BSP initialization, and a setup step that completes initialization. Most users only need the bootstrap operation as a dependency, especially since scheduling isn't enabled yet.
2017-10-04Fix some header inclusionsRichard Braun
2017-09-21Merge branch 'xbuild'Richard Braun
2017-09-21New build systemRichard Braun
The new build system, called xbuild, is a minimalistic kbuild-like make-based build system, also using kconfig for scalable configurations.
2017-09-20kern/work: fix work_setup dependenciesRichard Braun
2017-09-06Use new thread_check_intr_context function consistentlyRichard Braun
2017-09-02kern/thread: new preemption control macrosRichard Braun
These new macros take care of disabling/restoring interrupts in the appropriate order.
2017-08-06Fix dependencies on percpu_setupRichard Braun
2017-07-13Switch to initialization operationsRichard Braun
2017-06-25Use the C11 alignas and noreturn macrosRichard Braun
2017-06-24Move the CPU_L1_SIZE macro to x86/cpu moduleRichard Braun
2017-06-10Use log functions where appropriateRichard Braun
2017-06-09kern/work: fix manager wakeupRichard Braun
Commit 1b902346ce502870329bda19d92d317a21cab56e introduced a minor regression by also removing a check on the manager of a work pool, which is a pointer to a work_thread, and not directly a thread structure.
2017-06-03kern/thread: improve thread_wakeup robustnessRichard Braun
2017-05-30Move assert.h to the include directoryRichard Braun
This turns assert.h into a standard header.
2017-04-29New stdio.h standard headerRichard Braun
Make kernel code obtain definitions for the printf family of functions through the inclusion of the standard stdio.h header.
2017-04-29kern/printk: rename to printfRichard Braun
The printk functions are close enough to the printf ones to bear the same names.
2017-03-16Update system counter namesRichard Braun
Now that event counters have been replaced with system counters, drop the convention of naming the counter as the event it tracks.
2017-03-15kern/work: move work_pool_init and work_setup to the .init sectionRichard Braun
2017-03-15kern/syscnt: replace the evcnt moduleRichard Braun
The syscnt module supports more generic counters, in addition to atomic access from any context on any architecture.
2017-03-14Use the X15 namespace consistently for macros defined by autoconfRichard Braun
2017-02-08kern/thread: add wait channelsRichard Braun
2017-02-04Clean up compilationRichard Braun
Instead of mixing standard headers and internal redefinitions of standard types, completely rely on the compiler for what is guaranteed for a free standing environment. This results in the removal of kern/stddef.h and kern/stdint.h. The kern/types.h header is reintroduced for the different (and saner) purpose of defining types not specified in standard C, namely ssize_t for now.
2017-01-29kern/thread: rename "time-sharing" to "fair-scheduling"Richard Braun
2017-01-24kern/thread: add the THREAD_KERNEL_PREFIX macroRichard Braun
This macro is used to build kernel thread names.
2016-12-09Force brackets around one-line conditional statementsRichard Braun
This change was done using astyle, with a few manual editing here and there.
2014-12-10kern/work: update call to kmem_cache_initRichard Braun
2014-09-05kern/work: use percpu variablesRichard Braun
2014-06-19kern/work: synchronously destroy worker threadsRichard Braun
2014-06-18Set threads as detached where applicableRichard Braun
2014-06-18kern/work: improve per-processor pools synchronizationRichard Braun
Rely on disabling preemption only instead of a spin lock when accessing per-processor pools.
2014-06-17kern/work: don't name work poolsRichard Braun
2014-06-17kern/work: per-processor work poolsRichard Braun
2014-06-07kern/work: add a comment backRichard Braun
That comment contains a TODO item that was removed by mistake.
2014-05-24kern/work: rework worker id allocationRichard Braun
Replace the radix tree with a bitmap and adjust ID allocation. The use of a radix tree was overkill for this, and initially intended only as an example of how to use the data structure in the kernel.
2014-04-26kern/work: use thread creation attributes accessorsRichard Braun
2014-01-02Declare variables as read mostly where appropriateRichard Braun
2013-07-05kern/work: update rdxtree calls for 64-bit keysRichard Braun
2013-06-10kern/work: fix radix tree usageRichard Braun
Radix tree operations must be done with preemption enabled since they might allocate memory. Use a separate mutex to synchronize access to the tree.
2013-06-09kern/work: use a radix tree for worker ID allocationRichard Braun
2013-06-03kern/work: new moduleRichard Braun
This module implements thread pools to concurrently process queues of deferred works.