Commit graph

489 commits

Author SHA1 Message Date
Stephen Sherratt
4c2554dcc9 Added support for using multiple tracepoints at the same time. 2015-09-03 11:39:31 +10:00
Anna Lyons
6860020137 Merge branch 'master' of github.inside.nicta.com.au:seL4/seL4 into arm_hyp
Conflicts:
	include/arch/arm/arch/object/structures.bf
	include/arch/arm/arch/object/structures.h
	include/arch/arm/armv/armv7-a/armv/fastpath.h
	src/arch/arm/armv/armv7-a/context_switch.c
	src/arch/arm/fastpath/fastpath.c
	src/arch/arm/kernel/vspace.c
	src/plat/exynos_common/mct.c
2015-07-30 11:35:12 +10:00
Anna Lyons
1746352673 fix syscall stub gen to shift by the size of the type not the type itself when outputting double word values 2015-07-30 11:09:14 +10:00
Adrian Danis
c8e4f9bd08 Correctly generate a 64-bit type in unmarshalling code in syscall_stub_gen
This was introduced in changeset e653f8f65a
where hard coded size types were replaced with an indirection. This corrects
a case where a 'uint64_t' was replaced with a '%s', but there is no corresponding
'TYPES[64]' in the argument list, resulting in too few arguments when processing
the string
2015-07-28 15:22:00 +10:00
Adrian Danis
e588986797 Use CONFIG_NUM_PRIORITIES when defining seL4_MaxPrio (Fixes SELFOUR-261) 2015-07-28 15:10:16 +10:00
Adrian Danis
f15814b73f libsel4: Remove old stdint include 2015-07-27 11:48:53 +10:00
Adrian Danis
91c474cb95 Merge commit '952e5a272b5077ce6550035fbc5e2d6c55d09670' into arm_hyp
Conflicts:
	include/arch/arm/arch/object/structures.h
	src/arch/arm/kernel/thread.c
2015-07-21 09:40:06 +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
914741ea33 x86: Make x86 the name of the architecture instead of IA32
IA32 is 32bit version of the x86 architecture. Whilst only IA32
is supported, much of the code is generic x86. Using a generic
x86 architecture will aid in future 64bit support
2015-05-28 15:15:23 +10:00
Anna Lyons
f5afc2d917 change include/arch/ia32/arch/api/objecttype.h to match the libsel4 equivalent 2015-05-15 14:43:24 +10:00
Adrian Danis
952e5a272b Add ability to set a human readable thread name when running kernel in debug mode 2015-05-14 09:32:58 +10:00
Adrian Danis
12990f2092 libsel4: Updating xml specification for syscall stub changes 2015-03-12 16:06:58 +11:00
Adrian Danis
a9111d4b5d libsel4: Support multiple struct types for the generated syscall stubs 2015-03-10 15:12:06 +11:00
Matthew Fernandez
3775341b9b libsel4: Remove unused right seL4_Transfer_Mint. 2015-03-04 15:42:16 +11:00
akroh
908c589a87 ARM HYP: Trap SMC 2015-02-20 15:09:25 +11:00
akroh
161125e3a8 Merge branch 'master' into arm_hyp
Conflicts:
	src/plat/exynos_common/io.c
2015-02-20 12:53:51 +11:00
Adrian Danis
a5e442a70e Merge branch master into pae 2015-02-17 10:37:33 +11:00
Matthew Fernandez
5e7030cb0a libsel4: Name the user context struct.
Without a name, this struct (and its typedef) comes out as an anonymous type
when imported into Isabelle. This makes it difficult to automate proofs of
functions that use this type.

See also JIRA VER-434
2015-02-11 09:54:04 +11:00
Adrian Danis
af0f3b361f ia32: Large commit that implements PAE paging for x86
This commit involves the PAE paging itself, refactoring the
vspace code to extra what is common between PAE and 32bit paging,
as well as some renaming to not call the root paging structure
a PD
2015-01-28 12:11:51 +11:00
Matthew Fernandez
c317d5b8df libsel4: Fix trivial comment typos. 2015-01-27 11:42:32 +11:00
akroh
b56f84aa1e Merge commit '212ab3f3fd3f8a054db1d2d03f662655c730b4e2' into arm_hyp
Conflicts:
	Kconfig
2015-01-21 15:49:07 +11:00
Adrian Danis
09b22d3f6a Trivial: style 2015-01-13 16:41:18 +11:00
Adrian Danis
0adf212462 libsel4: Ensure the ARM syscall stubs always treat instances of seL4_MessageInfo as POD
A C++ compiler will attempt to interpret 'return info' as an invocation of a copy
constructor. Even though the copy constructor is auto-generated (and eventually
completely eliminated due to inlining) and just does obvious member copying it
still results in an intermediate invocation that must take a reference to 'info'.
Because 'info' is a register variable it is not permissable to take a reference
to it. Manually reconstructing a new info from the .words keeps everything as
Plain Old Data
2015-01-13 14:22:29 +11:00
Matthew Fernandez
644dff497b further support for XN bit on ARM 2014-11-26 12:44:06 +11:00
Anna Lyons
6e5204fe93 separate benchmark output by tabs instead of spaces such that it is easier to paste into spreadsheet programs 2014-11-19 15:01:43 +11:00
Matthew Fernandez
ef17cd318e libsel4: Avoid implicit pointer coercion from 0.
Comparing a pointer against a literal without an explicit cast is not supported
by the C parser.

JIRA: VER-429
2014-11-17 14:33:42 +11:00
Matthew Fernandez
5e569ad272 libsel4: Turn seL4_MsgMaxLength into an enum.
This has no effect on the code, but makes this value visible as a named
constant in Isabelle when importing C sources. It avoids us having to reference
120 as a magic number in numerous proofs.
2014-11-12 16:54:59 +11:00
Adrian Danis
436c216d0e libsel4: Make enum padding types one less in value so that they are INT_MAX
Having the padding types as INT_MAX + 1 means C++ compilers will end up using
a signed 64 bit integer, as that is the only type that can have a value that
large, as well as the negative values our enums typically contain
2014-10-31 09:16:07 +11:00
Gerwin Klein
3179696494 Merge pull request #38 from mfernandez/trivial
trivial: Print domain values as unsigned integers in user errors.
2014-10-22 09:42:49 +11:00
Matthew Fernandez
6d31d46024 trivial: Standardise on 32-bit unsigned variables for domain values.
Domains are unnecessarily treated explicitly as 8-bit values within boot info.
Though there are existing proof constraints that limit the maximum domain value
to 8 bits, most of the code would permit domain values up to 32 bits. The
maximum value is unnecessarily constrained in boot info, a restriction which
this commit removes.

Closes VER-341
2014-10-21 13:32:42 +11:00
Matthew Fernandez
7a78d03b37 libsel4: Unify ARM/IA32 IPC buffer functions.
Implements two trivial functions that were present for IA32, but not included
in the corresponding ARM header.

Closes SELFOUR-226
2014-10-20 15:51:20 +11:00
Anna Lyons
9e8636dd95 syscall stub generator: change CapDataType into a generic BitFieldType for using bitfield generated types in generated invocations 2014-10-13 11:19:48 +11:00
akroh
911d135e2f merge with master 2014-09-29 13:11:13 +10:00
Adrian Danis
c0e9c63804 Support IOAPIC on ia32 and modify interrupt handling to support user level setting of modes 2014-09-02 16:22:40 +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
akroh
fe18dca1b9 Merge branch 'master' into arm_hyp 2014-07-25 14:14:35 +10:00
Adrian Danis
2732406e98 Recomment of branch getpaddr on release snapshot 2014-07-18 15:14:00 +10:00
TrustworthySystems
a318446f8c Recommit of arm_hyp branch on release snapshot 2014-07-18 14:48:43 +10:00
TrusthworthySystems
91b7da8625 Release snapshot 2014-07-18 05:03:59 +10:00