L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
thread.h
1/*
2 * Copyright (C) 2026 Kernkonzept GmbH.
3 * Author(s): Jan Klötzke <jan.kloetzke@kernkonzept.com>
4 *
5 * License: see LICENSE.spdx (in this directory or the directories above)
6 */
7#pragma once
8
9#define L4UTIL_THREAD_CXX_FUNC_PROTO(fn_name, ...) \
10 [[noreturn]] static void fn_name(__VA_ARGS__) \
11 asm (L4_stringify(fn_name ## _stub)) \
12 __attribute__((target("arm"))); \
13 [[noreturn]] static void fn_name ## _from_asm(__VA_ARGS__) \
14 asm (L4_stringify(fn_name ## _from_asm))
15
16/* Similar to signal handler: Align stack pointer. */
17#define L4UTIL_THREAD_CXX_FUNC_IMPL_INTERRUPT_STUB(from_asm_name) \
18 ".arm \n" \
19 "bic sp, sp, #7 \n" \
20 "bl " L4_stringify(from_asm_name) "\n"