distortos  v0.7.0
object-oriented C++ RTOS for microcontrollers
ARMv6-M-ARMv7-M-requestFunctionExecution.cpp File Reference

requestFunctionExecution() implementation for ARMv6-M and ARMv7-M More...

Include dependency graph for ARMv6-M-ARMv7-M-requestFunctionExecution.cpp:

Namespaces

 distortos
 Top-level namespace of distortos project.
 
 distortos::architecture
 Architecture-related code of distortos project.
 

Functions

void distortos::architecture::anonymous_namespace{ARMv6-M-ARMv7-M-requestFunctionExecution.cpp}::removeStackFrame (const void *const savedStackPointer)
 Removes stack frame inserted by requestFunctionExecution() in case of interrupt -> current thread request. More...
 
void distortos::architecture::anonymous_namespace{ARMv6-M-ARMv7-M-requestFunctionExecution.cpp}::functionTrampoline (void(&function)(), const void *const savedStackPointer, const bool fullContext)
 Trampoline used to execute function on new stack frame. More...
 
int distortos::architecture::anonymous_namespace{ARMv6-M-ARMv7-M-requestFunctionExecution.cpp}::fromInterruptToCurrentThread (internal::ThreadControlBlock &threadControlBlock, void(&function)())
 Handles request coming from interrupt context to execute provided function in current thread. More...
 
int distortos::architecture::anonymous_namespace{ARMv6-M-ARMv7-M-requestFunctionExecution.cpp}::toNonCurrentThread (internal::ThreadControlBlock &threadControlBlock, void(&function)())
 Handles request to execute provided function in non-current thread. More...
 
int distortos::architecture::requestFunctionExecution (internal::ThreadControlBlock &threadControlBlock, void(&function)())
 Requests execution of provided function in the specified thread. More...
 

Detailed Description

requestFunctionExecution() implementation for ARMv6-M and ARMv7-M

Author
Copyright (C) 2015-2017 Kamil Szczygiel http://www.distortec.com http://www.freddiechopin.info
License
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.