linkat on metag
make a new name for a file
sys_linkat(int olddfd, const char *oldname, int newdfd, const char *newname, int flags)
| number | 37 (0x25) |
|---|---|
| abi | common |
| entry point | sys_linkat |
| since | Linux 3.9 or earlier (3.9 is the first release scanned for metag) |
| man page | linkat(2) |
| source | elixir.bootlin.com |
Registers
| register | value |
|---|---|
D1Re0 | 37, the syscall number |
D1Ar1 | int olddfd |
D0Ar2 | const char *oldname |
D1Ar3 | int newdfd |
D0Ar4 | const char *newname |
D1Ar5 | int 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 265
- x86 303
- arm64 37
- arm 330
- riscv64 37
- ia32 303
- x32 1073742089
- loongarch64 37
- ppc64 294
- ppc 294
- s390x 296
- mips64 5255
- mipsn32 6259
- mipso32 4296
- alpha 458
- arc 37
- blackfin 303, removed in 4.17
- cris 303, removed in 4.17
- csky 37
- frv 303, removed in 4.17
- hexagon 37
- ia64 1289, removed in 6.7
- m32r 303, removed in 4.17
- m68k 296
- microblaze 303
- mn10300 304, removed in 4.17
- nds32 37, removed in 5.18
- nios2 37
- openrisc 37
- parisc 283
- score 37, removed in 4.17
- sh 303
- sparc 292
- sparc64 292
- tilegx 37, removed in 4.17
- tilepro 37, removed in 4.17
- xtensa 293
Get this as JSON: https://api.syscall.sh/v2/syscalls/metag/linkat?kernel=all