History log of /seL4-refos-master/libs/libsel4utils/src/thread.c
Revision Date Author Comments
# 38a475de 21-Aug-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

mcs: Rename CONFIG_KERNEL_RT to CONFIG_KERNEL_MCS

This is to be consistent with the name defined in the kernel.


# 74188d2d 01-Aug-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Remove references to seL4_IPCBuffer.userData

This field is no longer needed to store a reference to the IPC buffer.


# e23dc54b 19-May-2019 Yu Hou <Yu.Hou@data61.csiro.au>

seL4_libs: remove autoconf.h from seL4_libs

this commit removes autoconf.h generation from each lib and
append '#include <<lib_name>/gen_config.h>' after each
'#include <autoconf.h>' since autoconf.h is only the for the
kernel config now. This is a temporarily solution, since we
currently don't have a way to tell which header files each file
is trying to include when it includes 'autoconf.h'


# 16dfa450 25-Mar-2019 Curtis Millar <curtis.millar@data61.csiro.au>

Use sel4runtime to initialise TLS

When starting new threads, use the sel4runtime primitives to determine
the size of the image and to write the initial data to a TLS region.

Also ensure that the __sel4_ipc_buffer is pre-configured in the TLS
region before the thread starts.

Remove any TLS behavior implemented in the architecture-specific parts
of sel4runtime.


# 62f98faf 27-Sep-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

libsel4utils: avoid resetting SC

Explicity set priority and mcpriority, rather than using
seL4_SetSchedParams as this results in the SC being set twice for the RT
kernel, which is an error due to recent changes on the new-rt branch.


# e76b3599 28-Aug-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4utils: fix checkpoints for x64

- if sysenter is enabled, copy rsp to rcx and rip to rdx
in order to abide by the kernel abi, essentially simulating what libsel4 does,
otherwise restored threads will have a corrupted stack pointer and
next ip.
- if syscall is enabled, use rbx not rsp as rsp is preserved in rbx
before entering the kernel

This change also stores the used stack pointer in the checkpoint data
structure for future calcuations of how much stack to restore


# 7528b23f 11-Aug-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

libsel4utils: Copy TLS region for new threads


# 7beb31cf 03-Apr-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-1295: add FSR print back to thread.c


# dafd3111 03-Apr-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-1295: uncomment prefetch fault

This is now available from libsel4 for riscv


# c7e78f29 05-Jul-2016 Hesham Almatary <hesham.almatary@data61.csiro.au>

RISC-V port


# aa5138e3 28-Feb-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

use api_tcb_set_sched_params for rt compatability


# 2c738942 25-Feb-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4utils: only set prio/mcp if > 0.


# 66490e85 25-Feb-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-1016: update for TCB API change


# bf05faa0 20-Dec-2017 Kent McLeod <Kent.Mcleod@data61.csiro.au>

sel4utils: Only call SetAffinity if smp mode


# 8ba9fcdd 19-Dec-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4utils: add function to set thread affinity

Irrespective of kernel version this will work, although different
scheduling parameters need to be passed in.


# 08f9b7c2 04-Oct-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Changes for removal of seL4_CapData_t type in libsel4

This updates seL4_libs to not use what are now deprecated functions and types by using
the new API wrappers


# 056bd54b 23-Aug-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

MCS: add more API wrappers


# 44d3866f 10-Aug-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4utils: abstract over MCS vs master kernel API

- add api.h, which is intended to be used as a wrapper for functions
that are equivalent on MCS/master kernels, so we can seemlessly switch
between the two. This makes porting efforts easier, and without a
nasty proliferation of #ifdefs.
- use it everywhere relevant.


# bbfea12b 10-Aug-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

to squash: fail if non-RT kernel tries to create SC


# 0cc05cee 13-Mar-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-277: support timeout fault api changes


# ba1db811 09-Aug-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Support reply objects in seL4_libs

Only if CONFIG_KERNEL_RT is enabled will they work, but most of
the code is compiled in order to make maintenance easier.


# c1a3178b 09-Aug-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Remove debug_fault_handler

- it's not used in our code base
- it's not tested (it says so)
- it duplicates sel4utils_print_fault_message
- move useful code to sel4utils_print_fault_message
- make sure sel4utils_print_fault_message doesn't use GetMR, as print
may cause it to invalidate the IPC buffer contents.


# e8088af4 09-Aug-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Add scheduling context support in seL4_libs

Only works if CONFIG_KERNEL_RT is enabled, however most of the code
is compiled no mater what to lighten the maintenance burden


# 0016dfc6 13-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix all the whitespace

- remove trailing whitespace
- remove duplicate blank lines
- remove blank lines at end of files


# 6dedeb80 12-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4utils: consolidate config sched params

Threads and processes have the same scheduling parameters.
The MCS kernel expands on these, and this reduces duplication
between the two config structs.


# cdae38ad 12-Jul-2017 Kent McLeod <Kent.Mcleod@data61.csiro.au>

libsel4utils: Correct mcp, priority swapped bug


# e378dbc9 10-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4utils: refactor process and thread config interface

- add builder patterns for thread and process configs which reduces api
breakage when new features are added
- replace all usages of configs with builders
- don't set priorities in default functions (threads will be set to 0)
- set MCP in threads and processes when specified


# 9214341c 04-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix licenses


# bc289580 11-Apr-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Remove #ifdef guards for the existance of different libraries

These libraries are now all part of this same repository, and so they will always exist.
Guarding for them adds unnecessary complexity


# 194b9261 15-Mar-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

sel4utils: Align stack pointer for new threads


# 4aad820f 15-Mar-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

sel4utils: Trivial whitespace


# 857ffba5 15-Mar-2017 Stephen Sherratt <Stephen.Sherratt@data61.csiro.au>

sel4utils: Add type for thread entry point

Our thread-starting code assumes that its entry point is a function.
Previously, a void pointer was used as the type of the entry point.
Now thread entry points must be pointers to functions with a signature
void (*)(void*, void*, void*).


# 8b001a9f 24-Jan-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

libsel4utils: Move src/helpers.h to global include

The utility functions in this header are useful outside of just libsel4utils


# 76751d83 18-Jul-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

SELFOUR-114: use new fault type API


# a650d169 08-Jun-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

sel4utils: add support for MCP

As of this change, threads created by
sel4utils_configure_thread will have their
maximum controlled priority (MCP)
set to the same as their priority. This emulates
behaviour of seL4 prior to the introduction of MCPs.

A config option has also been added to
sel4utils_thread_config, such that threads created using
sel4utils_configure_thread_config can set a different MCP.


# 132a7a54 20-Sep-2016 Alexander Wharton <y>

sel4utils: add initial_stack_pointer to sel4utils_thread to allow for the case where a process is initialised but not started immediately


# b89aea23 06-Jul-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

sel4[utils|vspace] handle 0 sized stacks


# 486fa1cd 05-Jul-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

sel4utils: specify no ipc buffer for threads

Adds an option to sel4utils_thread_config_t to
avoid creating ipc buffers for threads.


# 8e73b44f 05-Jul-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

sel4utils: custom stack size option for threads

Allow sel4utils_configure_thread_custom to specify a stack size for the
thread.


# dfac95bd 09-Jun-2016 Matthew Fernandez <matthew.fernandez@nicta.com.au>

libsel4utils: Remove some unnecessary type casts.


# 1186e1a3 09-Jun-2016 Matthew Fernandez <matthew.fernandez@nicta.com.au>

libsel4utils: Collapse some unnecessary forward declarations.


# a5508396 23-Mar-2016 Adrian Danis <Adrian.Danis@nicta.com.au>

libsel4utils: Minor type and printing changes for 64bit compatibility


# 67c869cf 29-Mar-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

all: s/LOG_*/ZF_LOG*


# 5e31e427 23-Nov-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

libsel4utils: Split context initialization into args and non args portions for clarity of use


# 58940e2e 23-Nov-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

libsel4utils: Refactor sel4utils process and thread code to use arch specific directories instead of ifdefs. As a side effect, make sure the bloody stack is alligned on arm


# 62d575b3 19-Nov-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

update for s/Wait/Recv


# 41ca0a6d 22-Oct-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

libsel4utils: add functions to checkpoint threads, saving the stack and register set for possible later restoration