process_vm_writev on metag
transfer data between process address spaces
sys_process_vm_writev(pid_t pid, const struct iovec *lvec, unsigned long liovcnt, const struct iovec *rvec, unsigned long riovcnt, unsigned long flags)
| number | 271 (0x10f) |
|---|---|
| abi | common |
| entry point | sys_process_vm_writev |
| since | Linux 3.9 or earlier (3.9 is the first release scanned for metag) |
| man page | process_vm_writev(2) |
| source | elixir.bootlin.com |
Registers
| register | value |
|---|---|
D1Re0 | 271, the syscall number |
D1Ar1 | pid_t pid |
D0Ar2 | const struct iovec *lvec |
D1Ar3 | unsigned long liovcnt |
D0Ar4 | const struct iovec *rvec |
D1Ar5 | unsigned long riovcnt |
D0Ar6 | unsigned long flags |
D0Re0 | the return value |
Then run SWITCH #0x440001 to enter the kernel.
Values wider than one register are packed into consecutive arguments.
This architecture was removed from the Linux kernel in Linux 4.17. The newest release with a syscall table here is Linux 4.16. The other removed architectures live on the historical architectures page.
Same syscall on other architectures
- x64 311
- x86 348
- arm64 271
- arm 377
- riscv64 271
- ia32 348
- x32 1073742364
- loongarch64 271
- ppc64 352
- ppc 352
- s390x 341
- mips64 5305
- mipsn32 6310
- mipso32 4346
- alpha 505
- arc 271
- blackfin 382, removed in 4.17
- cris 349, removed in 4.17
- csky 271
- hexagon 271
- ia64 1333, removed in 6.7
- m68k 346
- microblaze 378
- nds32 271, removed in 5.18
- nios2 271
- openrisc 271
- parisc 331
- score 271, removed in 4.17
- sh 366
- sparc 339
- sparc64 339
- tilegx 271, removed in 4.17
- tilepro 271, removed in 4.17
- xtensa 323
Get this as JSON: https://api.syscall.sh/v2/syscalls/metag/process_vm_writev?kernel=all