CHERIoT RTOS
A compartmentalised RTOS for CHERIoT hardware
Loading...
Searching...
No Matches
Type-constructing proxy operator

macros More...

Collaboration diagram for Type-constructing proxy operator:

Macros

#define BITPACK_OPERATE_WRAP(proxy, operator, value)
 Operate between a Field::Proxy proxy and a given value, which will be wrapped with proxy's Field::Type's constructor.
#define BITPACK_OPERATE_WRAP_DECLTYPE(b, T, operator, v)
 A fusion of BITPACK_MEMBER_DECLTYPE and BITPACK_OPERATE_WRAP.
#define BITPACK_OPERATE_WRAP_DEPENDENT(b, T, operator, v)
 A fusion of BITPACK_MEMBER_DEPENDENT and BITPACK_OPERATE_WRAP.
#define BITPACK_OPERATE_WRAP_TYPE(b, T, operator, v)
 A fusion of .member<>() and BITPACK_OPERATE_WRAP.
#define BITPACK_WRAP_WITH(proxy, value)
 A specialization of BITPACK_OPERATE_WRAP using .with as the operator.
#define BITPACK_WITH_WRAP_DECLTYPE(b, T, v)
 A specialization of BITPACK_OPERATE_WRAP_DECLTYPE using .with as the operator.
#define BITPACK_WITH_WRAP_DEPENDENT(b, T, v)
 A specialization of BITPACK_OPERATE_WRAP_DEPENDENT using .with as the operator.
#define BITPACK_WITH_WRAP_TYPE(b, T, v)
 A specialization of BITPACK_OPERATE_WRAP_TYPE using .with as the operator.

Detailed Description

macros

Macro Definition Documentation

◆ BITPACK_OPERATE_WRAP

#define BITPACK_OPERATE_WRAP ( proxy,
operator,
value )
Value:
({ \
using F = decltype(proxy)::Field::Type; \
(proxy) operator(F{value}); \
})

Operate between a Field::Proxy proxy and a given value, which will be wrapped with proxy's Field::Type's constructor.

This will not work on volatile bitpacks; use .read first.

Definition at line 1176 of file bitpack.hh.

◆ BITPACK_OPERATE_WRAP_DECLTYPE

#define BITPACK_OPERATE_WRAP_DECLTYPE ( b,
T,
operator,
v )
Value:
#define BITPACK_MEMBER_DECLTYPE(b, T)
A convenience macro that presumes the type T is defined within the Bitpack b and finds such a field's...
Definition bitpack.hh:1053
#define BITPACK_OPERATE_WRAP(proxy, operator,value)
Operate between a Field::Proxy proxy and a given value, which will be wrapped with proxy's Field::Typ...
Definition bitpack.hh:1176

A fusion of BITPACK_MEMBER_DECLTYPE and BITPACK_OPERATE_WRAP.

Definition at line 1183 of file bitpack.hh.

◆ BITPACK_OPERATE_WRAP_DEPENDENT

#define BITPACK_OPERATE_WRAP_DEPENDENT ( b,
T,
operator,
v )
Value:
#define BITPACK_MEMBER_DEPENDENT(b, T)
Like BITPACK_MEMBER_DECLTYPE, but with additional an "typename" keyword so we can use a dependently-t...
Definition bitpack.hh:1061

A fusion of BITPACK_MEMBER_DEPENDENT and BITPACK_OPERATE_WRAP.

Definition at line 1187 of file bitpack.hh.

◆ BITPACK_OPERATE_WRAP_TYPE

#define BITPACK_OPERATE_WRAP_TYPE ( b,
T,
operator,
v )
Value:
BITPACK_OPERATE_WRAP((b).template member<T>(), operator, v)

A fusion of .member<>() and BITPACK_OPERATE_WRAP.

Definition at line 1191 of file bitpack.hh.

◆ BITPACK_WITH_WRAP_DECLTYPE

#define BITPACK_WITH_WRAP_DECLTYPE ( b,
T,
v )
Value:
#define BITPACK_OPERATE_WRAP_DECLTYPE(b, T, operator,v)
A fusion of BITPACK_MEMBER_DECLTYPE and BITPACK_OPERATE_WRAP.
Definition bitpack.hh:1183

A specialization of BITPACK_OPERATE_WRAP_DECLTYPE using .with as the operator.

Definition at line 1202 of file bitpack.hh.

◆ BITPACK_WITH_WRAP_DEPENDENT

#define BITPACK_WITH_WRAP_DEPENDENT ( b,
T,
v )
Value:
#define BITPACK_OPERATE_WRAP_DEPENDENT(b, T, operator,v)
A fusion of BITPACK_MEMBER_DEPENDENT and BITPACK_OPERATE_WRAP.
Definition bitpack.hh:1187

A specialization of BITPACK_OPERATE_WRAP_DEPENDENT using .with as the operator.

Definition at line 1209 of file bitpack.hh.

◆ BITPACK_WITH_WRAP_TYPE

#define BITPACK_WITH_WRAP_TYPE ( b,
T,
v )
Value:
#define BITPACK_OPERATE_WRAP_TYPE(b, T, operator,v)
A fusion of .member<>() and BITPACK_OPERATE_WRAP.
Definition bitpack.hh:1191

A specialization of BITPACK_OPERATE_WRAP_TYPE using .with as the operator.

Definition at line 1213 of file bitpack.hh.

◆ BITPACK_WRAP_WITH

#define BITPACK_WRAP_WITH ( proxy,
value )
Value:
BITPACK_OPERATE_WRAP(proxy, .with, value)

A specialization of BITPACK_OPERATE_WRAP using .with as the operator.

Definition at line 1195 of file bitpack.hh.