4#include <clues/SystemCall.hxx>
5#include <clues/items/fs.hxx>
6#include <clues/items/io.hxx>
7#include <clues/sysnrs/generic.hxx>
11struct CLUES_API WriteSystemCall :
17 count{
"count",
"buffer length"},
20 setParameters(fd, buf, count);
25 item::SizeValue count;
26 item::SizeValue written;
29struct CLUES_API ReadSystemCall :
35 count{
"count",
"buffer length"},
38 setParameters(fd, buf, count);
43 item::SizeValue count;
60struct CLUES_API IoCtlSystemCall :
65 request{
"request",
"ioctl request number"} {
67 setParameters(fd, request);
74 item::UintValue request;
82struct CLUES_API PipeSystemCall :
85 explicit PipeSystemCall(
const SystemCallNr nr = SystemCallNr::PIPE) :
105struct CLUES_API Pipe2SystemCall :
106 public PipeSystemCall {
108 explicit Pipe2SystemCall() :
109 PipeSystemCall{SystemCallNr::PIPE2} {
110 addParameters(flags);
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.
Pointer to a buffer of a certain size containing arbitrary data.
Base class for file descriptor system call items.
Pointer to pipefd[2] array in pipe() system calls.
Flags used in Pipe2SystemCall.
An always-success return value.
@ PARAM_OUT
An output parameter filled by in by the system call.
@ PARAM_IN
An input parameter to the system call.
@ RETVAL
A system call return value.
SystemCallNr
Abstract system call number usable across architectures and ABIs.
void updateFDTracking(const Tracee &proc) override
Update file descriptor tracking.