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
* Frank Mehnert <frank.mehnert@kernkonzept.com>
5
*
6
* License: see LICENSE.spdx (in this directory or the directories above)
7
*/
8
#pragma once
9
10
#define L4UTIL_THREAD_CXX_FUNC_HELPER_PROTO_ATTR \
11
__attribute__((regparm(3)))
12
13
#define L4UTIL_THREAD_CXX_FUNC_PROTO(fn_name, ...) \
14
[[noreturn]] static void fn_name(__VA_ARGS__) \
15
asm (L4_stringify(fn_name ## _stub)) \
16
L4UTIL_THREAD_CXX_FUNC_HELPER_PROTO_ATTR; \
17
[[noreturn]] static void fn_name ## _from_asm(__VA_ARGS__) \
18
asm (L4_stringify(fn_name ## _from_asm)) \
19
L4UTIL_THREAD_CXX_FUNC_HELPER_PROTO_ATTR
20
21
#define L4UTIL_THREAD_CXX_FUNC_INTERRUPT_HELPER_PROTO_ATTR \
22
L4UTIL_THREAD_CXX_FUNC_HELPER_PROTO_ATTR
23
24
/* Similar to signal handler: Align stack pointer. */
25
#define L4UTIL_THREAD_CXX_FUNC_IMPL_INTERRUPT_STUB(from_asm_name) \
26
"and $~0xf, %esp \n" \
27
"cld \n" \
28
"call " L4_stringify(from_asm_name) "\n"
x86
l4
util
arch
thread.h
Generated on
for L4Re Operating System Framework by
1.15.0