From 94b92c2fab333403aa43fd55ec858fdbf666f8c3 Mon Sep 17 00:00:00 2001 From: David McCullough Date: Tue, 14 Oct 2003 11:52:32 +0000 Subject: Microblaze port from the uClinux-dist, contributed by John Williams --- libc/sysdeps/linux/microblaze/bits/select.h | 58 +++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 libc/sysdeps/linux/microblaze/bits/select.h (limited to 'libc/sysdeps/linux/microblaze/bits/select.h') diff --git a/libc/sysdeps/linux/microblaze/bits/select.h b/libc/sysdeps/linux/microblaze/bits/select.h new file mode 100644 index 000000000..7c787b324 --- /dev/null +++ b/libc/sysdeps/linux/microblaze/bits/select.h @@ -0,0 +1,58 @@ +/* + * include/bits/select.h -- fd_set operations + * + * Copyright (C) 2003 John Williams + * Copyright (C) 2001 NEC Corporation + * Copyright (C) 2001 Miles Bader + * Copyright (C) 1997, 1998 Free Software Foundation, Inc. + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License. See the file COPYING.LIB in the main + * directory of this archive for more details. + */ + +#ifndef _SYS_SELECT_H +# error "Never use directly; include instead." +#endif + +#ifdef __GNUC__ + +/* We don't use `memset' because this would require a prototype and + the array isn't too big. */ +#define __FD_ZERO(s) \ + do { \ + unsigned int __i; \ + fd_set *__arr = (s); \ + for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \ + __FDS_BITS (__arr)[__i] = 0; \ + } while (0) + +#define __FD_SET(fd, s) \ + do { \ + int __fd = (fd); \ + unsigned int *__addr = (unsigned int *)&__FDS_BITS (s); \ + *__addr |= (1 << __fd); \ + } while (0) + +#define __FD_CLR(fd, s) \ + do { \ + int __fd = (fd); \ + unsigned int *__addr = (unsigned int *)&__FDS_BITS (s); \ + *__addr &= ~(1 << __fd); \ + } while (0) + +#define __FD_ISSET(fd, s) \ + ({ \ + int __fd = (fd); \ + unsigned int *__addr = (unsigned int *)&__FDS_BITS (s); \ + int res; \ + res = (*__addr & (1 << fd)) ? 1 : 0; \ + }) + +#else /* !__GNUC__ */ + +#define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d)) +#define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d)) +#define __FD_ISSET(d, s) ((__FDS_BITS (s)[__FDELT(d)] & __FDMASK(d)) != 0) + +#endif /* __GNUC__ */ -- cgit v1.2.3