1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-12 22:40:46 -08:00
emacs/src/sysselect.h
Eli Zaretskii c9240d7a6e Adapt the MS-DOS build to the latest changes.
msdos/mainmake.v2 (bootstrap-clean): Do a maintainer-clean in lib, not
  bootstrap-clean (which doesn't exist).
  msdos/inttypes.h (PRIuMAX) [__DJGPP__ < 2.04]: Define to "llu".
  msdos/sedleim.inp (MKDIR_P): Edit to DOS "md" command.
  msdos/sed1v2.inp: (LIB_CLOCK_GETTIME): Edit to empty.
  Remove lines that invoke PAXCTL.
  (clean): Fix recipe not to run Unixy shell commands.
  msdos/sed2v2.inp (GETTIMEOFDAY_TIMEZONE): Edit to 'struct timezone'.
  (HAVE_STRNCASECMP): Edit to 1.
  msdos/sed3v2.inp (LIB_CLOCK_GETTIME): Edit to empty.
  (C_SWITCH_SYSTEM): Add "-I../msdos".
  msdos/sedlibmk.inp (GNULIB_GETTIMEOFDAY, GNULIB_PSELECT)
  (GNULIB_SELECT, HAVE_STRUCT_TIMEVAL, HAVE_SYS_SELECT_H)
  (HAVE_SYS_TIME_H, NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H)
  (NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H, NEXT_SYS_SELECT_H)
  (NEXT_SYS_TIME_H, REPLACE_GETTIMEOFDAY, REPLACE_PSELECT)
  (REPLACE_STRUCT_TIMEVAL): Edit to appropriate values.
  (BUILT_SOURCES): Edit out sys/select.h and sys/time.h.
  (mostlyclean-local, distclean-generic): Fix recipe not to run
  Unixy shell commands.

  src/sysselect.h [DOS_NT]: Don't include sys/select.h.
  src/sysselect.h (pselect) [!HAVE_PSELECT]: Redirect to sys_select.
  src/sysdep.c: Don't include dos.h and dosfns.h.
  src/process.c (sys_select):
  src/msdos.c (sys_select): Accept one more argument and ignore it.
  src/msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
  adapt data types and code to that.
  src/dosfns.c:
  src/msdos.c (gettime, settime): Define away the prototypes in dos.h,
  which clashes with the gnulib function of the same name.
  src/ w32proc.c (sys_select): Accept and ignore one more argument.
  src/w32.c (emacs_gnutls_pull): Call select with one more argument.

  lisp/emacs-lisp/timer.el (timer-until): Subtract results of
  float-time, instead of taking float-time of the result of
  time-subtract, since float-time signals an error for negative time
  arguments.
2012-06-30 18:55:27 +03:00

58 lines
1.7 KiB
C

/* sysselect.h - System-dependent definitions for the select function.
Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#if defined (DARWIN_OS)
#undef init_process
#endif
#ifndef DOS_NT
#include <sys/select.h>
#endif
#if defined (DARWIN_OS)
#define init_process emacs_init_process
#endif
/* The w32 build defines select stuff in w32.h, which is included
where w32 needs it, but not where sysselect.h is included. The w32
definitions in w32.h are incompatible with the below. */
#ifndef WINDOWSNT
#ifdef FD_SET
#ifdef FD_SETSIZE
#define MAXDESC FD_SETSIZE
#else
#define MAXDESC 64
#endif
#define SELECT_TYPE fd_set
#else /* no FD_SET */
#define MAXDESC 32
#define SELECT_TYPE int
/* Define the macros to access a single-int bitmap of descriptors. */
#define FD_SET(n, p) (*(p) |= (1 << (n)))
#define FD_CLR(n, p) (*(p) &= ~(1 << (n)))
#define FD_ISSET(n, p) (*(p) & (1 << (n)))
#define FD_ZERO(p) (*(p) = 0)
#endif /* no FD_SET */
#endif /* not WINDOWSNT */
#if !defined (HAVE_SELECT)
#define select sys_select
#endif
#ifdef MSDOS
#define pselect sys_select
#endif