Commit graph

195 commits

Author SHA1 Message Date
Adrian Danis
5d42d0143e x86: Do not conditionally compile IRQ controller code, use build/run time checks
Guarding code with #ifdef's makes even cursor testing of 'does this code compile'
difficult due to code being hidden by the pre-processor. Using config_set in
regular C if statements is performant as the compiler can trivially detect
dead code at compile time, and at -O1 and above will not even link in symbols
referenced by dead code in these blocks, so this will not bloat image size
2015-12-17 14:37:08 +11:00
Adrian Danis
c2a85cdcb1 libsel4: Define different lookup levels for PAE 2015-12-17 14:02:22 +11:00
Adrian Danis
9113dfa8e5 trivial: style 2015-12-17 10:49:13 +11:00
Adrian Danis
5a6f0c71b8 libsel4: Add standard way of interpreting the meaning of a 'FailedLookup' for mapping operations 2015-12-16 12:29:25 +11:00
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
Stephen Sherratt
7bb064ab2b Removed whitespace difference between kernel and user objecttype.h 2015-12-03 10:37:20 +11:00
Adrian Danis
9aa7059465 Merge remote-tracking branch 'local/master' into HEAD 2015-12-02 17:49:40 +11:00
Adrian Danis
460c87ddf3 Merge commit '5d64d156f47c20ae049c0c854797291436f84021' into HEAD 2015-12-02 17:13:07 +11:00
Anna Lyons
ddc1ce7e90 SELFOUR-365: libsel4: Use compile time offsets instead of hard coding offsets 2015-12-01 12:14:06 +11:00
Anna Lyons
a99a10408d SELFOUR-279: rename Wait -> Recv, add wrappers for seL4_Poll and seL4_Wait for notification objects.
This commit deprecates seL4_ReplyWait, removes seL4_NBwait completely,
and changes the return type of seL4_Wait to void (seL4_Wait should be
used for notification objects, and seL4_Recv should be used where
seL4_Wait was used previously for endpoints).
2015-11-20 15:28:18 +11:00
Anna Lyons
052feb222e trivial: move seL4_Notify to deprecated.h 2015-11-10 17:47:54 +11:00
Adrian Danis
aef03c325e libsel4: Restrict syscall stub compilation at -O0
The 'WithMRs' variants of the syscall stubs are known to be broken
on ARM with GCC at -O0. This commit prevents the generation and
usage of these stubs when -O0 is set in the common tool configuration
options.

Due to limitations in specifying Kconfig constraints, and to preserve
the existing meaning of the Kconfig variables, the 'LIB_SEl4_STUBS_USE_IPC_BUFFER_ONLY'
config variable has to be duplicated with two variants, one for use
when the user is free to pick either and one hidden for when selection
has to be forced. Also to prevent the sub options from not appearing
in the libsel4 submenu I had to change libsel4 to be a 'true' menu
instead of a 'menuconfig'

This commit closes SELFOUR-187
2015-11-03 10:54:37 +11:00
Anna Lyons
d9802d179f Add seL4_NBWait: non blocking wait for notifications and endpoints. 2015-10-21 13:43:39 +11:00
Siwei Zhuang
9d909f743a Merge remote-tracking branch 'seL4/master' into arm_hyp
Conflicts:
	include/arch/arm/arch/api/constants.h
	libsel4/arch_include/arm/sel4/arch/types.h
	src/fastpath/fastpath.c
	src/plat/exynos5/machine/hardware.c
2015-10-16 14:41:36 +11:00
Anna Lyons
0489e00f88 add seL4_NotificationBits for x86 2015-10-13 15:08:21 +11:00
Anna Lyons
7cfcfd1f27 trivial: fix typo in x86 definition of seL4_Signal 2015-10-13 15:08:08 +11:00
Anna Lyons
79be32ace2 AEP -> Notification: deprecate old API syscalls, functions and constants that refer to AEP's and introduce new ones that refer to Notifications 2015-10-13 13:26:04 +11:00
Stephen Sherratt
4b3ac0e8e7 Surrounding benchmarking definitions with "#if CONFIG_MAX_NUM_TRACE_POINTS > 0". 2015-09-08 12:46:09 +10:00
Stephen Sherratt
e82953a194 Removed CONFIG_BENCHMARK config option. All checks for '#ifdef CONFIG_BENCHMARK' replaced with '#if CONFIG_MAX_NUM_TRACE_POINTS > 0'. 2015-09-03 11:39:31 +10:00
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
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
a9111d4b5d libsel4: Support multiple struct types for the generated syscall stubs 2015-03-10 15:12:06 +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
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
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
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
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
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