AsmGrader 0.0.0
Loading...
Searching...
No Matches
asmgrader::SyscallEntry Struct Reference

#include <syscall.hpp>

Classes

struct  Param
 

Public Types

enum class  Type {
  Unused = 0 , Int32 , Int64 , Uint32 ,
  Uint64 , VoidPtr , CString , NTCStringArray ,
  TimeSpecPtr
}
 

Public Member Functions

consteval SyscallEntry ()
 
constexpr SyscallEntry (int number, std::string_view syscall_name, Type return_type, std::initializer_list< Param > parameters)
 
constexpr std::string_view name () const
 Human-readable name of the syscall (e.g., openat, getpid)
 
constexpr auto parameters () const
 

Static Public Member Functions

static constexpr SyscallEntry unknown (int nr)
 

Public Attributes

int nr {}
 Syscall number (arch-specific)
 
Type ret_type {}
 

Static Public Attributes

template<typename T >
static constexpr Type type_of
 Primarally for converting integer-aliases (e.g., size_t, mode_t, pid_t, etc.) to the corresponding enumerator in a platform-indepentant way.
 

Member Enumeration Documentation

◆ Type

enum class asmgrader::SyscallEntry::Type
strong
Enumerator
Unused 
Int32 
Int64 
Uint32 
Uint64 
VoidPtr 
CString 
NTCStringArray 
TimeSpecPtr 

Constructor & Destructor Documentation

◆ SyscallEntry() [1/2]

asmgrader::SyscallEntry::SyscallEntry ( )
inlineconsteval

◆ SyscallEntry() [2/2]

asmgrader::SyscallEntry::SyscallEntry ( int number,
std::string_view syscall_name,
Type return_type,
std::initializer_list< Param > parameters )
inlineconstexpr

Member Function Documentation

◆ name()

std::string_view asmgrader::SyscallEntry::name ( ) const
inlineconstexpr

Human-readable name of the syscall (e.g., openat, getpid)

◆ parameters()

auto asmgrader::SyscallEntry::parameters ( ) const
inlineconstexpr

◆ unknown()

static constexpr SyscallEntry asmgrader::SyscallEntry::unknown ( int nr)
inlinestaticconstexpr

Member Data Documentation

◆ nr

int asmgrader::SyscallEntry::nr {}

Syscall number (arch-specific)

◆ ret_type

Type asmgrader::SyscallEntry::ret_type {}

◆ type_of

template<typename T >
Type asmgrader::SyscallEntry::type_of
staticconstexpr
Initial value:
= []() {
#define TC(t, r) \
\
\
using enum Type;
if constexpr (std::is_void_v<T>) {
return VoidPtr;
}
}()
Type
Definition syscall.hpp:25

Primarally for converting integer-aliases (e.g., size_t, mode_t, pid_t, etc.) to the corresponding enumerator in a platform-indepentant way.


The documentation for this struct was generated from the following file: