aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-05-10 08:39:58 +0000
committerUlrich Drepper <drepper@redhat.com>2003-05-10 08:39:58 +0000
commitd9997a45eeba745384e3591978186debd5883be7 (patch)
tree9a204e82d9dbdc451984f5e8e1801cf49940394d
parentd067c97eb5c0d019608c51310d8f1bafecd77513 (diff)
downloadglibc-d9997a45eeba745384e3591978186debd5883be7.zip
glibc-d9997a45eeba745384e3591978186debd5883be7.tar.gz
glibc-d9997a45eeba745384e3591978186debd5883be7.tar.bz2
Update.
2003-05-09 Thorsten Kukuk <kukuk@suse.de> * sysdeps/unix/sysv/linux/netinet/igmp.h: Don't include kernel headers, add defines from kernel header, move it from here... * inet/netinet/igmp.h: ... to here. * inet/Makefile (headers): Add netinet/igmp.h. * sysdeps/unix/sysv/linux/Makefile: Remove netinet/igmp.h. * sysdeps/unix/sysv/linux/Dist: Remove netinet/igmp.h. 2003-05-10 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/lio_listio64.c (lio_listio64): If SIG == NULL, use dummy sigevent structure with SIGEV_NONE [PR libc/5015]. 2003-05-09 Thorsten Kukuk <kukuk@suse.de> * libio/bits/stdio.h: Sync prototypes with libio/stdio.h (remove __THROW from possible cancellation points).
-rw-r--r--ChangeLog19
-rw-r--r--inet/Makefile2
-rw-r--r--inet/netinet/igmp.h (renamed from sysdeps/unix/sysv/linux/netinet/igmp.h)41
-rw-r--r--libio/bits/stdio.h18
-rw-r--r--localedata/ChangeLog7
-rw-r--r--localedata/locales/st_ZA254
-rw-r--r--localedata/locales/xh_ZA235
-rw-r--r--localedata/locales/zu_ZA241
-rw-r--r--manual/llio.texi11
-rw-r--r--manual/resource.texi175
-rw-r--r--sysdeps/pthread/lio_listio64.c9
-rw-r--r--sysdeps/unix/sysv/linux/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/Makefile2
13 files changed, 998 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 880ed65..a695b28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2003-05-09 Thorsten Kukuk <kukuk@suse.de>
+
+ * sysdeps/unix/sysv/linux/netinet/igmp.h: Don't include kernel
+ headers, add defines from kernel header, move it from here...
+ * inet/netinet/igmp.h: ... to here.
+ * inet/Makefile (headers): Add netinet/igmp.h.
+ * sysdeps/unix/sysv/linux/Makefile: Remove netinet/igmp.h.
+ * sysdeps/unix/sysv/linux/Dist: Remove netinet/igmp.h.
+
+2003-05-10 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/pthread/lio_listio64.c (lio_listio64): If SIG == NULL,
+ use dummy sigevent structure with SIGEV_NONE [PR libc/5015].
+
+2003-05-09 Thorsten Kukuk <kukuk@suse.de>
+
+ * libio/bits/stdio.h: Sync prototypes with libio/stdio.h
+ (remove __THROW from possible cancellation points).
+
2003-05-10 Ulrich Drepper <drepper@redhat.com>
* posix/sched.h (CPU_SETSIZE): Define.
diff --git a/inet/Makefile b/inet/Makefile
index 3706d98..60a1a2e 100644
--- a/inet/Makefile
+++ b/inet/Makefile
@@ -22,7 +22,7 @@
subdir := inet
headers := netinet/ether.h netinet/in.h netinet/in_systm.h \
- netinet/if_ether.h \
+ netinet/if_ether.h netinet/igmp.h \
netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \
aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h
diff --git a/sysdeps/unix/sysv/linux/netinet/igmp.h b/inet/netinet/igmp.h
index a4683bd..2bffadc 100644
--- a/sysdeps/unix/sysv/linux/netinet/igmp.h
+++ b/inet/netinet/igmp.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -22,8 +22,43 @@
#include <sys/cdefs.h>
#include <sys/types.h>
-#include <asm/types.h>
-#include <linux/igmp.h>
+#define IGMP_HOST_MEMBERSHIP_QUERY 0x11 /* From RFC1112 */
+#define IGMP_HOST_MEMBERSHIP_REPORT 0x12 /* Ditto */
+#define IGMP_DVMRP 0x13 /* DVMRP routing */
+#define IGMP_PIM 0x14 /* PIM routing */
+#define IGMP_TRACE 0x15
+#define IGMP_HOST_NEW_MEMBERSHIP_REPORT 0x16 /* New version of 0x11 */
+#define IGMP_HOST_LEAVE_MESSAGE 0x17
+
+#define IGMP_MTRACE_RESP 0x1e
+#define IGMP_MTRACE 0x1f
+
+/*
+ * Use the BSD names for these for compatibility
+ */
+
+#define IGMP_DELAYING_MEMBER 0x01
+#define IGMP_IDLE_MEMBER 0x02
+#define IGMP_LAZY_MEMBER 0x03
+#define IGMP_SLEEPING_MEMBER 0x04
+#define IGMP_AWAKENING_MEMBER 0x05
+
+#define IGMP_MINLEN 8
+
+#define IGMP_MAX_HOST_REPORT_DELAY 10 /* max delay for response to */
+ /* query (in seconds) */
+
+#define IGMP_TIMER_SCALE 10 /* denotes that the igmphdr->timer field */
+ /* specifies time in 10th of seconds */
+
+#define IGMP_AGE_THRESHOLD 400 /* If this host don't hear any IGMP V1 */
+ /* message in this period of time, */
+ /* revert to IGMP v2 router. */
+
+#define IGMP_ALL_HOSTS htonl(0xE0000001L)
+#define IGMP_ALL_ROUTER htonl(0xE0000002L)
+#define IGMP_LOCAL_GROUP htonl(0xE0000000L)
+#define IGMP_LOCAL_GROUP_MASK htonl(0xFFFFFF00L)
#ifdef __USE_BSD
diff --git a/libio/bits/stdio.h b/libio/bits/stdio.h
index 118118a..14ebd7e 100644
--- a/libio/bits/stdio.h
+++ b/libio/bits/stdio.h
@@ -31,14 +31,14 @@
#ifdef __USE_EXTERN_INLINES
/* Write formatted output to stdout from argument list ARG. */
__STDIO_INLINE int
-vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW
+vprintf (__const char *__restrict __fmt, _G_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
/* Read a character from stdin. */
__STDIO_INLINE int
-getchar (void) __THROW
+getchar (void)
{
return _IO_getc (stdin);
}
@@ -47,14 +47,14 @@ getchar (void) __THROW
# if defined __USE_POSIX || defined __USE_MISC
/* This is defined in POSIX.1:1996. */
__STDIO_INLINE int
-getc_unlocked (FILE *__fp) __THROW
+getc_unlocked (FILE *__fp)
{
return _IO_getc_unlocked (__fp);
}
/* This is defined in POSIX.1:1996. */
__STDIO_INLINE int
-getchar_unlocked (void) __THROW
+getchar_unlocked (void)
{
return _IO_getc_unlocked (stdin);
}
@@ -63,7 +63,7 @@ getchar_unlocked (void) __THROW
/* Write a character to stdout. */
__STDIO_INLINE int
-putchar (int __c) __THROW
+putchar (int __c)
{
return _IO_putc (__c, stdout);
}
@@ -72,7 +72,7 @@ putchar (int __c) __THROW
# ifdef __USE_MISC
/* Faster version when locking is not necessary. */
__STDIO_INLINE int
-fputc_unlocked (int __c, FILE *__stream) __THROW
+fputc_unlocked (int __c, FILE *__stream)
{
return _IO_putc_unlocked (__c, __stream);
}
@@ -82,14 +82,14 @@ fputc_unlocked (int __c, FILE *__stream) __THROW
# if defined __USE_POSIX || defined __USE_MISC
/* This is defined in POSIX.1:1996. */
__STDIO_INLINE int
-putc_unlocked (int __c, FILE *__stream) __THROW
+putc_unlocked (int __c, FILE *__stream)
{
return _IO_putc_unlocked (__c, __stream);
}
/* This is defined in POSIX.1:1996. */
__STDIO_INLINE int
-putchar_unlocked (int __c) __THROW
+putchar_unlocked (int __c)
{
return _IO_putc_unlocked (__c, stdout);
}
@@ -99,7 +99,7 @@ putchar_unlocked (int __c) __THROW
# ifdef __USE_GNU
/* Like `getdelim', but reads up to a newline. */
__STDIO_INLINE _IO_ssize_t
-getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW
+getline (char **__lineptr, size_t *__n, FILE *__stream)
{
return __getdelim (__lineptr, __n, '\n', __stream);
}
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index cfcf9c9..28514d0 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,10 @@
+2003-05-10 Ulrich Drepper <drepper@redhat.com>
+
+ * locales/st_ZA: New file.
+ * locales/xh_ZA: New file.
+ * locales/zu_ZA: New file.
+ Contribued by Dwayne Bailey <dwayne@translate.org.za>.
+
2003-05-06 Ulrich Drepper <drepper@redhat.com>
* locales/de_DE: Use two-letter abday values.
diff --git a/localedata/locales/st_ZA b/localedata/locales/st_ZA
new file mode 100644
index 0000000..a8a4b24
--- /dev/null
+++ b/localedata/locales/st_ZA
@@ -0,0 +1,254 @@
+escape_char /
+comment_char %
+
+% ChangeLog
+% 0.1 (2003-04-21):
+% - Initial Sotho locale for South Africa
+% by Zuza Software Foundation
+
+LC_IDENTIFICATION
+title "Sotho locale for South Africa"
+source "Zuza Software Foundation"
+address "PO Box 13412, Mowbray, 7705, South Africa"
+contact "Dwayne Bailey"
+email "dwayne@translate.org.za"
+tel "+27 (0)21 448 9265"
+fax "+27 (0)21 448 9574"
+language "Sotho"
+territory "South Africa"
+revision "0.1"
+date "2003-04-21"
+%
+category "st_ZA:2003";LC_IDENTIFICATION
+category "st_ZA:2003";LC_CTYPE
+category "st_ZA:2003";LC_COLLATE
+category "st_ZA:2003";LC_TIME
+category "st_ZA:2003";LC_NUMERIC
+category "st_ZA:2003";LC_MONETARY
+category "st_ZA:2003";LC_MESSAGES
+category "st_ZA:2003";LC_PAPER
+category "st_ZA:2003";LC_NAME
+category "st_ZA:2003";LC_ADDRESS
+category "st_ZA:2003";LC_TELEPHONE
+category "st_ZA:2003";LC_MEASUREMENT
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+% Use the characters described in the charmap file "i18n.tgz"
+copy "i18n"
+END LC_CTYPE
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651 i.e.
+% use the rules there when making ordered lists of words.
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_MONETARY
+copy "en_ZA"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_ZA"
+END LC_NUMERIC
+
+LC_TIME
+
+% abday - The abbreviations for the week days:
+% - Son, Mma, Bed, Rar, Ne, Hla, Moq
+abday "<U0053><U006F><U006E>";/
+ "<U004D><U006D><U0061>";/
+ "<U0042><U0065><U0064>";/
+ "<U0052><U0061><U0072>";/
+ "<U004E><U0065>";/
+ "<U0048><U006C><U0061>";/
+ "<U004D><U006F><U0071>"
+
+% day - The full names of the week days:
+% - Sontaha, Mmantaha, Labobedi, Laboraru, Labone, Labohlane, Moqebelo
+day "<U0053><U006F><U006E><U0074><U0061><U0068><U0061>";/
+ "<U004D><U006D><U0061><U006E><U0074><U0061><U0068><U0061>";/
+ "<U004C><U0061><U0062><U006F><U0062><U0065><U0064><U0069>";/
+ "<U004C><U0061><U0062><U006F><U0072><U0061><U0072><U0075>";/
+ "<U004C><U0061><U0062><U006F><U006E><U0065>";/
+ "<U004C><U0061><U0062><U006F><U0068><U006C><U0061><U006E><U0065>";/
+ "<U004D><U006F><U0071><U0065><U0062><U0065><U006C><U006F>"
+
+% abmon - The abbreviations for the months
+% - Phe, Kol, Ube, Mme, Mot, Jan, Upu, Pha, Leo, Mph, Pun, Tsh
+abmon "<U0050><U0068><U0065>";"<U004B><U006F><U006C>";/
+ "<U0055><U0062><U0065>";"<U004D><U006D><U0065>";/
+ "<U004D><U006F><U0074>";"<U004A><U0061><U006E>";/
+ "<U0055><U0070><U0075>";"<U0050><U0068><U0061>";/
+ "<U004C><U0065><U006F>";"<U004D><U0070><U0068>";/
+ "<U0050><U0075><U006E>";"<U0054><U0073><U0068>"
+
+% mon - The full names of the months -
+% - Phesekgong, Hlakola, Hlakubele, Mmese, Motsheanong, Phupjane,
+% Phupu, Phata, Leotshe, Mphalane, Pundungwane, Tshitwe
+mon "<U0050><U0068><U0065><U0073><U0065><U006B><U0067><U006F><U006E><U0067>";/
+ "<U0048><U006C><U0061><U006B><U006F><U006C><U0061>";/
+ "<U0048><U006C><U0061><U006B><U0075><U0062><U0065><U006C><U0065>";/
+ "<U004D><U006D><U0065><U0073><U0065>";/
+ "<U004D><U006F><U0074><U0073><U0068><U0065><U0061><U006E><U006F><U006E><U0067>";/
+ "<U0050><U0068><U0075><U0070><U006A><U0061><U006E><U0065>";/
+ "<U0050><U0068><U0075><U0070><U0075>";/
+ "<U0050><U0068><U0061><U0074><U0061>";/
+ "<U004C><U0065><U006F><U0074><U0073><U0068><U0065>";/
+ "<U004D><U0070><U0068><U0061><U006C><U0061><U006E><U0065>";/
+ "<U0050><U0075><U006E><U0064><U0075><U006E><U0067><U0077><U0061><U006E><U0065>";/
+ "<U0054><U0073><U0068><U0069><U0074><U0077><U0065>"
+
+% Abreviated date and time representation to be referenced by the "%c" field descriptor -
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+%
+% "%a" (short weekday name),
+% "%d" (day of month as a decimal number),
+% "%b" (short month name),
+% "%Y" (year with century as a decimal number),
+% "%T" (24-hour clock time in format HH:MM:SS),
+% "%Z" (Time zone name)
+
+% Date representation to be referenced by the "%x" field descriptor -
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+% "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
+
+% Time representation to be referenced by the "%X" field descriptor -
+t_fmt "<U0025><U0054>"
+% "%T" (24-hour clock time in format HH:MM:SS)
+
+% Define representation of ante meridiem and post meridiem strings -
+am_pm "";""
+% The "" mean 'default to "AM" and "PM".
+
+% Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
+t_fmt_ampm ""
+% The "" means that this format is not supported.
+
+% Date representation not described in ISO/IEC 14652. Comes out as -
+% "%a %b %e %H:%M:%S %Z %Y" which is default "date" command output
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+%
+% %a - abbreviated weekday name,
+% %b - abreviated month name,
+% %e - day of month as a decimal number with leading space (1 to 31),
+% %H - hour (24-hour clock) as a decimal number (00 to 23),
+% %M - minute as a decimal number (00 to 59),
+% %S - seconds as a decimal number (00 to 59),
+% %Z - time-zone name,
+% %Y - year with century as a decimal number,e.g. 2001.
+
+END LC_TIME
+
+LC_MESSAGES
+% FIXME: Check both of these
+% The affirmative response -
+% "^[yY].*"
+yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+
+% The negative response -
+% "^[nN].*"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_ZA"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "en_ZA"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "en_ZA"
+END LC_MEASUREMENT
+
+LC_NAME
+% Format for addressing a person.
+name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+% "%d%t%g%t%m%t%f"
+% "Salutation",
+% "Empty string, or <Space>",
+% "First given name",
+% "Empty string, or <Space>",
+% "Middle names",
+% "Empty string, or <Space>",
+% "Clan names"
+
+% FIXME - define all the following name_*
+% General salutation for any sex
+% name_gen ""
+
+% Salutation for unmarried females - ""
+% name_miss ""
+
+% Salutation for males - ""
+% name_mr ""
+
+% Salutation for married females - ""
+% name_mrs ""
+
+% Salutation valid for all females - "" (no term)
+% name_ms ""
+
+END LC_NAME
+
+LC_ADDRESS
+% Country name in Sotho - "Afrika Borwa"
+country_name "<U0041><U0066><U0072><U0069><U006B><U0061><U0020><U0042><U006F><U0072><U0077><U0061>"
+
+% Abbreviated country postal name - "ZA"
+country_post "<U005A><U0041>"
+
+% ISO 3166 two letter country abbreviation - "ZA"
+country_ab2 "<U005A><U0041>"
+
+% FIXME define the following correctly
+% country_ab3 ""
+% country_car ""
+% country_isbn ""
+% country_num
+
+% Language name in Sotho - "Sesotho"
+lang_name "<U0053><U0065><U0073><U006F><U0074><U0068><U006F>"
+
+% FIXME define the following correctly
+% lang_ab ""
+% lang_term ""
+
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+%
+END LC_ADDRESS
+
diff --git a/localedata/locales/xh_ZA b/localedata/locales/xh_ZA
new file mode 100644
index 0000000..e067df3
--- /dev/null
+++ b/localedata/locales/xh_ZA
@@ -0,0 +1,235 @@
+escape_char /
+comment_char %
+
+% ChangeLog
+% 0.1 (2003-05-08):
+% - Initial Xhosa locale by Zuza Software Foundation
+
+LC_IDENTIFICATION
+title "Xhosa locale for South Africa"
+source "Zuza Software Foundation"
+address "PO Box 13412, Mowbray, 7705, South Africa"
+contact "Dwayne Bailey"
+email "dwayne@translate.org.za"
+tel "+27 (0)21 448 9265"
+fax "+27 (0)21 448 9574"
+language "Xhosa"
+territory "South Africa"
+revision "0.1"
+date "2003-05-08"
+%
+category "xh_ZA:2003";LC_IDENTIFICATION
+category "xh_ZA:2003";LC_CTYPE
+category "xh_ZA:2003";LC_COLLATE
+category "xh_ZA:2003";LC_TIME
+category "xh_ZA:2003";LC_NUMERIC
+category "xh_ZA:2003";LC_MONETARY
+category "xh_ZA:2003";LC_MESSAGES
+category "xh_ZA:2003";LC_PAPER
+category "xh_ZA:2003";LC_NAME
+category "xh_ZA:2003";LC_ADDRESS
+category "xh_ZA:2003";LC_TELEPHONE
+category "xh_ZA:2003";LC_MEASUREMENT
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+% Use the characters described in the charmap file "i18n.tgz"
+copy "i18n"
+END LC_CTYPE
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651 i.e.
+% use the rules there when making ordered lists of words.
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_MONETARY
+copy "en_ZA"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_ZA"
+END LC_NUMERIC
+
+LC_TIME
+% The abbreviations for the week days:
+% - Caw, Mvu, Bin, Tha, Sin, Hla, Mgq
+abday "<U0043><U0061><U0077>";/
+ "<U004D><U0076><U0075>";/
+ "<U0042><U0069><U006E>";/
+ "<U0054><U0068><U0061>";/
+ "<U0053><U0069><U006E>";/
+ "<U0048><U006C><U0061>";/
+ "<U004D><U0067><U0071>"
+%
+% The full names of the week days:
+% - Cawe, Mvulo, Lwesibini, Lwesithathu, Lwesine, Lwesihlanu, Mgqibelo
+day "<U0043><U0061><U0077><U0065>";/
+ "<U004D><U0076><U0075><U006C><U006F>";/
+ "<U004C><U0077><U0065><U0073><U0069><U0062><U0069><U006E><U0069>";/
+ "<U004C><U0077><U0065><U0073><U0069><U0074><U0068><U0061><U0074><U0068><U0075>";/
+ "<U004C><U0077><U0065><U0073><U0069><U006E><U0065>";/
+ "<U004C><U0077><U0065><U0073><U0069><U0068><U006C><U0061><U006E><U0075>";/
+ "<U004D><U0067><U0071><U0069><U0062><U0065><U006C><U006F>"
+%
+% The abbreviations for the months
+% - Jan, Feb, Mat, Epr, Mey, Jun, Jul, Aga, Sep, Okt, Nov, Dis
+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+ "<U004D><U0061><U0074>";"<U0045><U0070><U0072>";/
+ "<U004D><U0065><U0079>";"<U004A><U0075><U006E>";/
+ "<U004A><U0075><U006C>";"<U0041><U0067><U0061>";/
+ "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0076>";"<U0044><U0069><U0073>"
+%
+% The full names of the months -
+% - Janyuwari, Februwari, Matshi, Epreli, Meyi, Juni, Julayi, Agasti, Septemba,
+% Okthoba, Novemba, Disemba
+mon "<U004A><U0061><U006E><U0079><U0075><U0077><U0061><U0072><U0069>";/
+ "<U0046><U0065><U0062><U0072><U0075><U0077><U0061><U0072><U0069>";/
+ "<U004D><U0061><U0074><U0073><U0068><U0069>";/
+ "<U0045><U0070><U0072><U0065><U006C><U0069>";/
+ "<U004D><U0065><U0079><U0069>";/
+ "<U004A><U0075><U006E><U0069>";/
+ "<U004A><U0075><U006C><U0061><U0079><U0069>";/
+ "<U0041><U0067><U0061><U0073><U0074><U0069>";/
+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0061>";/
+ "<U004F><U006B><U0074><U0068><U006F><U0062><U0061>";/
+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0061>";/
+ "<U0044><U0069><U0073><U0065><U006D><U0062><U0061>"
+%
+% Abreviated date and time representation to be referenced by the "%c" field descriptor -
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+% "%a" (weekday name),
+% "%d" (day of month as a decimal number),
+% "%b" (month name),
+% "%Y" (year with century as a decimal number),
+% "%T" (24-hour clock time in format HH:MM:SS),
+% "%Z" (Time zone name)
+%
+% Date representation to be referenced by the "%x" field % descriptor -
+% "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+%
+% Time representation to be referenced by the "%X" field descriptor -
+% "%T" (24-hour clock time in format HH:MM:SS)
+t_fmt "<U0025><U0054>"
+%
+% Define representation of ante meridiem and post meridiem strings -
+% The ""s means default to "AM" and "PM".
+am_pm "";""
+%
+% Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
+% field descriptor -
+% The "" means that this format is not supported.
+t_fmt_ampm ""
+%
+% Date representation not described in ISO/IEC 14652.
+% Comes out as - "%a %b %e %H:%M:%S %Z %Y"
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+% which is:
+% abbreviated weekday name,
+% day of month as a decimal number (01 to 31),
+% day of month as a decimal number with leading space (1 to 31),
+% hour (24-hour clock) as a decimal number (00 to 23),
+% minute as a decimal number (00 to 59),
+% seconds as a decimal number (00 to 59),
+% time-zone name,
+% year with century as a decimal number,e.g. 2001.
+%
+END LC_TIME
+
+LC_MESSAGES
+% The affirmative response -
+% "^[yYeE].*"
+yesexpr "<U005E><U005B><U0079><U0059><U0065><U0045><U005D><U002E><U002A>"
+%
+% The negative response -
+% "^[nNhH].*"
+noexpr "<U005E><U005B><U006E><U004E><U0068><U0048><U005D><U002E><U002A>"
+%
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_ZA"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "en_ZA"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "en_ZA"
+END LC_MEASUREMENT
+
+LC_NAME
+% Format for addressing a person.
+name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+% "%d%t%g%t%m%t%f"
+% "Salutation",
+% "Empty string, or <Space>",
+% "First given name",
+% "Empty string, or <Space>",
+% "Middle names",
+% "Empty string, or <Space>",
+% "Clan names"
+%
+% Salutation for unmarried females - "Nkosazana"
+name_miss "<U004E><U006B><U006F><U0073><U0061><U007A><U0061><U006E><U0061>"
+%
+% Salutation for males - "Mnumzana"
+name_mr "<U004D><U006E><U0075><U006D><U007A><U0061><U006E><U0061>"
+%
+% Salutation for married females - "Nkosikazi"
+name_mrs "<U004E><U006B><U006F><U0073><U0069><U006B><U0061><U007A><U0069>"
+%
+% Salutation valid for all females - "" (no term)
+name_ms ""
+END LC_NAME
+
+LC_ADDRESS
+% Country name in Xhosa - "Mzantsi Afrika"
+country_name "<U004D><U007A><U0061><U006E><U0074><U0073><U0069><U0020>/
+<U0041><U0066><U0072><U0069><U006B><U0061>"
+%
+% Abbreviated country postal name - "ZA"
+country_post "<U005A><U0041>"
+%
+% ISO 3166 two letter country abbreviation - "ZA"
+country_ab2 "<U005A><U0041>"
+%
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+%
+END LC_ADDRESS
+
diff --git a/localedata/locales/zu_ZA b/localedata/locales/zu_ZA
new file mode 100644
index 0000000..a0eed1c
--- /dev/null
+++ b/localedata/locales/zu_ZA
@@ -0,0 +1,241 @@
+escape_char /
+comment_char %
+
+% ChangeLog
+% 0.1 (2003-04-19):
+% - Initial Zulu locale by Zuza Software Foundation
+
+LC_IDENTIFICATION
+title "Zulu locale for South Africa"
+source "Zuza Software Foundation"
+address "PO Box 13412, Mowbray, 7705, South Africa"
+contact "Dwayne Bailey"
+email "dwayne@translate.org.za"
+tel "+27 (0)21 448 9265"
+fax "+27 (0)21 448 9574"
+language "Zulu"
+territory "South Africa"
+revision "0.1"
+date "2003-04-19"
+%
+category "zu_ZA:2003";LC_IDENTIFICATION
+category "zu_ZA:2003";LC_CTYPE
+category "zu_ZA:2003";LC_COLLATE
+category "zu_ZA:2003";LC_TIME
+category "zu_ZA:2003";LC_NUMERIC
+category "zu_ZA:2003";LC_MONETARY
+category "zu_ZA:2003";LC_MESSAGES
+category "zu_ZA:2003";LC_PAPER
+category "zu_ZA:2003";LC_NAME
+category "zu_ZA:2003";LC_ADDRESS
+category "zu_ZA:2003";LC_TELEPHONE
+category "zu_ZA:2003";LC_MEASUREMENT
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+% Use the characters described in the charmap file "i18n.tgz"
+%
+copy "i18n"
+END LC_CTYPE
+
+LC_COLLATE
+% Copy the template from ISO/IEC 14651 i.e.
+% use the rules there when making ordered lists of words.
+%
+copy "iso14651_t1"
+END LC_COLLATE
+
+LC_MONETARY
+copy "en_ZA"
+END LC_MONETARY
+
+LC_NUMERIC
+copy "en_ZA"
+END LC_NUMERIC
+
+LC_TIME
+% abday - The abbreviations for the week days:
+% - Son, Mso, Bil, Tha, Sin, Hla, Mgq
+abday "<U0053><U006F><U006E>";/
+ "<U004D><U0073><U006F>";/
+ "<U0042><U0069><U006C>";/
+ "<U0054><U0068><U0061>";/
+ "<U0053><U0069><U006E>";/
+ "<U0048><U006C><U0061>";/
+ "<U004D><U0067><U0071>"
+
+% day - The full names of the week days:
+% - Sonto, Msombuluko, Lwesibili, Lwesithathu, Lwesine, Lwesihlanu, Mgqibelo
+day "<U0053><U006F><U006E><U0074><U006F>";/
+ "<U004D><U0073><U006F><U006D><U0062><U0075><U006C><U0075><U006B><U006F>";/
+ "<U004C><U0077><U0065><U0073><U0069><U0062><U0069><U006C><U0069>";/
+ "<U004C><U0077><U0065><U0073><U0069><U0074><U0068><U0061><U0074><U0068><U0075>";/
+ "<U004C><U0077><U0065><U0073><U0069><U006E><U0065>";/
+ "<U004C><U0077><U0065><U0073><U0069><U0068><U006C><U0061><U006E><U0075>";/
+ "<U004D><U0067><U0071><U0069><U0062><U0065><U006C><U006F>"
+
+% abmon - The abbreviations for the months
+% - Jan, Feb, Mas, Apr, Mey, Jun, Jul, Aga, Sep, Okt, Nov, Dis
+abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+ "<U004D><U0061><U0073>";"<U0041><U0070><U0072>";/
+ "<U004D><U0065><U0079>";"<U004A><U0075><U006E>";/
+ "<U004A><U0075><U006C>";"<U0041><U0067><U0061>";/
+ "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+ "<U004E><U006F><U0076>";"<U0044><U0069><U0073>"
+
+% mon - The full names of the months -
+% - Januwari, Februwari, Mashi, Apreli, Meyi, Juni, Julayi, Agasti, Septemba,
+% Okthoba, Novemba, Disemba
+mon "<U004A><U0061><U006E><U0075><U0077><U0061><U0072><U0069>";/
+ "<U0046><U0065><U0062><U0072><U0075><U0077><U0061><U0072><U0069>";/
+ "<U004D><U0061><U0073><U0068><U0069>";/
+ "<U0041><U0070><U0072><U0065><U006C><U0069>";/
+ "<U004D><U0065><U0079><U0069>";/
+ "<U004A><U0075><U006E><U0069>";/
+ "<U004A><U0075><U006C><U0061><U0079><U0069>";/
+ "<U0041><U0067><U0061><U0073><U0074><U0069>";/
+ "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0061>";/
+ "<U004F><U006B><U0074><U0068><U006F><U0062><U0061>";/
+ "<U004E><U006F><U0076><U0065><U006D><U0062><U0061>";/
+ "<U0044><U0069><U0073><U0065><U006D><U0062><U0061>"
+
+% Abreviated date and time representation to be referenced by the "%c" field descriptor -
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+%
+% "%a" (short weekday name),
+% "%d" (day of month as a decimal number),
+% "%b" (short month name),
+% "%Y" (year with century as a decimal number),
+% "%T" (24-hour clock time in format HH:MM:SS),
+% "%Z" (Time zone name)
+
+% Date representation to be referenced by the "%x" field descriptor -
+% "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+
+% Time representation to be referenced by the "%X" field descriptor -
+% "%T" (24-hour clock time in format HH:MM:SS)
+t_fmt "<U0025><U0054>"
+
+% Define representation of ante meridiem and post meridiem strings -
+% The ""s mean default to "AM" and "PM".
+am_pm "";""
+
+% Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
+% field descriptor -
+% The "" means that this format is not supported.
+t_fmt_ampm ""
+
+% Date representation not described in ISO/IEC 14652. Comes out as -
+% "%a %b %e %H:%M:%S %Z %Y"
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+% which is
+% %a - abbreviated weekday name,
+% %b - abreviated month name,
+% %e - day of month as a decimal number with leading space (1 to 31),
+% %H - hour (24-hour clock) as a decimal number (00 to 23),
+% %M - minute as a decimal number (00 to 59),
+% %S - seconds as a decimal number (00 to 59),
+% %Z - time-zone name,
+% %Y - year with century as a decimal number,e.g. 2001.
+
+END LC_TIME
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+% The affirmative response -
+% "^[yY].*"
+%
+noexpr "<U005E><U005B><U006E><U004E><U0063><U0043><U005D><U002E><U002A>"
+% The negative response -
+% "^[nNcC].*"
+%
+END LC_MESSAGES
+
+LC_PAPER
+copy "en_ZA"
+END LC_PAPER
+
+LC_TELEPHONE
+copy "en_ZA"
+END LC_TELEPHONE
+
+LC_MEASUREMENT
+copy "en_ZA"
+END LC_MEASUREMENT
+
+LC_NAME
+name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+<U0025><U006D><U0025><U0074><U0025><U0066>"
+% Format for addressing a person.
+% "%d%t%g%t%m%t%f"
+% "Salutation",
+% "Empty string, or <Space>",
+% "First given name",
+% "Empty string, or <Space>",
+% "Middle names",
+% "Empty string, or <Space>",
+% "Clan names"
+%
+name_miss "<U004E><U006B><U006F><U0073><U0061><U007A><U0061><U006E><U0065>"
+% Salutation for unmarried females - "Nkosazane"
+%
+name_mr "<U004D><U006E><U0075><U006D><U007A><U0061><U006E><U0065>"
+% Salutation for males - "Mnumzane"
+%
+name_mrs "<U004E><U006B><U006F><U0073><U0069><U006B><U0061><U007A><U0069>"
+% Salutation for married females - "Nkosikazi"
+%
+name_ms ""
+% Salutation valid for all females - "" (no term)
+END LC_NAME
+
+LC_ADDRESS
+country_name "<U004D><U007A><U0061><U006E><U0073><U0069><U0020>/
+<U0041><U0066><U0072><U0069><U006B><U0061>"
+% Country name in Zulu - "Mzansi Afrika"
+%
+country_post "<U005A><U0041>"
+% Abbreviated country postal name - "ZA"
+%
+country_ab2 "<U005A><U0041>"
+% ISO 3166 two letter country abbreviation - "ZA"
+%
+lang_name "<U0049><U0073><U0069><U007A><U0075><U006C><U0075>"
+% Language name in Zulu - "Isizulu"
+%
+postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+% Representation of postal addresses (minus the addressee's name) in South
+% Africa. (Ignored for now)
+% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N", which gives -
+% "firm name",
+% "end of line",
+% "C/O address",
+% "end of line",
+% "department name",
+% "Building name",
+% "end of line",
+% "street or block name",
+% "space",
+% "house number or designation",
+% "space",
+% "floor number",
+% "space",
+% "room number, door designation",
+% "end of line",
+% "postal code",
+% "space",
+% "town, city",
+% "end of line",
+% "country designation for the <country_post> keyword",
+% "end of line
+%
+END LC_ADDRESS
+
diff --git a/manual/llio.texi b/manual/llio.texi
index e9b5573..4ac6c5f 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -1542,19 +1542,28 @@ empty set.
@comment BSD
@deftypefn Macro void FD_SET (int @var{filedes}, fd_set *@var{set})
This macro adds @var{filedes} to the file descriptor set @var{set}.
+
+The @var{filedes} parameter must not have side effects since it is
+evaluated more than once.
@end deftypefn
@comment sys/types.h
@comment BSD
@deftypefn Macro void FD_CLR (int @var{filedes}, fd_set *@var{set})
This macro removes @var{filedes} from the file descriptor set @var{set}.
+
+The @var{filedes} parameter must not have side effects since it is
+evaluated more than once.
@end deftypefn
@comment sys/types.h
@comment BSD
-@deftypefn Macro int FD_ISSET (int @var{filedes}, fd_set *@var{set})
+@deftypefn Macro int FD_ISSET (int @var{filedes}, const fd_set *@var{set})
This macro returns a nonzero value (true) if @var{filedes} is a member
of the file descriptor set @var{set}, and zero (false) otherwise.
+
+The @var{filedes} parameter must not have side effects since it is
+evaluated more than once.
@end deftypefn
Next, here is the description of the @code{select} function itself.
diff --git a/manual/resource.texi b/manual/resource.texi
index 9d2e17b..0c394f2 100644
--- a/manual/resource.texi
+++ b/manual/resource.texi
@@ -558,6 +558,7 @@ POSIX syntax had in mind.
* Realtime Scheduling:: Scheduling among the process nobility
* Basic Scheduling Functions:: Get/set scheduling policy, priority
* Traditional Scheduling:: Scheduling among the vulgar masses
+* CPU Affinity:: Limiting execution to certain CPUs
@end menu
@@ -1246,6 +1247,180 @@ nice (int increment)
@end smallexample
@end deftypefun
+
+@node CPU Affinity
+@subsection Limiting execution to certain CPUs
+
+On a multi-processor system the operating system usually distributes
+the different processes which are runnable on all available CPUs in a
+way which allows the system to work most efficiently. Which processes
+and threads run can be to some extend be control with the scheduling
+functionality described in the last sections. But which CPU finally
+executes which process or thread is not covered.
+
+There are a number of reasons why a program might want to have control
+over this aspect of the system as well:
+
+@itemize @bullet
+@item
+One thread or process is responsible for absolutely critical work
+which under no circumstances must be interrupted or hindered from
+making process by other process or threads using CPU resources. In
+this case the special process would be confined to a CPU which no
+other process or thread is allowed to use.
+
+@item
+The access to certain resources (RAM, I/O ports) has different costs
+from different CPUs. This is the case in NUMA (Non-Uniform Memory
+Architecture) machines. Preferrably memory should be accessed locally
+but this requirement is usually not visible to the scheduler.
+Therefore forcing a process or thread to the CPUs which have local
+access to the mostly used memory helps to significantly boost the
+performance.
+
+@item
+In controlled runtimes resource allocation and book-keeping work (for
+instance garbage collection) is performance local to processors. This
+can help to reduce locking costs if the resources do not have to be
+protected from concurrent accesses from different processors.
+@end itemize
+
+The POSIX standard up to this date is of not much help to solve this
+problem. The Linux kernel provides a set of interfaces to allow
+specifying @emph{affinity sets} for a process. The scheduler will
+schedule the thread or process on on CPUs specified by the affinity
+masks. The interfaces which the GNU C library define follow to some
+extend the Linux kernel interface.
+
+@comment sched.h
+@comment GNU
+@deftp {Data Type} cpu_set_t
+This data set is a bitset where each bit represents a CPU. How the
+system's CPUs are mapped to bits in the bitset is system dependent.
+The data type has a fixed size; in the unlikely case that the number
+of bits are not sufficient to describe the CPUs of the system a
+different interface has to be used.
+
+This type is a GNU extension and is defined in @file{sched.h}.
+@end deftp
+
+To manipulate the bitset, to set and reset bits, a number of macros is
+defined. Some of the macros take a CPU number as a parameter. Here
+it is important to never exceed the size of the bitset. The following
+macro specifies the number of bits in the @code{cpu_set_t} bitset.
+
+@comment sched.h
+@comment GNU
+@deftypevr Macro int CPU_SETSIZE
+The value of this macro is the maximum number of CPUs which can be
+handled with a @code{cpu_set_t} object.
+@end deftypevr
+
+The type @code{cpu_set_t} should be considered opaque; all
+manipulation should happen via the next four macros.
+
+@comment sched.h
+@comment GNU
+@deftypefn Macro void CPU_ZERO (cpu_set_t *@var{set})
+This macro initializes the CPU set @var{set} to be the empty set.
+
+This macro is a GNU extension and is defined in @file{sched.h}.
+@end deftypefn
+
+@comment sched.h
+@comment GNU
+@deftypefn Macro void CPU_SET (int @var{cpu}, cpu_set_t *@var{set})
+This macro adds @var{cpu} to the CPU set @var{set}.
+
+The @var{cpu} parameter must not have side effects since it is
+evaluated more than once.
+
+This macro is a GNU extension and is defined in @file{sched.h}.
+@end deftypefn
+
+@comment sched.h
+@comment GNU
+@deftypefn Macro void CPU_CLR (int @var{cpu}, cpu_set_t *@var{set})
+This macro removes @var{cpu} from the CPU set @var{set}.
+
+The @var{cpu} parameter must not have side effects since it is
+evaluated more than once.
+
+This macro is a GNU extension and is defined in @file{sched.h}.
+@end deftypefn
+
+@comment sched.h
+@comment GNU
+@deftypefn Macro int CPU_ISSET (int @var{cpu}, const cpu_set_t *@var{set})
+This macro returns a nonzero value (true) if @var{cpu} is a member
+of the CPU set @var{set}, and zero (false) otherwise.
+
+The @var{cpu} parameter must not have side effects since it is
+evaluated more than once.
+
+This macro is a GNU extension and is defined in @file{sched.h}.
+@end deftypefn
+
+
+CPU bitsets can be constructed from scratch or the currently installed
+affinity mask can be retrieved from the system.
+
+@comment sched.h
+@comment GNU
+@deftypefun int sched_getaffinity (pid_t @var{pid}, cpu_set_t *@var{cpuset})
+
+This functions stores the CPU affinity mask for the process or thread
+with the ID @var{pid} in the memory pointed to by @var{cpuset}. If
+successful, the function always initializes all bits in the
+@code{cpu_set_t} object and returns zero.
+
+If @var{pid} does not correspond to a process or thread on the system
+the or the function fails for some other reason, it returns @code{-1}
+and @code{errno} is set to represent the error condition.
+
+@table @code
+@item ESRCH
+No process or thread with the given ID found.
+
+@item EFAULT
+The pointer @var{cpuset} is does not point to a valid object.
+@end table
+
+This function is a GNU extension and is declared in @file{sched.h}.
+@end deftypefun
+
+Note that it is not portably possible to use this information to
+retrieve the information for different POSIX threads. A separate
+interface must be provided for that.
+
+@comment sched.h
+@comment GNU
+@deftypefun int sched_setaffinity (pid_t @var{pid}, const cpu_set_t *@var{cpuset})
+
+This function installs the affinity mask pointed to by @var{cpuset}
+for the process or thread with the ID @var{pid}. If successful the
+function returns zero and the scheduler will in future take the
+affinity information into account.
+
+If the function fails it will return @code{-1} and @code{errno} is set
+to the error code:
+
+@table @code
+@item ESRCH
+No process or thread with the given ID found.
+
+@item EFAULT
+The pointer @var{cpuset} is does not point to a valid object.
+
+@item EINVAL
+The bitset is not valid. This might mean that the affinity set might
+not leave a processor for the process or thread to run on.
+@end table
+
+This function is a GNU extension and is declared in @file{sched.h}.
+@end deftypefun
+
+
@node Memory Resources
@section Querying memory available resources
diff --git a/sysdeps/pthread/lio_listio64.c b/sysdeps/pthread/lio_listio64.c
index 0249a05..165ce05 100644
--- a/sysdeps/pthread/lio_listio64.c
+++ b/sysdeps/pthread/lio_listio64.c
@@ -1,5 +1,5 @@
/* Enqueue and list of read or write requests, 64bit offset version.
- Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@@ -42,6 +42,7 @@ lio_listio64 (mode, list, nent, sig)
int nent;
struct sigevent *sig;
{
+ struct sigevent defsigev;
struct requestlist *requests[nent];
int cnt;
volatile int total = 0;
@@ -54,6 +55,12 @@ lio_listio64 (mode, list, nent, sig)
return -1;
}
+ if (sig == NULL)
+ {
+ defsigev.sigev_notify = SIGEV_NONE;
+ sig = &defsigev;
+ }
+
/* Request the mutex. */
pthread_mutex_lock (&__aio_requests_mutex);
diff --git a/sysdeps/unix/sysv/linux/Dist b/sysdeps/unix/sysv/linux/Dist
index 6cae4ca..f9f6a1a 100644
--- a/sysdeps/unix/sysv/linux/Dist
+++ b/sysdeps/unix/sysv/linux/Dist
@@ -40,7 +40,6 @@ netax25/ax25.h
neteconet/ec.h
netinet/if_fddi.h
netinet/if_tr.h
-netinet/igmp.h
netpacket/packet.h
netipx/ipx.h
netrom/netrom.h
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 9df9d6a..d402dd1 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -116,7 +116,7 @@ sysdep_routines += exit-thread
endif
ifeq ($(subdir),inet)
-sysdep_headers += netinet/if_fddi.h netinet/if_tr.h netinet/igmp.h \
+sysdep_headers += netinet/if_fddi.h netinet/if_tr.h \
netipx/ipx.h netash/ash.h netax25/ax25.h netatalk/at.h \
netrom/netrom.h netpacket/packet.h netrose/rose.h \
neteconet/ec.h