libclues
Linux C++ Tracing Library
Loading...
Searching...
No Matches
types.hxx
1#pragma once
2
3#include <variant>
4
5#include "fwd.hxx"
6#include <clues/types.hxx>
7
8
9/********************************************************************************
10 * this file was generated by parse_syscall_tables.py
11 * based on Linux kernel sources 6.18.18-gentoo
12 ********************************************************************************/
13
14namespace clues {
15
16using AnySystemCallNr = std::variant<SystemCallNrI386, SystemCallNrX64, SystemCallNrX32, SystemCallNrAARCH64>;
17
19template <ABI abi>
21 static_assert(abi == ABI{-1}, "no traits defined for this ABI yet");
22};
23
24template <>
25struct SystemCallNrTraits<ABI::I386> {
26 using type = SystemCallNrI386;
27 size_t NUM_SYSCALLS = 459;
28};
29
30template <>
31struct SystemCallNrTraits<ABI::X86_64> {
32 using type = SystemCallNrX64;
33 size_t NUM_SYSCALLS = 383;
34};
35
36template <>
38 using type = SystemCallNrX32;
39 size_t NUM_SYSCALLS = 372;
40};
41
42template <>
43struct SystemCallNrTraits<ABI::AARCH64> {
44 using type = SystemCallNrAARCH64;
45 size_t NUM_SYSCALLS = 325;
46};
47
48} // end ns
ABI
System Call ABI.
Definition types.hxx:62
@ X32
X86_64 with 32-bit pointers.
Definition types.hxx:66
SystemCallNrAARCH64
Native system call numbers as used by Linux on the aarch64 ABI.
Definition aarch64.hxx:31
SystemCallNrX64
Native system call numbers as used by Linux on the x64 ABI.
Definition x64.hxx:31
SystemCallNrI386
Native system call numbers as used by Linux on the i386 ABI.
Definition i386.hxx:32
Traits which allow to lookup the correct SystemCallNr type per ABI.
Definition types.hxx:20