pkey_mprotect on score
set protection on a region of memory
sys_pkey_mprotect(unsigned long start, size_t len, unsigned long prot, int pkey)
| number | 288 (0x120) |
|---|---|
| abi | common |
| family | pkeys see the whole family on score |
| entry point | sys_pkey_mprotect |
| since | Linux 4.9 |
| man page | pkey_mprotect(2) |
| source | elixir.bootlin.com |
Registers
| register | value |
|---|---|
r27 | 288, the syscall number |
r4 | unsigned long start |
r5 | size_t len |
r6 | unsigned long prot |
r7 | int pkey |
r4 | the return value |
Then run syscall to enter the kernel.
r7 is the error flag and r4 then holds the positive error number.
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 329
- x86 380
- arm64 288
- arm 394
- riscv64 288
- ia32 380
- x32 1073742153
- loongarch64 288
- ppc64 386
- ppc 386
- s390x 384
- mips64 5323
- mipsn32 6327
- mipso32 4363
- alpha 524
- arc 288
- csky 288
- hexagon 288
- ia64 1354, removed in 6.7
- m68k 381
- metag 288, removed in 4.17
- microblaze 395
- nds32 288, removed in 5.18
- nios2 288
- openrisc 288
- parisc 351
- sh 384
- sparc 362
- sparc64 362
- tilegx 288, removed in 4.17
- tilepro 288, removed in 4.17
- xtensa 348
Get this as JSON: https://api.syscall.sh/v2/syscalls/score/pkey_mprotect?kernel=all