History log of /seL4-l4v-master/l4v/spec/abstract/Tcb_A.thy
Revision Date Author Comments
# a45adef6 31-Oct-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

all: remove theory import path references

In Isabelle2020, when isabelle jedit is started without a session
context, e.g. `isabelle jedit -l ASpec`, theory imports with path
references cause the isabelle process to hang.

Since sessions now declare directories, Isabelle can find those files
without path reference and we therefore remove all such path references
from import statements. With this, `jedit` and `build` should work with
and without explicit session context as before.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>


# a424d55e 09-Mar-2020 Gerwin Klein <gerwin.klein@data61.csiro.au>

licenses: convert license tags to SPDX


# d934d252 03-Oct-2019 MiladKetabi <Milad.Ketab@data61.csiro.au>

proof update for SELFOUR-1187: seL4 setPriority should attempt a direct schedule

Prior to this commit the kernel would always trigger a full reschedule
on setPriority. This change allows the kernel to attempt a direct
switch, avoiding invoking the scheduler.


# bc7c4efc 21-Jun-2019 Amirreza Zarrabi <amirreza.zarrabi@data61.csiro.au>

abstract: updates for moving IPC buffer register to thread-local storage for SELFOUR-1524


# c34840d0 05-Jun-2019 Gerwin Klein <gerwin.klein@data61.csiro.au>

global: isabelle update_cartouches


# 10145250 01-May-2018 Thibaut Perami <thibaut.perami@data61.csiro.au>

aspec: Update ASpec for GrantReply (SELFOUR-6)


# 2b8a2ebf 05-Nov-2017 Corey Lewis <corey.lewis@data61.csiro.au>

spec: add SetTLSBase invocation and update the registers (VER-807)


# d9c08fc7 12-Feb-2018 Gerwin Klein <gerwin.klein@data61.csiro.au>

aspec/haskell/machine: refactor user_context interface

- remove separate abstract set_/get_register implementation, directly use machine op
- make interface aware that user_context does not always need to equal
(register => machine_word)
- introduce FPU state on x64


# f0795805 15-Feb-2018 Michael Sproul <michael.sproul@data61.csiro.au>

SELFOUR-1016: fix confused deputy problem when setting priorities


# a5a5edc8 28-Nov-2017 Joel Beeren <joel.beeren@data61.csiro.au>

VER-849: abstractly declare a threads registers have changed

This removes an ifdef present in invokeTCB_(Copy|Write)Registers, and
adds the function Arch_postModifyRegisters which does nothing on any
arch except x86-64.


# 3a22487c 24-Nov-2017 Rafal Kolanski <rafal.kolanski@nicta.com.au>

arm: revise scheduler / fastpath / scheduler bitmaps (SELFOUR-242)

Colloquially known as "invert-fastpath".

Update verification efforts on ARM for the following seL4 changes:
- scheduling decisions done in possibleSwitchTo are moved to the
scheduler
- possibleSwitchTo only checks whether the candidate is valid for a
fast switch, not its priority, accepting possible candidates
immmediately as a switch-to scheduler action
- the scheduler checks the candidate against the current thread and
against the bitmaps before making a decision
- attemptSwitchTo and switchIfRequiredTo are gone
- scheduler is now more complicated, and numerous proofs related to it
are rewritten from scratch
- fast path now checks ready queues via the scheduler bitmaps
- L2 scheduler bitmap order reversed for better cache locality

Many iterations between the kernel and verification teams were needed
to get this right.


# f05bc45d 10-Aug-2017 Joel Beeren <Joel.Beeren@data61.csiro.au>

misc: clean up before merging x64


# 796887d9 11-Jul-2017 Alejandro Gomez-Londono <alejandro.gomez@nicta.com.au>

Removes all trailing whitespaces


# 41fe1a08 04-Jun-2016 Miki Tanaka <miki.tanaka@nicta.com.au>

update proofs for SELFOUR-30/291 "Reschedule on self-modification"

- SELFOUR-30 Reschedule when changing own IPC buffer
Previously if you invoked the TCB of the current thread and
changed the IPC buffer frame this would not immediately take
affect, as the kernels view of the current IPC buffer is
updated in Arch_switchToThread. This change forces Arch_switchToThread
to get called, even if we would switch back to the original
thread.

- SELFOUR-291 Reschedule when changing own registers
Previously if you wrote to TCB of the current thread and
changed the TLS_BASE this would not immediately take
affect, as the kernel only updates this register in
Arch_switchToThread. This change forces Arch_switchToThread
to get called, even if we would switch back to the original
thread.


# 71e2db88 01-May-2017 Joel Beeren <joel.beeren@nicta.com.au>

arm: refactor sanitise_register to take a bool instead of a kernel_object

This simplified the sanitise_register logic in CRefine for arm-hyp.


# 52092135 06-Feb-2017 Gerwin Klein <gerwin.klein@data61.csiro.au>

provide TCB argument for sanitiseRegister

Other platforms such as arm-hyp will need to look into additional TCB state
such as VCPU in sanitiseRegister. This commit provides the scaffolding for
that.


# 82ab5500 09-Feb-2017 Gerwin Klein <gerwin.klein@data61.csiro.au>

abstract: remove two obsolete functions


# 3dafec7d 25-Jan-2017 Joel Beeren <Joel.Beeren@nicta.com.au>

backport changes to ARM proofs from X64 work in progress

- replace ARM-specific constants and types with aliases which can be
instantiated separately for each architecture.
- expand lib with lemmas used in X64 proofs.
- simplify some proofs.

Also-by: Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>


# 5bdcbe53 09-Jan-2017 Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>

fix ARM build after merge

Also:
- move some ARM-specific things out of Tcb_AI
- port changes from ARM to X64, up to beginning of ArchVSpace_AI


# 99bcebda 07-Jul-2016 Miki Tanaka <miki.tanaka@nicta.com.au>

ASpec: arch-specific faults + VMFault -> ArchFault + ReservedIRQ

* fixing name space for arch_tcb and tcb_context

* arch_fault added

* changing name space for arch_tcb

- as_user, set_mrs, get_mrs, copyRegsToArea, and copyRegsToArea are
moved to the ARM_HYP directory. This breaks the proofs in
refinement, etc., mostly in tcb related files.

* removed a duplicate range check definition

* fixes ARM for arch_tcb

* adding arch_thread_get/set

* add ReserveIRQ

- initInterruptController is not added yet.

* add arch_fault

- arch_fault and related functions are added.

* arch-parametrising arch-specific extra registers

- ArchDefaultExtraRegisters is the common interface that refers to the
arch-specific data (ARMNoExtraRegisters for ARM/ARM_HYP)

* Adding accesors for tcb_context

- Despite the fact that tcb_context has an arch-specific definition,
it is reasonable to assume that some form of tcb_context will be
available in any architecture, thus the need for accesors to handle
updates.

* as_user updated to use tcb_context accesors

* set_mrs and get_mrs updated to use tcb_context accesors

- Several function on ArchTcb_A and ArchTcbAcc_A (both theories where
removed) can be defined in a general context by using the
tcb_context accesors

tags: [VER-623][SELFOUR-413]


# a2d707d1 14-Aug-2016 Miki Tanaka <miki.tanaka@nicta.com.au>

SELFOUR-553: update rpidrurw in TCBConfigure for simpler Infoflow proofs.


# 20539620 07-Jul-2016 Sophie Taylor <Sophie.Taylor@csiro.au>

SELFOUR-276: Add MCP to specs and invariants

A thread's maximum controlled priority (MCP) determines the maximum
thread priority or MCP it can assign to another thread (or itself).


# 9ceed1eb 03-May-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: fix proofs after removing shadow and unqualify commands and adding fix for crunch. Checks up to DPolicy.


# df8261c1 16-Feb-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: split up Invariants_AI


# 1018d01b 04-Feb-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: More namespacing progress and invariant splitting. Checks halfway into Invariants_AI


# 9718f1bd 04-Feb-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

arch_split: progress on namespacing abstract spec


# fad2c6aa 11-Jan-2016 Daniel Matichuk <daniel.matichuk@nicta.com.au>

paramatrised abstract and haskell specs over L4V_ARCH

Haskell translator was modified to support multiple translations
of the haskell, with different build parameters.


# 457a55a8 01-Nov-2015 Joel Beeren <joel.beeren@nicta.com.au>

add arch_tcb object to C, rename aep -> ntfn


# 05c6abc7 12-Nov-2015 Gerwin Klein <gerwin.klein@nicta.com.au>

removed unused (and outdated) constants


# d88a931e 01-Sep-2015 Ramana Kumar <Ramana.Kumar@nicta.com.au>

history squashed patch for aep-binding


# 12fa8686 16-May-2015 Gerwin Klein <gerwin.klein@nicta.com.au>

fewer warnings


# 95449253 08-Aug-2014 Gerwin Klein <gerwin.klein@nicta.com.au>

ported ASpec to Isabelle2014-RC0


# 9d9a3250 18-Jul-2014 Gerwin Klein <gerwin.klein@nicta.com.au>

Updates for getpaddr system call (by Joel Beeren)


# 2a03e81d 14-Jul-2014 Gerwin Klein <gerwin.klein@nicta.com.au>

Import release snapshot.