The Pedigree Project 0.1
process-vm-syscalls.h
1/* Copyright (c) 2026, Pedigree Developers. */
2#ifndef POSIX_PROCESS_VM_SYSCALLS_H
3#define POSIX_PROCESS_VM_SYSCALLS_H
4
5#include "pedigree/kernel/processor/types.h"
6
7struct iovec;
8ssize_t posix_process_vm_readv(int pid, const iovec* local, size_t localCount, const iovec* remote,
9 size_t remoteCount, unsigned long flags);
10ssize_t posix_process_vm_writev(int pid, const iovec* local, size_t localCount, const iovec* remote,
11 size_t remoteCount, unsigned long flags);
12
13#if PEDIGREE_PROCESS_MEMORY_TESTS
14class Thread;
15using ProcessVmAfterFragmentHook = void (*)(size_t copied, void* context);
16// Install/reset on the expected caller itself, and reset before it exits.
17void setProcessVmAfterFragmentHookForTest(Thread* expectedCaller, ProcessVmAfterFragmentHook hook,
18 void* context);
19#endif
20
21#endif