فهرست منبع

fix sigemptyset and sigfillset for mips

they were leaving junk in the upper bits.
Rich Felker 11 سال پیش
والد
کامیت
0753b1faf0
2فایلهای تغییر یافته به همراه10 افزوده شده و 1 حذف شده
  1. 5 1
      src/signal/sigemptyset.c
  2. 5 0
      src/signal/sigfillset.c

+ 5 - 1
src/signal/sigemptyset.c

@@ -4,6 +4,10 @@
 int sigemptyset(sigset_t *set)
 {
 	set->__bits[0] = 0;
-	if (sizeof(long)==4) set->__bits[1] = 0;
+	if (sizeof(long)==4 || _NSIG > 65) set->__bits[1] = 0;
+	if (sizeof(long)==4 && _NSIG > 65) {
+		set->__bits[2] = 0;
+		set->__bits[3] = 0;
+	}
 	return 0;
 }

+ 5 - 0
src/signal/sigfillset.c

@@ -7,8 +7,13 @@ int sigfillset(sigset_t *set)
 #if ULONG_MAX == 0xffffffff
 	set->__bits[0] = 0x7ffffffful;
 	set->__bits[1] = 0xfffffffcul;
+	if (_NSIG > 65) {
+		set->__bits[2] = 0xfffffffful;
+		set->__bits[3] = 0xfffffffful;
+	}
 #else
 	set->__bits[0] = 0xfffffffc7ffffffful;
+	if (_NSIG > 65) set->__bits[1] = 0xfffffffffffffffful;
 #endif
 	return 0;
 }