Message ID | 20181212150740.19432-1-jcmvbkbc@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [uclibc-ng-devel] xtensa: add custom bits/poll.h | expand |
Hi Max, thanks, applied and pushed, best regards Waldemar Max Filippov wrote, > Definitions of POLLWRNORM, POLLWRBAND and POLLREMOVE in xtensa linux > kernel are non-standard. Provide bits/poll.h with correct values for > these constants. > > This fixes the following strace build errors: > > In file included from xlat/pollflags.h:4:0, > from poll.c:34: > ./static_assert.h:40:24: error: static assertion failed: "POLLWRBAND != 0x0100" > # define static_assert _Static_assert > ^ > xlat/pollflags.h:75:1: note: in expansion of macro ‘static_assert’ > static_assert((POLLWRBAND) == (0x0100), "POLLWRBAND != 0x0100"); > ^~~~~~~~~~~~~ > ./static_assert.h:40:24: error: static assertion failed: "POLLREMOVE != 0x0800" > # define static_assert _Static_assert > ^ > xlat/pollflags.h:117:1: note: in expansion of macro ‘static_assert’ > static_assert((POLLREMOVE) == (0x0800), "POLLREMOVE != 0x0800"); > ^~~~~~~~~~~~~ > > Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> > --- > libc/sysdeps/linux/xtensa/bits/poll.h | 49 +++++++++++++++++++++++++++++++++++ > 1 file changed, 49 insertions(+) > create mode 100644 libc/sysdeps/linux/xtensa/bits/poll.h > > diff --git a/libc/sysdeps/linux/xtensa/bits/poll.h b/libc/sysdeps/linux/xtensa/bits/poll.h > new file mode 100644 > index 000000000000..4588cc326006 > --- /dev/null > +++ b/libc/sysdeps/linux/xtensa/bits/poll.h > @@ -0,0 +1,49 @@ > +/* Copyright (C) 1997, 2001, 2006 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 > + modify it under the terms of the GNU Lesser General Public > + License as published by the Free Software Foundation; either > + version 2.1 of the License, or (at your option) any later version. > + > + The GNU C Library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with the GNU C Library; if not, see > + <http://www.gnu.org/licenses/>. */ > + > +#ifndef _SYS_POLL_H > +# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead." > +#endif > + > +/* Event types that can be polled for. These bits may be set in `events' > + to indicate the interesting event types; they will appear in `revents' > + to indicate the status of the file descriptor. */ > +#define POLLIN 0x001 /* There is data to read. */ > +#define POLLPRI 0x002 /* There is urgent data to read. */ > +#define POLLOUT 0x004 /* Writing now will not block. */ > + > +#ifdef __USE_XOPEN > +/* These values are defined in XPG4.2. */ > +# define POLLRDNORM 0x040 /* Normal data may be read. */ > +# define POLLRDBAND 0x080 /* Priority data may be read. */ > +# define POLLWRNORM POLLOUT /* Writing now will not block. */ > +# define POLLWRBAND 0x100 /* Priority data may be written. */ > +#endif > + > +#ifdef __USE_GNU > +/* These are extensions for Linux. */ > +# define POLLMSG 0x400 > +# define POLLREMOVE 0x800 > +# define POLLRDHUP 0x2000 > +#endif > + > +/* Event types always implicitly polled for. These bits need not be set in > + `events', but they will appear in `revents' to indicate the status of > + the file descriptor. */ > +#define POLLERR 0x008 /* Error condition. */ > +#define POLLHUP 0x010 /* Hung up. */ > +#define POLLNVAL 0x020 /* Invalid polling request. */ > -- > 2.11.0 > > _______________________________________________ > linux-xtensa mailing list > linux-xtensa@linux-xtensa.org > http://lists.linux-xtensa.org/mailman/listinfo/linux-xtensa
diff --git a/libc/sysdeps/linux/xtensa/bits/poll.h b/libc/sysdeps/linux/xtensa/bits/poll.h new file mode 100644 index 000000000000..4588cc326006 --- /dev/null +++ b/libc/sysdeps/linux/xtensa/bits/poll.h @@ -0,0 +1,49 @@ +/* Copyright (C) 1997, 2001, 2006 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_POLL_H +# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead." +#endif + +/* Event types that can be polled for. These bits may be set in `events' + to indicate the interesting event types; they will appear in `revents' + to indicate the status of the file descriptor. */ +#define POLLIN 0x001 /* There is data to read. */ +#define POLLPRI 0x002 /* There is urgent data to read. */ +#define POLLOUT 0x004 /* Writing now will not block. */ + +#ifdef __USE_XOPEN +/* These values are defined in XPG4.2. */ +# define POLLRDNORM 0x040 /* Normal data may be read. */ +# define POLLRDBAND 0x080 /* Priority data may be read. */ +# define POLLWRNORM POLLOUT /* Writing now will not block. */ +# define POLLWRBAND 0x100 /* Priority data may be written. */ +#endif + +#ifdef __USE_GNU +/* These are extensions for Linux. */ +# define POLLMSG 0x400 +# define POLLREMOVE 0x800 +# define POLLRDHUP 0x2000 +#endif + +/* Event types always implicitly polled for. These bits need not be set in + `events', but they will appear in `revents' to indicate the status of + the file descriptor. */ +#define POLLERR 0x008 /* Error condition. */ +#define POLLHUP 0x010 /* Hung up. */ +#define POLLNVAL 0x020 /* Invalid polling request. */
Definitions of POLLWRNORM, POLLWRBAND and POLLREMOVE in xtensa linux kernel are non-standard. Provide bits/poll.h with correct values for these constants. This fixes the following strace build errors: In file included from xlat/pollflags.h:4:0, from poll.c:34: ./static_assert.h:40:24: error: static assertion failed: "POLLWRBAND != 0x0100" # define static_assert _Static_assert ^ xlat/pollflags.h:75:1: note: in expansion of macro ‘static_assert’ static_assert((POLLWRBAND) == (0x0100), "POLLWRBAND != 0x0100"); ^~~~~~~~~~~~~ ./static_assert.h:40:24: error: static assertion failed: "POLLREMOVE != 0x0800" # define static_assert _Static_assert ^ xlat/pollflags.h:117:1: note: in expansion of macro ‘static_assert’ static_assert((POLLREMOVE) == (0x0800), "POLLREMOVE != 0x0800"); ^~~~~~~~~~~~~ Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> --- libc/sysdeps/linux/xtensa/bits/poll.h | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 libc/sysdeps/linux/xtensa/bits/poll.h