/* Interfaces to system-dependent kernel and library entries.
Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GNU Emacs.
#include <config.h>
#endif
+#include <ctype.h>
#include <signal.h>
#include <stdio.h>
#include <setjmp.h>
#define LPASS8 0
#endif
-static int baud_convert[] =
+static const int baud_convert[] =
{
0, 50, 75, 110, 135, 150, 200, 300, 600, 1200,
1800, 2400, 4800, 9600, 19200, 38400
/* rms: Formerly it set s.main.c_cc[VINTR] to 0377 here
unconditionally. Then a SIGNALS_VIA_CHARACTERS conditional
would force it to 0377. That looks like duplicated code. */
-#ifndef SIGNALS_VIA_CHARACTERS
- /* QUIT and INTR work better as signals, so disable character forms */
- s.main.c_cc[VQUIT] = CDISABLE;
- s.main.c_cc[VINTR] = CDISABLE;
- s.main.c_lflag &= ~ISIG;
-#endif /* no TIOCGPGRP or no TIOCGLTC or no TIOCGETC */
s.main.c_cc[VEOL] = CDISABLE;
s.main.c_cflag = (s.main.c_cflag & ~CBAUD) | B9600; /* baud rate sanity */
#endif /* AIX */
}
#else /* No SIGTSTP */
-#ifdef USG_JOBCTRL /* If you don't know what this is don't mess with it */
- ptrace (0, 0, 0, 0); /* set for ptrace - caught by csh */
- kill (getpid (), SIGQUIT);
-
-#else /* No SIGTSTP or USG_JOBCTRL */
-
/* On a system where suspending is not implemented,
instead fork a subshell and let it talk directly to the terminal
while we wait. */
sys_subshell ();
-#endif /* no USG_JOBCTRL */
#endif /* no SIGTSTP */
}
#ifdef SYNC_INPUT
/* I originally used `QUIT' but that might causes files to
be truncated if you hit C-g in the middle of it. --Stef */
- if (interrupt_input_pending)
- handle_async_input ();
- if (pending_atimers)
- do_pending_atimers ();
+ process_pending_signals ();
#endif
continue;
}
/*
* Make a directory.
*/
-#ifdef MKDIR_PROTOTYPE
-MKDIR_PROTOTYPE
-#else
int
mkdir (dpath, dmode)
char *dpath;
int dmode;
-#endif
{
int cpid, status, fd;
struct stat statbuf;
attr.c_cflag |= CLOCAL;
#endif
#if defined (CREAD)
- attr.c_cflag | CREAD;
+ attr.c_cflag |= CREAD;
#endif
/* Configure speed. */
return proclist;
}
-#elif !defined (WINDOWSNT)
+/* The WINDOWSNT implementation is in w32.c.
+ The MSDOS implementation is in dosfns.c. */
+#elif !defined (WINDOWSNT) && !defined (MSDOS)
Lisp_Object
list_system_processes ()
{
return Qnil;
}
-#endif /* !defined (WINDOWSNT)*/
+
+#endif /* !defined (WINDOWSNT) */
#ifdef GNU_LINUX
static void
if (MINOR (rdev) >= minor_beg && MINOR (rdev) <= minor_end)
{
- sprintf (name + strlen (name), "%lu", MINOR (rdev));
+ sprintf (name + strlen (name), "%u", MINOR (rdev));
break;
}
}
CHECK_NUMBER_OR_FLOAT (pid);
proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid);
- sprintf (procfn, "/proc/%lu", proc_id);
+ sprintf (procfn, "/proc/%u", proc_id);
if (stat (procfn, &st) < 0)
return attrs;
attrs = Fcons (Fcons (Qstime,
ltime_from_jiffies (stime, clocks_per_sec)),
attrs);
+ attrs = Fcons (Fcons (Qtime,
+ ltime_from_jiffies (stime+utime, clocks_per_sec)),
+ attrs);
attrs = Fcons (Fcons (Qcutime,
ltime_from_jiffies (cutime, clocks_per_sec)),
attrs);
attrs = Fcons (Fcons (Qcstime,
ltime_from_jiffies (cstime, clocks_per_sec)),
attrs);
+ attrs = Fcons (Fcons (Qctime,
+ ltime_from_jiffies (cstime+cutime, clocks_per_sec)),
+ attrs);
attrs = Fcons (Fcons (Qpri, make_number (priority)), attrs);
attrs = Fcons (Fcons (Qnice, make_number (nice)), attrs);
attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (thcount_eint)), attrs);
UNGCPRO;
return attrs;
}
+
#elif defined (SOLARIS2) && defined (HAVE_PROCFS)
/* The <procfs.h> header does not like to be included if _LP64 is defined and
Qcminflt
Qcmajflt
+ Qutime
+ Qcutime
Qstime
Qcstime
Are they available? */
- attrs = Fcons (Fcons (Qutime,
+ attrs = Fcons (Fcons (Qtime,
list3 (make_number (pinfo.pr_time.tv_sec >> 16),
make_number (pinfo.pr_time.tv_sec & 0xffff),
make_number (pinfo.pr_time.tv_nsec))),
attrs);
- attrs = Fcons (Fcons (Qcutime,
+ attrs = Fcons (Fcons (Qctime,
list3 (make_number (pinfo.pr_ctime.tv_sec >> 16),
make_number (pinfo.pr_ctime.tv_sec & 0xffff),
make_number (pinfo.pr_ctime.tv_nsec))),
attrs = Fcons (Fcons (Qargs, decoded_cmd), attrs);
}
+ if (fd >= 0)
+ emacs_close (fd);
+
UNGCPRO;
return attrs;
}
-#elif !defined (WINDOWSNT)
+/* The WINDOWSNT implementation is in w32.c.
+ The MSDOS implementation is in dosfns.c. */
+#elif !defined (WINDOWSNT) && !defined (MSDOS)
Lisp_Object
system_process_attributes (Lisp_Object pid)