process_vm_writev on tilepro
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.7 or earlier (3.7 is the first release scanned for tilepro) |
| man page | process_vm_writev(2) |
| source | elixir.bootlin.com |
Registers
| register | value |
|---|---|
r10 | 271, the syscall number |
r0 | pid_t pid |
r1 | const struct iovec *lvec |
r2 | unsigned long liovcnt |
r3 | const struct iovec *rvec |
r4 | unsigned long riovcnt |
r5 | unsigned long flags |
r0 | the return value |
Then run swint1 to enter the kernel.
The kernel uses r1 to signal an error for ordinary calls.
Fast atomic calls use negative numbers and have different register behavior.
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
- metag 271, removed in 4.17
- 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
- xtensa 323
Get this as JSON: https://api.syscall.sh/v2/syscalls/tilepro/process_vm_writev?kernel=all