25#include <l4/sys/cxx/ipc_legacy>
27namespace L4Re {
namespace Util {
45template<
typename SVR >
62 this_vcon()->vcon_write((
char const *)&m->
mr[2], m->
mr[1]);
80 unsigned size = op >> 16;
82 if (size > (L4_UTCB_GENERIC_DATA_SIZE - 1) *
sizeof(
l4_utcb_mr()->mr[0]))
83 size = (L4_UTCB_GENERIC_DATA_SIZE - 1) *
sizeof(
l4_utcb_mr()->
mr[0]);
94 __builtin_memcpy(&m->
mr[1], buf, bytes);
101 unsigned vcon_read(
char *buf,
unsigned size)
noexcept;
102 void vcon_write(
const char *buf,
unsigned size)
noexcept;
112 SVR
const *this_vcon()
const {
return static_cast<SVR
const *
>(
this); }
113 SVR *this_vcon() {
return static_cast<SVR *
>(
this); }
Console server template class.
C++ L4 Vcon interface, see Virtual Console for the C interface.
unsigned long l4_umword_t
Unsigned machine word.
@ L4_EINVAL
Invalid argument.
l4_msgtag_t l4_msgtag(long label, unsigned words, unsigned items, unsigned flags) L4_NOTHROW
Create a message tag from the specified values.
@ L4_VCON_GET_ATTR_OP
Set console attributes.
@ L4_VCON_SET_ATTR_OP
Get console attributes.
l4_msg_regs_t * l4_utcb_mr(void) L4_NOTHROW L4_PURE
Get the message-register block of a UTCB.
struct l4_utcb_t l4_utcb_t
Opaque type for the UTCB.
Common L4 ABI Data Types.
int Opcode
Data type for RPC opcodes.
Message tag data structure.
unsigned words() const L4_NOTHROW
Get the number of untyped words.
Vcon attribute structure.
l4_umword_t i_flags
input flags
l4_umword_t o_flags
output flags
l4_umword_t l_flags
local flags
Encapsulation of the message-register block in the UTCB.
l4_umword_t mr[L4_UTCB_GENERIC_DATA_SIZE]
Message registers.
@ L4_VCON_READ_STAT_DONE
Done condition flag.
@ L4_VCON_READ_SIZE_MASK
Size mask.
C++ Virtual console interface.