This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi all, On Fri, 2015-11-27 at 14:04 +0100, Corinna Vinschen wrote: > On Nov 27 19:08, Nick Withers wrote: > > On Fri, 2015-11-27 at 09:03 +0100, Sebastian Huber wrote: > > > > > > On 27/11/15 08:46, Nick Withers wrote: > > > > On Fri, 2015-11-27 at 08:26 +0100, Sebastian Huber wrote: > > > > > > > > > > > > On 26/11/15 10:17, Corinna Vinschen wrote: > > > > > > > > > > > > Looks good. I need some time to use this in > > > > > > > > > > > > RTEMS, > > > > > > > > > > > > since I am > > > > > > > > > > > > currently busy > > > > > > > > > > > > > > > > with other stuff and this is only a > > > > > > > > > > > > > > > > nice to > > > > > > > > > > > > > > > > have. > > > > > > > > > > > > > > > > > > > > > > > > That's ok, I'm pretty busy myself. Can you > > > > > > > > > > > > ping > > > > > > > > > > > > back as soon > > > > > > > > > > > > as you > > > > > > > > > > > > tested this? > > > > > > > > Did you test this in the meantime? > > > > > > > > > > > > Sorry, please don't wait for me. It will be next year > > > > > > before I > > > > > > can > > > > > > work > > > > > > on this. > > I'm sorry to read that. > > > > > Is this the kind of thing a humble RTEMS user might be able to > > > > figure > > > > out? > > > > > > > > It sounds like I'd have to do some hacking on / remove RTEMS' > > > > sys/select.h at least? > > > > > > The goal is to use a Newlib <sys/select.h> that is capable to > > > replace > > > these two files: > > > > > > https://git.rtems.org/rtems/tree/cpukit/libnetworking/sys/select. > > > h > > > https://git.rtems.org/rtems-libbsd/tree/freebsd/sys/sys/select.h > > > > > > What complicates the things a bit is that the FreeBSD file uses > > > > > > https://git.rtems.org/rtems-libbsd/tree/freebsd/sys/sys/_sigset.h > > > > > > which is used by other header files as well. > > > > Righto, thanks Sebastian. > > > > I'm heading off for the weekend, but if I don't hear anything I'll > > have > > a crack at it on Monday. > > The first thing would be to check if sys/select.h from Cygwin is > sufficent for RTEMS as well, provided you apply my patch from > https://sourceware.org/ml/newlib/2015/msg00832.html and move the > resulting winsup/cygwin/include/sys/select.h to > newlib/libc/include/sys. > > If that works fine, I apply my patch. I haven't yet tackled the rtems-libbsd part Sebastian mentioned, but have made some progress. With the attached newlib-sys_select.patch* and rtems-sys_select.patch** patches applied to Newlib and RTEMS Git masters respectively, the RTEMS tests "syscall01" and "psxreaddir" seem to pass through PSim (psim -syscall01.out and psxreaddir.out). How do folk feel about this so far? * newlib/libc/sys/arm/sys/param.h changes are untested ** I - used the RSB master to build 4.12 tools - removed the BSD advertising clause from what's now sys/selinfo.h, but am not sure that I should have - made a few unrelated but minor changes to cpukit/libmisc/shell/*.c printf()s to ensure format specifiers matched parameter types - disabled dltests on PSim after running out of space (in .rodata from memory) building dl02; dl01 did build fine, though -- Nick Withers Embedded Systems Programmer Department of Nuclear Physics, Research School of Physics and Engineering The Australian National University (CRICOS: 00120C)
Attachment:
psim-psxreaddir.out
Description: Text document
Attachment:
psim-syscall01.out
Description: Text document
diff --git a/newlib/libc/include/sys/param.h b/newlib/libc/include/sys/param.h index ef203d3..9a6f115 100644 --- a/newlib/libc/include/sys/param.h +++ b/newlib/libc/include/sys/param.h @@ -10,6 +10,9 @@ #include <machine/endian.h> #include <machine/param.h> +#ifndef NBBY +# define NBBY 8 /* number of bits in a byte */ +#endif #ifndef HZ # define HZ (60) #endif @@ -25,4 +28,8 @@ #define MAX(a,b) ((a) > (b) ? (a) : (b)) #define MIN(a,b) ((a) < (b) ? (a) : (b)) +#ifndef howmany +#define howmany(x, y) (((x)+((y)-1))/(y)) +#endif + #endif diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h index d8d6fdc..5dd6c75 100644 --- a/newlib/libc/include/sys/types.h +++ b/newlib/libc/include/sys/types.h @@ -208,52 +208,6 @@ typedef unsigned int mode_t _ST_INT32; typedef unsigned short nlink_t; -/* We don't define fd_set and friends if we are compiling POSIX - source, or if we have included (or may include as indicated - by __USE_W32_SOCKETS) the W32api winsock[2].h header which - defines Windows versions of them. Note that a program which - includes the W32api winsock[2].h header must know what it is doing; - it must not call the cygwin32 select function. -*/ -# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) -# define _SYS_TYPES_FD_SET -# define NBBY 8 /* number of bits in a byte */ -/* - * Select uses bit masks of file descriptors in longs. - * These macros manipulate such bit fields (the filesystem macros use chars). - * FD_SETSIZE may be defined by the user, but the default here - * should be >= NOFILE (param.h). - */ -# ifndef FD_SETSIZE -# define FD_SETSIZE 64 -# endif - -typedef long fd_mask; -# define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */ -# ifndef howmany -# define howmany(x,y) (((x)+((y)-1))/(y)) -# endif - -/* We use a macro for fd_set so that including Sockets.h afterwards - can work. */ -typedef struct _types_fd_set { - fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; -} _types_fd_set; - -#define fd_set _types_fd_set - -# define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS))) -# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS))) -# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS))) -# define FD_ZERO(p) (__extension__ (void)({ \ - size_t __i; \ - char *__tmp = (char *)p; \ - for (__i = 0; __i < sizeof (*(p)); ++__i) \ - *__tmp++ = 0; \ -})) - -# endif /* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) */ - #undef __MS_types__ #undef _ST_INT32 diff --git a/newlib/libc/sys/arm/sys/param.h b/newlib/libc/sys/arm/sys/param.h index b358734..5b9464c 100644 --- a/newlib/libc/sys/arm/sys/param.h +++ b/newlib/libc/sys/arm/sys/param.h @@ -6,6 +6,9 @@ #include <machine/param.h> #include <machine/endian.h> +#ifndef NBBY +# define NBBY 8 /* number of bits in a byte */ +#endif #ifndef HZ # define HZ (60) #endif diff --git a/newlib/libc/sys/rtems/include/sys/param.h b/newlib/libc/sys/rtems/include/sys/param.h index f1e598c..aa04352 100644 --- a/newlib/libc/sys/rtems/include/sys/param.h +++ b/newlib/libc/sys/rtems/include/sys/param.h @@ -109,6 +109,7 @@ #define NZERO 0 /* default "nice" */ +#define NBBY 8 /* number of bits in a byte */ #define NBPW sizeof(int) /* number of bytes per word (integer) */ #define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */ diff --git a/winsup/cygwin/include/sys/select.h b/winsup/cygwin/include/sys/select.h index 9cc6c1e..ffe8900 100644 --- a/winsup/cygwin/include/sys/select.h +++ b/winsup/cygwin/include/sys/select.h @@ -12,7 +12,14 @@ details. */ #ifndef _SYS_SELECT_H #define _SYS_SELECT_H -#if !defined (_POSIX_SOURCE) && !defined (__INSIDE_CYGWIN_NET__) && !defined (__USE_W32_SOCKETS) +/* We don't define fd_set and friends if we are compiling POSIX + source, or if we have included (or may include as indicated + by __USE_W32_SOCKETS) the W32api winsock[2].h header which + defines Windows versions of them. Note that a program which + includes the W32api winsock[2].h header must know what it is doing; + it must not call the Cygwin select function. +*/ +# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) #include <sys/cdefs.h> @@ -26,6 +33,43 @@ details. */ /* Get definition of sigset_t. */ #include <signal.h> +# define _SYS_TYPES_FD_SET +/* + * Select uses bit masks of file descriptors in longs. + * These macros manipulate such bit fields (the filesystem macros use chars). + * FD_SETSIZE may be defined by the user, but the default here + * should be >= NOFILE (param.h). + */ +# ifndef FD_SETSIZE +# define FD_SETSIZE 64 +# endif + +typedef unsigned long fd_mask; +# define NFDBITS (sizeof (fd_mask) * 8) /* bits per mask */ +# ifndef _howmany +# define _howmany(x,y) (((x)+((y)-1))/(y)) +# endif + +/* We use a macro for fd_set so that including Sockets.h afterwards + can work. */ +typedef struct _types_fd_set { + fd_mask fds_bits[_howmany(FD_SETSIZE, NFDBITS)]; +} _types_fd_set; + +#define fd_set _types_fd_set + +# define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS))) +# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS))) +# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS))) +# define FD_ZERO(p) (__extension__ (void)({ \ + size_t __i; \ + char *__tmp = (char *)p; \ + for (__i = 0; __i < sizeof (*(p)); ++__i) \ + *__tmp++ = 0; \ +})) + +#if !defined (__INSIDE_CYGWIN_NET__) + __BEGIN_DECLS int select __P ((int __n, fd_set *__readfds, fd_set *__writefds, @@ -36,6 +80,8 @@ int pselect __P ((int __n, fd_set *__readfds, fd_set *__writefds, __END_DECLS +#endif + #endif /* !_POSIX_SOURCE, !__INSIDE_CYGWIN_NET__ */ #endif /* sys/select.h */
From 00a7b0b1ebf6a29fcaf63f9603210653f2858604 Mon Sep 17 00:00:00 2001 From: Nick Withers <Nick.Withers@anu.edu.au> Date: Thu, 3 Dec 2015 18:36:19 +1100 Subject: [PATCH] Chase Newlib sys/types.h / sys/select.h changes --- .../powerpc/psim/make/custom/psim-testsuite.tcfg | 5 ++ cpukit/libmisc/shell/main_ls.c | 3 +- cpukit/libmisc/shell/print-ls.c | 10 ++-- cpukit/libnetworking/Makefile.am | 2 +- cpukit/libnetworking/libc/res_send.c | 3 + cpukit/libnetworking/preinstall.am | 6 +- cpukit/libnetworking/rtems/rtems_select.c | 1 + cpukit/libnetworking/sys/select.h | 69 ---------------------- cpukit/libnetworking/sys/selinfo.h | 56 ++++++++++++++++++ cpukit/libnetworking/sys/socketvar.h | 2 +- cpukit/librpc/include/rpc/svc.h | 1 + cpukit/librpc/src/rpc/clnt_tcp.c | 1 + cpukit/librpc/src/rpc/clnt_udp.c | 1 + cpukit/librpc/src/rpc/pmap_rmt.c | 1 + cpukit/librpc/src/rpc/rpc_dtablesize.c | 2 +- cpukit/librpc/src/rpc/svc.c | 1 + 16 files changed, 83 insertions(+), 81 deletions(-) create mode 100644 c/src/lib/libbsp/powerpc/psim/make/custom/psim-testsuite.tcfg delete mode 100644 cpukit/libnetworking/sys/select.h create mode 100644 cpukit/libnetworking/sys/selinfo.h diff --git a/c/src/lib/libbsp/powerpc/psim/make/custom/psim-testsuite.tcfg b/c/src/lib/libbsp/powerpc/psim/make/custom/psim-testsuite.tcfg new file mode 100644 index 0000000..8728642 --- /dev/null +++ b/c/src/lib/libbsp/powerpc/psim/make/custom/psim-testsuite.tcfg @@ -0,0 +1,5 @@ +# +# This is the set of tests which are known to not link on this BSP +# + +include: testdata/dltests-broken-on-this-bsp.tcfg diff --git a/cpukit/libmisc/shell/main_ls.c b/cpukit/libmisc/shell/main_ls.c index 55ad5b3..e23e388 100644 --- a/cpukit/libmisc/shell/main_ls.c +++ b/cpukit/libmisc/shell/main_ls.c @@ -58,6 +58,7 @@ __RCSID("$NetBSD: ls.c,v 1.58 2005/10/26 02:24:22 jschauma Exp $"); #define __need_getopt_newlib #include <getopt.h> +#include <sys/param.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> @@ -660,7 +661,7 @@ display(rtems_shell_ls_globals* globals, FTSENT *p, FTSENT *list) d.s_block = 4; /* min buf length for humanize_number */ } else { (void)snprintf(buf, sizeof(buf), "%llu", - (long long)howmany(maxblock, blocksize)); + (unsigned long long)howmany(maxblock, blocksize)); d.s_block = strlen(buf); } d.s_flags = maxflags; diff --git a/cpukit/libmisc/shell/print-ls.c b/cpukit/libmisc/shell/print-ls.c index e83ed30..5880e6e 100644 --- a/cpukit/libmisc/shell/print-ls.c +++ b/cpukit/libmisc/shell/print-ls.c @@ -124,7 +124,7 @@ printlong(rtems_shell_ls_globals* globals, DISPLAY *dp) } else { #endif (void)printf("total %llu\n", - (long long)(howmany(dp->btotal, blocksize))); + (unsigned long long)(howmany(dp->btotal, blocksize))); #if RTEMS_REMOVED } #endif @@ -138,7 +138,7 @@ printlong(rtems_shell_ls_globals* globals, DISPLAY *dp) (void)printf("%*lu ", dp->s_inode, sp->st_ino); if (f_size && !f_humanize) { (void)printf("%*llu ", dp->s_block, - (long long)howmany(sp->st_blocks, blocksize)); + (unsigned long long)howmany(sp->st_blocks, blocksize)); } (void)strmode(sp->st_mode, buf); np = p->fts_pointer; @@ -254,7 +254,7 @@ printcol(rtems_shell_ls_globals* globals, DISPLAY *dp) } else { #endif (void)printf("total %llu\n", - (long long)(howmany(dp->btotal, blocksize))); + (unsigned long long)(howmany(dp->btotal, blocksize))); #if RTEMS_REMOVED } #endif @@ -313,7 +313,7 @@ printacol(rtems_shell_ls_globals* globals, DISPLAY *dp) } else { #endif (void)printf("total %llu\n", - (long long)(howmany(dp->btotal, blocksize))); + (unsigned long long)(howmany(dp->btotal, blocksize))); #if RTEMS_REMOVED } #endif @@ -397,7 +397,7 @@ printaname(rtems_shell_ls_globals* globals, } else { #endif chcnt += printf("%*llu ", sizefield, - (long long)howmany(sp->st_blocks, blocksize)); + (unsigned long long)howmany(sp->st_blocks, blocksize)); #if RTEMS_REMOVED } #endif diff --git a/cpukit/libnetworking/Makefile.am b/cpukit/libnetworking/Makefile.am index 927245b..2a8e06a 100644 --- a/cpukit/libnetworking/Makefile.am +++ b/cpukit/libnetworking/Makefile.am @@ -177,7 +177,7 @@ include_sys_HEADERS += sys/proc.h include_sys_HEADERS += sys/protosw.h include_sys_HEADERS += sys/reboot.h include_sys_HEADERS += sys/resourcevar.h -include_sys_HEADERS += sys/select.h +include_sys_HEADERS += sys/selinfo.h include_sys_HEADERS += sys/signalvar.h include_sys_HEADERS += sys/socket.h include_sys_HEADERS += sys/socketvar.h diff --git a/cpukit/libnetworking/libc/res_send.c b/cpukit/libnetworking/libc/res_send.c index b1dc337..316d3ad 100644 --- a/cpukit/libnetworking/libc/res_send.c +++ b/cpukit/libnetworking/libc/res_send.c @@ -79,6 +79,9 @@ #include <sys/types.h> #include <sys/param.h> #include <sys/time.h> +#ifndef NOSELECT +#include <sys/select.h> +#endif #include <sys/socket.h> #include <sys/uio.h> diff --git a/cpukit/libnetworking/preinstall.am b/cpukit/libnetworking/preinstall.am index bff9065..477b19a 100644 --- a/cpukit/libnetworking/preinstall.am +++ b/cpukit/libnetworking/preinstall.am @@ -367,9 +367,9 @@ $(PROJECT_INCLUDE)/sys/resourcevar.h: sys/resourcevar.h $(PROJECT_INCLUDE)/sys/$ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/resourcevar.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/resourcevar.h -$(PROJECT_INCLUDE)/sys/select.h: sys/select.h $(PROJECT_INCLUDE)/sys/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/select.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/select.h +$(PROJECT_INCLUDE)/sys/selinfo.h: sys/selinfo.h $(PROJECT_INCLUDE)/sys/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/selinfo.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/selinfo.h $(PROJECT_INCLUDE)/sys/signalvar.h: sys/signalvar.h $(PROJECT_INCLUDE)/sys/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/signalvar.h diff --git a/cpukit/libnetworking/rtems/rtems_select.c b/cpukit/libnetworking/rtems/rtems_select.c index 05c8951..eddb122 100644 --- a/cpukit/libnetworking/rtems/rtems_select.c +++ b/cpukit/libnetworking/rtems/rtems_select.c @@ -17,6 +17,7 @@ #include <sys/types.h> #include <sys/param.h> #include <sys/mbuf.h> +#include <sys/select.h> #include <sys/socket.h> #include <sys/socketvar.h> #include <sys/protosw.h> diff --git a/cpukit/libnetworking/sys/select.h b/cpukit/libnetworking/sys/select.h deleted file mode 100644 index 8a84e4c..0000000 --- a/cpukit/libnetworking/sys/select.h +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)select.h 8.2 (Berkeley) 1/4/94 - */ - -#ifndef _SYS_SELECT_H_ -#define _SYS_SELECT_H_ - -#include <sys/time.h> /* struct timeval */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Used to maintain information about processes that wish to be - * notified when I/O becomes possible. - */ -struct selinfo { - pid_t si_pid; /* process to be notified */ - short si_flags; /* see below */ -}; -#define SI_COLL 0x0001 /* collision occurred */ - -/* Check the first NFDS descriptors each in READFDS (if not NULL) for read - readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS - (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out - after waiting the interval specified therein. Returns the number of ready - descriptors, or -1 for errors. */ -extern int select (int __nfds, fd_set *__restrict __readfds, - fd_set *__restrict __writefds, - fd_set *__restrict __exceptfds, - struct timeval *__restrict __timeout); - -#ifdef __cplusplus -} -#endif - -#endif /* !_SYS_SELECT_H_ */ diff --git a/cpukit/libnetworking/sys/selinfo.h b/cpukit/libnetworking/sys/selinfo.h new file mode 100644 index 0000000..785c33f --- /dev/null +++ b/cpukit/libnetworking/sys/selinfo.h @@ -0,0 +1,56 @@ +/*- + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)select.h 8.2 (Berkeley) 1/4/94 + */ + +#ifndef _SYS_SELINFO_H_ +#define _SYS_SELINFO_H_ + +#include <sys/types.h> /* pid_t */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Used to maintain information about processes that wish to be + * notified when I/O becomes possible. + */ +struct selinfo { + pid_t si_pid; /* process to be notified */ + short si_flags; /* see below */ +}; +#define SI_COLL 0x0001 /* collision occurred */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_SYS_SELINFO_H_ */ + diff --git a/cpukit/libnetworking/sys/socketvar.h b/cpukit/libnetworking/sys/socketvar.h index 09bb2a5..13b3674 100644 --- a/cpukit/libnetworking/sys/socketvar.h +++ b/cpukit/libnetworking/sys/socketvar.h @@ -34,7 +34,7 @@ #define _SYS_SOCKETVAR_H_ #include <sys/queue.h> /* for TAILQ macros */ -#include <sys/select.h> /* for struct selinfo */ +#include <sys/selinfo.h> /* for struct selinfo */ /* diff --git a/cpukit/librpc/include/rpc/svc.h b/cpukit/librpc/include/rpc/svc.h index 0ef3b8c..0808ddd 100644 --- a/cpukit/librpc/include/rpc/svc.h +++ b/cpukit/librpc/include/rpc/svc.h @@ -43,6 +43,7 @@ #include <sys/cdefs.h> #include <rpc/types.h> #include <rpc/xdr.h> /* xdrproc_t */ +#include <sys/select.h> /* fd_set */ #include <sys/socket.h> /* socklen_t */ #include <netinet/in.h> /* struct sockaddr_in */ #include <rpc/auth.h> /* auth_stat */ diff --git a/cpukit/librpc/src/rpc/clnt_tcp.c b/cpukit/librpc/src/rpc/clnt_tcp.c index f53edae..c85531d 100644 --- a/cpukit/librpc/src/rpc/clnt_tcp.c +++ b/cpukit/librpc/src/rpc/clnt_tcp.c @@ -61,6 +61,7 @@ static char *rcsid = "$FreeBSD: src/lib/libc/rpc/clnt_tcp.c,v 1.14 2000/01/27 23 #include <unistd.h> #include <string.h> #include <rpc/rpc.h> +#include <sys/param.h> #include <sys/socket.h> #include <netdb.h> #include <errno.h> diff --git a/cpukit/librpc/src/rpc/clnt_udp.c b/cpukit/librpc/src/rpc/clnt_udp.c index 68e085e..e48508b 100644 --- a/cpukit/librpc/src/rpc/clnt_udp.c +++ b/cpukit/librpc/src/rpc/clnt_udp.c @@ -48,6 +48,7 @@ static char *rcsid = "$FreeBSD: src/lib/libc/rpc/clnt_udp.c,v 1.15 2000/01/27 23 #include <unistd.h> #include <string.h> #include <rpc/rpc.h> +#include <sys/param.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <netdb.h> diff --git a/cpukit/librpc/src/rpc/pmap_rmt.c b/cpukit/librpc/src/rpc/pmap_rmt.c index 1ab72b2..c7d36b0 100644 --- a/cpukit/librpc/src/rpc/pmap_rmt.c +++ b/cpukit/librpc/src/rpc/pmap_rmt.c @@ -46,6 +46,7 @@ static char *rcsid = "$FreeBSD: src/lib/libc/rpc/pmap_rmt.c,v 1.15 2000/01/27 23 #endif #include <sys/ioctl.h> +#include <sys/param.h> #include <sys/socket.h> #include <net/if.h> diff --git a/cpukit/librpc/src/rpc/rpc_dtablesize.c b/cpukit/librpc/src/rpc/rpc_dtablesize.c index 65f2953..a102acc 100644 --- a/cpukit/librpc/src/rpc/rpc_dtablesize.c +++ b/cpukit/librpc/src/rpc/rpc_dtablesize.c @@ -37,7 +37,7 @@ static char *rcsid = "$FreeBSD: src/lib/libc/rpc/rpc_dtablesize.c,v 1.10 1999/08 #include "config.h" #endif -#include <sys/types.h> +#include <sys/select.h> #include <unistd.h> /* diff --git a/cpukit/librpc/src/rpc/svc.c b/cpukit/librpc/src/rpc/svc.c index 9cc5cf3..64cc964 100644 --- a/cpukit/librpc/src/rpc/svc.c +++ b/cpukit/librpc/src/rpc/svc.c @@ -53,6 +53,7 @@ static char *rcsid = "$FreeBSD: src/lib/libc/rpc/svc.c,v 1.14 1999/08/28 00:00:4 #endif #include <stdlib.h> #include <sys/errno.h> +#include <sys/param.h> #include <rpc/rpc.h> #include <rpc/pmap_clnt.h> -- 1.9.1
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |