42 else if (std::same_as<T, t>) { \
47 if constexpr (std::is_void_v<T>) {
73 ranges::copy(syscall_name, name_buffer_.begin());
74 ranges::copy(
parameters, params_buffer_.begin());
78 decltype(name_buffer_) buffer{};
79 auto* end_it = fmt::format_to(buffer.data(), FMT_COMPILE(
"<unknown ({})>"),
nr);
90 constexpr std::string_view
name()
const {
return {name_buffer_.begin(), name_buffer_.end()}; }
92 constexpr auto parameters()
const {
return std::span{params_buffer_.begin(), num_params_}; }
98 static constexpr int MAX_NAME_LEN = 128;
100 std::array<char, MAX_NAME_LEN> name_buffer_{};
103 static constexpr int MAX_NUM_PARAMS = 6;
104 std::array<Param, MAX_NUM_PARAMS> params_buffer_{};
105 std::size_t num_params_ = 0;
108 std::array<char, MAX_NAME_LEN> name_buffer)
111 , name_buffer_{name_buffer}
Definition syscall.hpp:59
std::string_view name
Definition syscall.hpp:62
Type type
Definition syscall.hpp:60
Definition syscall.hpp:24
constexpr std::string_view name() const
Human-readable name of the syscall (e.g., openat, getpid)
Definition syscall.hpp:90
consteval SyscallEntry()
Definition syscall.hpp:65
Type ret_type
Definition syscall.hpp:94
constexpr SyscallEntry(int number, std::string_view syscall_name, Type return_type, std::initializer_list< Param > parameters)
Definition syscall.hpp:68
int nr
Syscall number (arch-specific)
Definition syscall.hpp:87
Type
Definition syscall.hpp:25
static constexpr Type type_of
Primarally for converting integer-aliases (e.g., size_t, mode_t, pid_t, etc.) to the corresponding en...
Definition syscall.hpp:40
constexpr auto parameters() const
Definition syscall.hpp:92
static constexpr SyscallEntry unknown(int nr)
Definition syscall.hpp:77