Commit graph

22 commits

Author SHA1 Message Date
Adrian Danis
0e3afb487b libsel4: use seL4_Word for object types and update the sanity script to match word_t to seL4_Word 2015-12-10 16:08:39 +11:00
Joel Beeren
94b0216258 conversion: fixed bitfield generator, clz spec 2015-12-10 10:45:22 +11:00
Adrian Danis
6474aceaf0 Change types from uint32_t->word_t to be 32/64bit agnostic 2015-12-10 10:45:18 +11:00
Adrian Danis
63ee2b127b Modify sanity script to be ignostic over the difference between
seL4_UintXX types and uintXX_t types
2015-12-02 15:37:42 +11:00
Anna Lyons
9f19b8668a Add a sanity check to make sure constants shared between kernel and user are the same 2015-12-02 15:37:42 +11:00
Adrian Danis
7d3622f098 bitfield: Correct assertions when using sign extended bases 2015-12-02 11:45:45 +11:00
Anna Lyons
259f0a47f9 Merge pull request #140 from ssherratt/features2
Added support for using multiple tracepoints at the same time.
2015-09-08 11:20:58 +10:00
Matthew Fernandez
47c1bee590 tools: Remove some unnecessary Python imports. 2015-09-04 15:58:44 +10:00
Stephen Sherratt
bea651d6c2 Config sections in syscall.xml files take a condition which is passed to #if. 2015-09-03 11:39:31 +10:00
Wink Saville
e653f8f65a Streamline libsel4 and remove its libc dependencies.
There are now separate libs for benchmark, assert, printf, putchar
start/stop:

      libs/libsel4benchmark
      libs/libsel4assert
      libs/libsel4printf
      libs/libsel4putchar
      libs/libsel4startstop

The primary changes are introducing sel4/sel4.h and removing std* types
plus porting assert and IO code from the kernel to libsel4assert,
libsel4printf, libsel4putchar.

This means the code within libsel4 and the newlibs do not overload any
typical libc entities. Instead the libraries use types like
seL4_Uint32 ... instead of uint32_t. And printf is now seL4_Printf and
assert is seL4_Assert ....

Finally, the only file modified that effects kernel code is
kernel/tools/bitfield_gen.py. It needed to be modified as it generates
files for both kernel and user space. And for user space the generated code
(types_gen.h) needed to use the new types and asserts. The changes should
not change what is generated for the kernel and I did a comparison of
kernel_final.{c|s} before and after my change and the only differences
were time stamps.

Bug: #15 Streamline kernel/libsel4 and remove its libc dependencies
2015-07-09 18:03:46 -07:00
Adrian Danis
8e5921c6a7 bitfield: Allow for controlling how many bits of a word are actually used, and whether the rest of the bits are signed extended or not 2015-06-22 14:42:41 +10:00
Adrian Danis
f8ea6f22b9 bitfield: Allow for using different bases throughout a bitfield file 2015-06-22 11:58:11 +10:00
Adrian Danis
a34bc7de30 bitfield: Extend bitfield generator to add a size suffix onto constant mask values 2015-06-22 11:57:52 +10:00
Matthew Fernandez
5ee3971563 bf gen: Add a backend for AutoCorres.
This commit adds a two new output targets for the bitfield generator,
--autocorres-defs and --autocorres-proofs. These produce, respectively,
abstract definitions of the generated C functions suitable for use in
AutoCorres proofs and WP/simp lemmas suitable for use within AutoCorres proofs
of functions that call the generated C functions. Existing behaviour and
functionality should be unaffected.
2014-11-06 15:07:20 +11:00
Matthew Fernandez
701b3bfff4 bf gen: Fix: Check UMM types is known before generating HOL proofs. 2014-11-06 10:52:17 +11:00
Matthew Fernandez
9e6750e8a4 bf gen: Fix: Prevent using stdout when writing HOL defs/proofs.
Stdout is not suitable as an output target for these things.
2014-11-06 10:52:06 +11:00
Matthew Fernandez
1d51025fe8 bf gen: Removed some undefined bit shifts.
The bitfield generator constructs tags as enums. The compiler is free to back
these by any type big enough to cover the enum. The generator emits code that
uses these tag values in mask and shift operations where the target type is
typically a uint32_t. As a result, it can produce code involving undefined
shifts like:

 (seL4_CapData_Badge & 0x1) << 31

This commit casts the tag value to the unsigned target type before masking to
ensure everything is done on an appropriate sized unsigned type.

JIRA: SELFOUR-193
2014-10-28 16:48:26 +11:00
Matthew Fernandez
3b6321f28a bf gen: Fix missing include.
The bitfield generator uses the macros CONST and PURE which, for libsel4, are
defined in macros.h.
2014-10-28 11:41:14 +11:00
Matthew Fernandez
03ee240ef1 bf gen: Fix whitespace in constructors and getters. 2014-10-27 13:58:22 +11:00
Adrian Danis
7d877465de ia32: Move as much of the interrupt and syscall traps into C as possible 2014-08-12 14:00:28 +10:00
Max R.D. Parmer
da5ec79cf9 Use usr/bin/env for all python bangpaths to enable virtualenv use.
Very useful with python3 as the default platform.
2014-08-03 18:53:14 -07:00
TrusthworthySystems
91b7da8625 Release snapshot 2014-07-18 05:03:59 +10:00