4#include <clues/SystemCall.hxx>
5#include <clues/items/fs.hxx>
6#include <clues/items/items.hxx>
7#include <clues/items/mmap.hxx>
8#include <clues/sysnrs/generic.hxx>
14struct CLUES_API BreakSystemCall :
18 req_addr{
"req_addr",
"requested data segment end"},
21 setParameters(req_addr);
48struct CLUES_API MmapSystemCall :
55 hint{
"hint",
"address placement hint"},
56 length{
"len",
"length"},
62 bool isOldMmap()
const {
63 return old_args.has_value();
70 bool implementsOldMmap()
const;
78 item::SizeValue length;
82 item::OffsetValue offset;
85 std::optional<item::OldMmapArgs> old_args;
91struct CLUES_API MunmapSystemCall :
96 addr{
"addr",
"address to unmap"},
97 length{
"len",
"length"} {
99 setParameters(addr, length);
104 item::SizeValue length;
110struct CLUES_API MprotectSystemCall :
113 MprotectSystemCall() :
118 setParameters(addr, length, protection);
123 item::SizeValue length;
void setReturnItem(SystemCallItem &ret)
Sets the return value system call item.
SystemCall(const SystemCallNr nr)
Instantiates a new SystemCall object with given properties.
Base class for traced processes.
Base class for file descriptor system call items.
Memory protection used e.g. in mprotect().
An always-success return value.
@ RETVAL
A system call return value.
SystemCallNr
Abstract system call number usable across architectures and ABIs.
bool check2ndPass(const Tracee &) override
Check whether a second pass needs to be made processing parameters.
void prepareNewSystemCall() override
Perform any necessary actions before processing a new system call entry event.