summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch/aarch64/sys (follow)
Commit message (Collapse)AuthorAgeFilesLines
* replace ad-hoc illegal instruction with the architecturally defined onenaddy2020-10-191-2/+2
| | | | | ("permanently undefined") ok deraadt@ kettenis@
* SYS___threxit cannot fail, but this integration looks like a gadget.deraadt2020-10-181-1/+2
| | | | | Put a hard-trap instruction after the syscall instruction. ok kettenis mortimer
* Mark top-level frame for new thread in both CFI and with zeroguenther2020-10-011-1/+7
| | | | | | framepointer, so gdb knows to stop. Inspired by glibc ok kettenis@
* Add retguard macros for arm64 asm and apply them in the straightforwardmortimer2018-08-128-8/+24
| | | | | cases in kernel and libc. ok deraadt@
* Avoid .align 0 here as well. Also fix a .word that should be a .quad.kettenis2017-11-223-10/+7
| | | | ok patrick@
* Typo: 'end' should have been '_end', which is already exported/imported.guenther2017-10-281-2/+2
| | | | | Also, '_memcpy' and '_stack' were specific to arm and should not have been copied here
* Stop setting the second register; it's unnecessary on 64bit archsguenther2017-03-191-2/+1
| | | | ok patrick@ kettenis@
* Simplify fork/vfork logic: the kernel has handled returning zero in the childkettenis2017-03-181-10/+1
| | | | | | | for a long time, so there's no need to test the second return register here in the asm stub. ok guenther@
* Use the userspace-visible thread register directly in __cerror insteadkettenis2017-03-181-10/+6
| | | | | | of indirecting through __errno(). ok patrick@
* Make brk(2) actually work and sync the brk()/sbrk() implementation with arm,kettenis2017-03-182-35/+29
| | | | | | brininging over all the symbol visibility improvements that guenther@ made. ok drahn@
* The assembly for sigpending(2) wasn't correctly implemented either. Ipatrick2017-02-231-2/+3
| | | | | | | suppose this still stems from the first steps where we tried to get at least some userland stuff to compile. This change properly saves the pointer before doing the syscall and stores the return value in the pointer on return. This makes sigpending regress pass.
* The assembly for sigprocmask(2) had a tiny typo which made it jump topatrick2017-02-221-4/+4
| | | | | | | the wrong location, thus not making it set SIG_BLOCK with a zero mask when attempting to read the signal mask (if set ptr is NULL). Instead an attempt to read the mask actually told the syscall to set the mask to zero.
* __tfork(3) returns the thread ID of the new thread in x0, not x1. Thepatrick2017-02-201-2/+2
| | | | | value returned in x1 on __tfork(3) is always zero, which made the code always fall into the child case.
* __errno() returns a 32-bit pointer, so make sure we write a 32-bitpatrick2017-01-251-2/+2
| | | | value to and not overwrite other bits by writing a 64-bit value.
* Add support for AArch64.patrick2017-01-119-0/+496