Alejandro Gomez-Londono
796887d9b1
Removes all trailing whitespaces
2017-07-12 15:13:51 +10:00
Joel Beeren
392d055e99
SELFOUR-748: rename tlb invalidation functions
2017-06-20 14:05:45 +10:00
Miki Tanaka
ef6e2dc32c
arm-hyp machine spec: get_gic_vcpu_ctrl_eisr1 shoud call get_gic_vcpu_ctrl_eisr1_val (fix)
2017-06-19 14:32:37 +10:00
Alejandro Gomez-Londono
8ace5b721d
arm-hyp abstract: (Fix) Correctly defining setCurrentPD
2017-06-19 14:32:32 +10:00
Rafal Kolanski
ce02f303ac
arm-hyp machine: update physBase for TK1
2017-06-19 14:32:31 +10:00
Rafal Kolanski
6c1715827c
arm-hyp machine: update maxIRQ
2017-06-19 14:32:31 +10:00
Rafal Kolanski
75492ee523
arm-hyp machine: update cache lines (32->64)
2017-06-19 14:32:31 +10:00
Gerwin Klein
de745cb2e8
haskell: adopt new getActiveIRQ parameter
2017-06-19 14:32:26 +10:00
Gerwin Klein
4ee422a392
aspec: make getActiveIRQ aware of whether we are at entry or preemption
...
Some interrupts can only occur at kernel entry, but not at kernel preemption
points. In particular interrupts that are caused by user-level code.
2017-06-19 14:32:26 +10:00
Rafal Kolanski
f00965b376
arm-hyp haskell/design: tune VGIC lr machine ops to make more sense
...
Forcing the machine ops to depend on the arguments, and switching from
nat to machine_word since there are no nats in C.
2017-06-19 14:32:25 +10:00
Rafal Kolanski
53a2826e77
arm-hyp design/abstract: clean up and indent MachineOps
2017-06-19 14:32:24 +10:00
Rafal Kolanski
3b12ece77a
arm-hyp abstract/design: add VCPU banked register machine ops
2017-06-19 14:32:24 +10:00
Rafal Kolanski
476690e91a
arm-hyp machine ops: get_gic_vcpu_ctrl_eisr*
2017-06-19 14:32:24 +10:00
Miki Tanaka
bb9d8df8e8
arm-hyp execspec/machine: callbacks and variuos vcpu functions
...
- defined callback axiomatisations
2017-06-19 14:32:19 +10:00
Miki Tanaka
c32e6552e5
arm-hyp execspec: add irqVGICMaintenane and initInterruptController
...
with caseconvs, generated files
2017-06-19 14:32:19 +10:00
Miki Tanaka
0741f0d533
arm-hyp execspec/machine: fixing import paths and namespace for multiple architecture
2017-06-19 14:32:19 +10:00
Miki Tanaka
8bfc2ac68c
execspec/machine: remove redundant file (ARM)
2017-06-17 16:26:11 +10:00
Miki Tanaka
1f8127c6cc
arm-hyp (abstract/design/machine): add ARM_HYP directories
2017-06-17 16:26:11 +10:00
Alejandro Gomez-Londono
6fb8f73535
design: Remove files generated by the haskell-translator
2017-05-11 16:26:18 +10:00
Matthew Brecknell
ac0a55496c
x64: Retype_R checking with sorry proofs
2017-04-07 11:38:41 +10:00
Joel Beeren
1a12926724
x64: use generic VMMapType from haskell rather than redefine in abstract
2017-03-21 15:09:37 +11:00
Joel Beeren
15f32f4dce
x64: ASpec builds after merge for ARM, X64
2017-03-14 13:16:14 +11:00
Joel Beeren
95d1671940
Merge remote-tracking branch 'verification/master' into x64-split
...
Conflicts:
lib/LemmaBucket.thy
lib/NonDetMonadLemmaBucket.thy
lib/Word_Lib/Word_Lemmas.thy
lib/X64/WordSetup.thy
proof/invariant-abstract/ARM/ArchDetype_AI.thy
proof/invariant-abstract/ARM/ArchInvariants_AI.thy
proof/invariant-abstract/BCorres_AI.thy
proof/invariant-abstract/CSpace_AI.thy
proof/invariant-abstract/DetSchedSchedule_AI.thy
proof/invariant-abstract/Interrupt_AI.thy
proof/invariant-abstract/IpcCancel_AI.thy
proof/invariant-abstract/Syscall_AI.thy
proof/invariant-abstract/Untyped_AI.thy
proof/refine/ARM/Include.thy
spec/abstract/ARM/ArchTcb_A.thy
spec/abstract/CSpace_A.thy
spec/abstract/Tcb_A.thy
spec/design/ARM/ArchIntermediate_H.thy
spec/design/X64/ArchInterruptDecls_H.thy
spec/haskell/Makefile
spec/machine/MachineExports.thy
tools/c-parser/.gitignore
tools/c-parser/standalone-parser/Makefile
tools/c-parser/testfiles/ARM/imports/MachineWords.thy
tools/c-parser/testfiles/X64/imports/MachineWords.thy
tools/haskell-translator/caseconvs
2017-03-10 19:35:39 +11:00
Miki Tanaka
98832f8ccd
execspec: add hypervisor, HypFaultType in skeletons (ARM), generated files
2017-02-22 15:26:46 +11:00
Gerwin Klein
520921351a
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.
2017-02-12 12:54:42 +11:00
Matthew Brecknell
9ac4d1ba06
x64: progress in Detype_AI
...
May need some additional work to ensure compatibility with vspace lookup
generalisation.
2017-02-01 16:22:41 +11:00
Matthew Brecknell
4329c6a6bd
x64: fix endianness of storeWord and loadWord
2017-02-01 16:22:06 +11:00
Joel Beeren
3dafec7d46
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>
2017-01-27 08:31:07 +11:00
Joel Beeren
b35c50c481
x64: spec: update machine functions, invocations, set_vm_root for new
...
kernel version
2017-01-20 16:18:49 +11:00
Matthew Brecknell
e543bf5501
merge x64-split into local branch
2017-01-18 13:49:51 +11:00
Matthew Brecknell
759a0387ab
merge master into x64-split
...
Primarily concerns wp improvements
2017-01-18 07:49:48 +11:00
Joel Beeren
77a657004d
x64: Interrupt_AI, ArchInterrupt_AI done
2017-01-17 14:04:55 +11:00
Gerwin Klein
8ac1200329
cleanup: remove accidentally declared const
2017-01-15 17:05:52 +01:00
Matthew Brecknell
a1b5f16ed6
merge x64-split into local branch
2017-01-11 17:22:05 +11:00
Matthew Brecknell
5bdcbe537e
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
2017-01-10 17:09:31 +11:00
Joel Beeren
7dce5dd7c4
x64: defined a bunch of machine ops that were previously unspecified
2017-01-05 15:38:06 +11:00
Matthew Brecknell
73a08160a1
merge master into x64-split
2016-11-30 12:08:32 +11:00
Joel Beeren
b07d971a08
x64: machine: move word_size_bits definition to MachineTypes.
...
Furthermore, create generic library of word lemmas that require
the Arch context to prove, but can be proven with the same proof in
all architectures. These lemmas can then be used safely in generic
theory files. This library is in spec/machine/WordExports.thy
2016-11-25 15:30:36 +11:00
Alejandro Gomez-Londono
ab6b9baebb
ExecSpec: Changes to the haskell to better reflect ASpec
...
* atcbContextGet and atcbContextSet where added (just as in ASpec)
* asUser is now defined in terms of atcbContext{Get,Set}
* arch_tcb is now correctly imported as a datatype not as a type
synonym
tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:55 +11:00
Miki Tanaka
99bcebda87
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]
2016-11-25 13:05:49 +11:00
Miki Tanaka
a2d707d17e
SELFOUR-553: update rpidrurw in TCBConfigure for simpler Infoflow proofs.
2016-11-18 16:27:26 +11:00
Miki Tanaka
f8f88c6952
SELFOUR-553: Change Spec according to C code and fix ASpec and AInvs
2016-11-18 16:19:14 +11:00
Thomas Sewell
f32e2ca0f5
SELFOUR-444: Abstract implementation.
...
Abstract implementation of preemptible retyping.
2016-11-02 11:19:08 +11:00
Joel Beeren
1a6e362598
x64: added more machine definitions
2016-10-26 16:42:50 +11:00
Matthew Brecknell
991dd30173
x64: port device-untyped from ARM
2016-10-10 13:26:40 +11:00
Matthew Brecknell
256e241770
merge master into x64
2016-10-06 19:57:55 +11:00
Joel Beeren
1edc9ced5f
x64: commented out some IOSpace stuff, added machine op definitions.
2016-10-05 12:02:46 +11:00
Xin,Gao
113315d9a6
SELFOUR-421: merge and fix up to ArmConfidentiality proof
2016-09-22 19:21:56 +10:00
Xin,Gao
328846ee1a
SELFOUR-421: crefine builds
2016-09-22 19:11:37 +10:00
Matthew Brecknell
5b19e2c284
merge master into x64-split
...
This resurrects the ARM architecture on the x64-split branch.
It also brings X64 up-to-date with progress on arch_split.
2016-08-09 18:58:37 +10:00
Matthew Brecknell
f9f160ed14
arch_split: replace some fixed word sizes with type aliases
...
Changed some instances of word32 to machine_word, and "10 word" to irq.
Also introduce a type_synonym for "machine_word_len".
2016-08-03 14:46:23 +10:00
Matthew Brecknell
bbfc1df601
x64 abstract spec: add some missing cases in ArchVSpace_A unmap operations
...
These had been undefined, causing some crunch commands to fail.
2016-07-27 12:26:53 +10:00
Corey Richardson
dd73a2c819
run haskell translator
2016-07-21 15:54:49 +10:00
Corey Richardson
e2c55aa544
run haskell translator
2016-07-20 18:16:23 +10:00
Alejandro Gomez-Londono
9c608c62dc
arch_split: Schedule_AI [VER-565]
2016-06-02 14:20:06 +10:00
Joel Beeren
61d0de297b
x64: arch-ified machine word size to allow substitution for type variables
2016-06-01 13:27:24 +10:00
Joel Beeren
f2cf12c345
x64: updated ASpec for WordSetup arch-split
2016-06-01 11:14:43 +10:00
Joel Beeren
8baa7c34ed
x64: retranslate haskell after rebase
2016-06-01 11:12:55 +10:00
Joel Beeren
1bc374fbaa
x64 invs: up to vs_refs_pages
2016-06-01 11:12:55 +10:00
Joel Beeren
73b731562c
x64: add arch_split'd x64 spec with IOMMU stuff
2016-06-01 11:12:55 +10:00
Matthew Brecknell
9ccdbfa21e
arch_split: move locale setup to generic theory
2016-05-31 15:14:40 +10:00
Joel Beeren
6a2692abc6
lib: fix theory includes for arch-splitted WordSetup
2016-05-20 12:31:10 +10:00
Gerwin Klein
f0faa90f8a
lib/spec/proof/tools: fix word change fallout
2016-05-16 21:11:40 +10:00
Daniel Matichuk
7e37215bd2
arch_split: add extend_locale to base import
2016-05-06 18:37:16 +10:00
Daniel Matichuk
9ceed1eb12
arch_split: fix proofs after removing shadow and unqualify commands and adding fix for crunch. Checks up to DPolicy.
2016-05-04 15:14:41 +10:00
Daniel Matichuk
670d1c118d
arch_split: added optional definition override for crunch. Reduced qualification commands to minimal required set.
2016-05-04 15:14:41 +10:00
Matthew Brecknell
0c3a12771d
arch_split: merge master
2016-04-28 14:36:43 +10:00
Daniel Matichuk
1d20b393c0
arch_split: replaced sublocale with global_naming
2016-04-27 14:32:38 +10:00
Daniel Matichuk
3191c485d5
arch_split: added ARM_A and ARM_H locales
2016-04-20 17:31:45 +10:00
Daniel Matichuk
72337faa7b
arch_split: added namespacing to ExecSpec
2016-04-01 15:17:17 +11:00
Daniel Matichuk
144778e8eb
arch_split: avoid caching file_defs in translator to make CONTEXT environment function as expected
2016-04-01 15:09:34 +11:00
Sophie Taylor
d7fd88727a
SELFOUR-420: Verification of maxIRQ check in handle_interrupt.
2016-03-17 11:20:52 +11:00
Matthew Brecknell
8cc95bfb8e
arch_split: merge master into arch_split
2016-03-01 11:30:47 +11:00
Daniel Matichuk
d107cb6758
arch_split: halfway into KHeap_AI
2016-02-22 17:48:52 +11:00
Matthew Brecknell
84d2889d45
Isabelle2016: merge master into 2016
2016-02-19 16:17:26 +11:00
Daniel Matichuk
df8261c121
arch_split: split up Invariants_AI
2016-02-17 16:36:29 +11:00
Gao Xin
bc73b112bd
l4v-sabre: change type of irq to be 10 word
2016-02-17 11:18:02 +11:00
Gao Xin
50fa257113
rebase and fix problems caused by new machine constants
2016-02-17 11:18:02 +11:00
Gao Xin
bee4ba0052
l4v-sabre: fix refine
2016-02-17 11:18:02 +11:00
Matthew Brecknell
c65e290a8b
Isabelle2016: merge master into 2016
2016-02-16 12:52:24 +11:00
Daniel Matichuk
1018d01b6f
arch_split: More namespacing progress and invariant splitting. Checks halfway into Invariants_AI
2016-02-05 17:00:06 +11:00
Daniel Matichuk
9718f1bda2
arch_split: progress on namespacing abstract spec
2016-02-05 16:59:18 +11:00
Joel Beeren
1d0366ac5e
msi: Restructure IOAPIC, MSI interrupts for x86, fix up ARM proofs for new API
2016-02-02 15:57:28 +11:00
Daniel Matichuk
b214ac035f
resurrected "defs" command for Isabelle2016-RC1
2016-01-18 15:10:47 +11:00
Daniel Matichuk
fad2c6aae9
paramatrised abstract and haskell specs over L4V_ARCH
...
Haskell translator was modified to support multiple translations
of the haskell, with different build parameters.
2016-01-13 12:01:40 +11:00
Gerwin Klein
cfec9ea0db
Merge branch 'master' into 2015
2015-05-28 11:45:13 +10:00
Joel Beeren
002cf370bb
Updated proof with new fastpath changes removing setCurrentASID and armv_contextSwitch_fp
2015-05-28 11:30:22 +10:00
Gerwin Klein
12fa86863a
fewer warnings
2015-05-16 19:52:49 +10:00
Andrew Boyton
fe14c7c456
Make toPAddr and fromPAddr input abbreviations (not abbreviations).
...
This stops every instance of "id" becoming "fromPAddr" in goals.
2014-10-24 16:26:19 +11:00
David Greenaway
3fb7f99d55
make-spec: Avoid generating unnecessary whitespace in instance proofs.
2014-10-21 21:36:27 +11:00
David Greenaway
7521fa080b
spec: Remove excessive strings of newlines.
2014-10-21 10:42:43 +11:00
Joel Beeren
8d11a22f5b
ioapic: first abstract spec
2014-08-22 16:24:40 +10:00
David Greenaway
0fb7a8084d
misc: Proofing and formatting of README.md files.
...
Attempt to improve readability of the files when viewed as plain ASCII;
proof-read and fix minor issues.
2014-07-28 13:15:48 +10:00
Gerwin Klein
4326d30cdc
the other README files for spec/
2014-07-22 19:11:43 -04:00
Gerwin Klein
50dda7708c
comment cleanup
2014-07-22 18:10:20 +02:00
Gerwin Klein
9d9a325032
Updates for getpaddr system call (by Joel Beeren)
2014-07-18 17:21:34 +02:00
Gerwin Klein
2a03e81df4
Import release snapshot.
2014-07-14 21:32:44 +02:00