Age | Commit message (Collapse) | Author |
|
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.
|
|
Use standard errno codes. This change also adds strerror to string.h.
|
|
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.
|
|
|
|
|
|
The new build system, called xbuild, is a minimalistic kbuild-like
make-based build system, also using kconfig for scalable configurations.
|
|
|
|
|
|
These new macros take care of disabling/restoring interrupts in the
appropriate order.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
This turns assert.h into a standard header.
|
|
Make kernel code obtain definitions for the printf family of functions
through the inclusion of the standard stdio.h header.
|
|
The printk functions are close enough to the printf ones to bear the
same names.
|
|
Now that event counters have been replaced with system counters, drop
the convention of naming the counter as the event it tracks.
|
|
|
|
The syscnt module supports more generic counters, in addition to atomic
access from any context on any architecture.
|
|
|
|
|
|
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.
|
|
|
|
This macro is used to build kernel thread names.
|
|
This change was done using astyle, with a few manual editing here and
there.
|
|
|
|
|
|
|
|
|
|
Rely on disabling preemption only instead of a spin lock when accessing
per-processor pools.
|
|
|
|
|
|
That comment contains a TODO item that was removed by mistake.
|
|
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.
|
|
|
|
|
|
|
|
Radix tree operations must be done with preemption enabled since they might
allocate memory. Use a separate mutex to synchronize access to the tree.
|
|
|
|
This module implements thread pools to concurrently process queues of
deferred works.
|