History log of /fuchsia/zircon/kernel/object/resource_dispatcher.cpp
Revision Date Author Comments
# 734b2d5f 26-Sep-2018 Christopher Tam <godtamit@google.com>

[kernel][format] clang-format ResourceDispatcher

Ran clang-format on ResourceDispatcher's .h and .cpp file

Test: No behavioral changes.

Change-Id: Id24d23a6fcf8d51623ee90867000019fb30d151d


# 321cb5ae 08-Sep-2018 Roland McGrath <mcgrathr@google.com>

[kernel] Remove #if WITH_LIB_* conditionals

There's only one configuration of the kernel per architecture, so these
are always defined anyway. The global predefines based on what modules
are in the dependency graph is not a feature future build systems will
support.

Test: CQ & manual verification that kernel text size didn't change
Change-Id: Ib4c9b6c309c9ae4fc410701eef8fbdfad4d90641


# 540fc93f 25-Jul-2018 Matthew Dempsky <mdempsky@google.com>

[zircon] Add VM exec-setters API

Initial stub for supporting non-executable memory following Mark
Seaborn's exec-setter proposal. This API is still very permissive and
insecure at the moment to allow userspace to start incrementally
migrating to using them.

SEC-42

Test: Added vmo_replace_as_executable to core-tests.
Change-Id: I7ad2f6451b230853d919121f1ef7255be2ca2941


# 36320886 19-Jul-2018 Corey Tabaka <eieio@google.com>

[kernel] Dispatchers and most kernel objects lockdep instrumented.

- Convert SoloDispatcher to a CRTP template type similar to
PeerDispatcher. This makes the lock classes for different solo
dispatchers distinct.
- Instrument the locks for all dispatchers.
- Instrument the locks for all kernel objects except those that
lock the thread_lock.

Bug: ZX-23
Test: k ut all and system/test/* pass + manual stress testing.

Change-Id: I8106c04911e47ea15ccce8e7abd5fbd62adfa6fe


# 2e81164a 20-Jul-2018 Christopher Anderson <cja@google.com>

[kernel] Add kcounters to ResourceDispatcher

Test: Inspection of 'k counters view resource'

Change-Id: I449a6ab2973b013e1cc9d1513282fbcd60a06b8c


# 7d81deec 19-Apr-2018 Christopher Anderson <cja@google.com>

[kernel][rsrc] Change ResourceDispatcher model

In general, this change moves resources to a model of
"resource allocation" and "resource validation" as separate
but related concepts. On resource creation, an allocation
against physical address space is made. On resource validation,
a syscall checks that the resource provided has the correct
allocation to permit the call asked. This means that the ROOT
resource /can/ allocate resources, but does not have to if it
simply wants to pass syscall validation. This is important
so that the ROOT resource can create specific resources that
are then passed out to drivers and used to validate access
to their hardware resources.

- Change low/high to base/length and change logic to match.
- Wire in usage of PhysicalAspaceManager so MMIO/IOPORT/IRQ
resources try to allocate from the global address space.
- Change resource access so that only the root resource can
create sub-resources.
- Track ResourceDispatchers created across the system.
- Define ZX_RSRC_KIND_ROOT as a privileged resource that will
pass all validation so that platform bus implementations
like ACPI can behave as they may.
- Initialize the allocators after the heap is initialized.
- Reserve regions marked as memory by the bootloader for x86.
- Reserve regions marked as memory in the zbi structures for ARM.
- zx_vmo_create_physical calls validate_resource_mmio
- zx_ioports_request calls validate_resource_ioports
- zx_interrupt_create calls validate_resource_irq

Test: For kernel tests, 'k ut resources'.
Syscall tests are run as part of core-tests.

ZX-971 #done

Change-Id: Iac6c4aa9e95718a0a0768ef8e3036353e73de8dd


# d363aa54 04-Oct-2017 George Kulakowski <kulakowski@google.com>

[dispatcher][state_tracker] Move the state tracker into the dispatcher

Note that all access to the old StateTracker functionality is still
mediated by the has_state_tracker function. This is used to e.g. allow
only certain objects to be user signalled.

Change-Id: If9d0413eb131c6e7d70ea19c1ed928f7bf566cc8


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 59e644b1 07-Sep-2017 George Kulakowski <kulakowski@google.com>

[zircon][mxtl->fbl] Rename mxtl to fbl

Change-Id: Ie21b6498e1bfb0a7fa0315e40b9e5c3ee78646be


# 388a7f68 31-Aug-2017 Dave Bort <dbort@google.com>

[lib/magenta] Rename kernel/lib/magenta to kernel/object

TODO: Rename magenta.{cpp,h} and other instances of "magenta" in this
module.

For MG-1091 "Rename kernel/lib/magenta"

Change-Id: I2abc316f543798e00d3a4d1c2c83195da26e6836