summaryrefslogtreecommitdiffstats
path: root/libc/arch-mips/include
diff options
context:
space:
mode:
authorDuane Sand <duane.sand@imgtec.com>2015-01-26 14:48:48 -0800
committerDuane Sand <duane.sand@imgtec.com>2015-02-11 15:15:53 -0800
commitb6d301f42dc191681a17eb85536f9cde4eb78c44 (patch)
tree91b301eff1b99e92dba29c2b3039a07cdfea429e /libc/arch-mips/include
parent0046c39f9ed6d7335f06e4d866df5ae0e7b4d485 (diff)
downloadbionic-b6d301f42dc191681a17eb85536f9cde4eb78c44.zip
bionic-b6d301f42dc191681a17eb85536f9cde4eb78c44.tar.gz
bionic-b6d301f42dc191681a17eb85536f9cde4eb78c44.tar.bz2
[MIPS] Fix setjmp signals
Include full 16-byte Mips sigset_t signal mask within jump buffer. Call sigprocmask instead of sigblockmask/sigsetmask to get/set full signal mask. Include sigsetjmp's savesigs arg inside jmp_buf, instead of following it. Reserve room for future extensions. Preserve historically-large mips32 _JBLEN size. Eliminate redundancy: code setjmp and _setjmp as tail calls into sigsetjmp, and make longjmp and _longjmp aliases of siglongjmp. Change-Id: Ie79137cf059228c1a51344ebb20d3a9a40b4a252
Diffstat (limited to 'libc/arch-mips/include')
-rw-r--r--libc/arch-mips/include/machine/setjmp.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/libc/arch-mips/include/machine/setjmp.h b/libc/arch-mips/include/machine/setjmp.h
index a9707dc..4067d51 100644
--- a/libc/arch-mips/include/machine/setjmp.h
+++ b/libc/arch-mips/include/machine/setjmp.h
@@ -6,9 +6,10 @@
#define _MIPS_SETJMP_H_
#ifdef __LP64__
-#define _JBLEN 22 /* size, in 8-byte longs, of a mips64 jmp_buf */
+#define _JBLEN 25 /* size, in 8-byte longs, of a mips64 jmp_buf/sigjmp_buf */
#else
-#define _JBLEN 29 /* size, in 4-byte longs, of a mips32 jmp_buf */
+#define _JBLEN 157 /* historical size, in 4-byte longs, of a mips32 jmp_buf */
+ /* actual used size is 34 */
#endif
#endif /* !_MIPS_SETJMP_H_ */