L4Re Operating System Framework
Interface and Usage Documentation
Loading...
Searching...
No Matches
ipc.h
1
6/*
7 * Copyright (C) 2021, 2024-2025 Kernkonzept GmbH.
8 * Author(s): Georg Kotheimer <georg.kotheimer@kernkonzept.com>
9 *
10 * License: see LICENSE.spdx (in this directory or the directories above)
11 */
12#pragma once
13
14#include <l4/sys/compiler.h>
15
18 l4_umword_t flags,
19 l4_umword_t slabel,
20 l4_msgtag_t tag,
21 l4_umword_t *rlabel,
23{
24 register l4_mword_t _tag __asm__("a0") = tag.raw;
25 register l4_umword_t _dest __asm__("a1") = dest | flags;
26 register l4_umword_t _timeout __asm__("a2") = timeout.raw;
27 register l4_umword_t _label __asm__("a3") = slabel;
28 (void)utcb;
29
30 __asm__ __volatile__
31 ("ecall"
32 :
33 "+r" (_tag),
34 "+r" (_dest),
35 "+r" (_timeout),
36 "+r" (_label)
37 :
38 :
39 "memory");
40
41 if (rlabel)
42 *rlabel = _label;
43 tag.raw = _tag;
44
45 return tag;
46}
L4 compiler related defines.
unsigned long l4_umword_t
Unsigned machine word.
Definition l4int.h:40
signed long l4_mword_t
Signed machine word.
Definition l4int.h:37
unsigned long l4_cap_idx_t
Capability selector type.
Definition types.h:357
l4_msgtag_t l4_ipc(l4_cap_idx_t dest, l4_utcb_t *utcb, l4_umword_t flags, l4_umword_t slabel, l4_msgtag_t tag, l4_umword_t *rlabel, l4_timeout_t timeout) L4_NOTHROW
Generic L4 object invocation.
Definition ipc.h:19
struct l4_utcb_t l4_utcb_t
Opaque type for the UTCB.
Definition utcb.h:56
#define L4_NOTHROW
Mark a function declaration and definition as never throwing an exception.
Definition compiler.h:167
#define L4_INLINE
L4 Inline function attribute.
Definition compiler.h:51
Message tag data structure.
Definition types.h:266
Timeout pair.
Definition __timeout.h:53