Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-01-13 01:40:46 +0300
committerChristopher Faylor <me@cgf.cx>2005-01-13 01:40:46 +0300
commit169c465a83ef690c2f84ef563c5b56062ee2cb13 (patch)
tree0dde0f7b39a8dbad2b4577d1125ae0f4d189c888 /winsup/cygwin
parent066e8c84249c6d4e81b22312b9d2a9f985dac35b (diff)
Reorganize header file inclusion throughout so that cygerrno.h comes first.
* fhandler.h (select_record::thread_errno): Save any encountered errno here. (select_record::set_select_errno): New function. (select_record::saw_error): New function. (select_record::select_record): Initialize thread_errno to zero. * select.cc (set_handle_or_return_if_not_open): Set thread_errno on failure. (select_stuff::wait): Record errno for later resurrection in calling thread. (peek_serial): Ditto.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog15
-rw-r--r--winsup/cygwin/cygheap.cc2
-rw-r--r--winsup/cygwin/dlfcn.cc2
-rw-r--r--winsup/cygwin/dtable.cc6
-rw-r--r--winsup/cygwin/environ.cc2
-rw-r--r--winsup/cygwin/exec.cc2
-rw-r--r--winsup/cygwin/fcntl.cc2
-rw-r--r--winsup/cygwin/fhandler.h6
-rw-r--r--winsup/cygwin/fhandler_floppy.cc2
-rw-r--r--winsup/cygwin/fhandler_zero.cc1
-rw-r--r--winsup/cygwin/fork.cc2
-rw-r--r--winsup/cygwin/grp.cc2
-rw-r--r--winsup/cygwin/malloc_wrapper.cc2
-rw-r--r--winsup/cygwin/mmap.cc2
-rw-r--r--winsup/cygwin/pinfo.cc2
-rw-r--r--winsup/cygwin/poll.cc2
-rw-r--r--winsup/cygwin/registry.cc2
-rw-r--r--winsup/cygwin/select.cc19
-rw-r--r--winsup/cygwin/shared.cc2
-rw-r--r--winsup/cygwin/strace.cc2
-rw-r--r--winsup/cygwin/sysconf.cc2
-rw-r--r--winsup/cygwin/syslog.cc2
-rw-r--r--winsup/cygwin/uinfo.cc2
23 files changed, 51 insertions, 32 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 82e29f15e..aa8f6a258 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,20 @@
2005-01-12 Christopher Faylor <cgf@timesys.com>
+ Reorganize header file inclusion throughout so that cygerrno.h comes
+ first.
+ * fhandler.h (select_record::thread_errno): Save any encountered errno
+ here.
+ (select_record::set_select_errno): New function.
+ (select_record::saw_error): New function.
+ (select_record::select_record): Initialize thread_errno to zero.
+ * select.cc (set_handle_or_return_if_not_open): Set thread_errno on
+ failure.
+ (select_stuff::wait): Record errno for later resurrection in calling
+ thread.
+ (peek_serial): Ditto.
+
+2005-01-12 Christopher Faylor <cgf@timesys.com>
+
* syscalls.cc (system): Use "/bin/sh" as per linux and (sorta) SUSv3.
2005-01-12 Christopher Faylor <cgf@timesys.com>
diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc
index 14cdd8d84..192128c81 100644
--- a/winsup/cygwin/cygheap.cc
+++ b/winsup/cygwin/cygheap.cc
@@ -12,11 +12,11 @@
#include <string.h>
#include <assert.h>
#include <stdlib.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "child_info.h"
#include "heap.h"
diff --git a/winsup/cygwin/dlfcn.cc b/winsup/cygwin/dlfcn.cc
index 3934428ca..fecb32809 100644
--- a/winsup/cygwin/dlfcn.cc
+++ b/winsup/cygwin/dlfcn.cc
@@ -14,6 +14,7 @@ details. */
#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
@@ -21,7 +22,6 @@ details. */
#include "thread.h"
#include "dlfcn.h"
#include "dll_init.h"
-#include "cygerrno.h"
#include "cygtls.h"
static void __stdcall
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index 38e5057cf..a699553c1 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -584,7 +584,7 @@ dtable::select_read (int fd, select_record *s)
s = fh->select_read (s);
s->fd = fd;
s->fh = fh;
- s->saw_error = 0;
+ s->thread_errno = 0;
debug_printf ("%s fd %d", fh->get_name (), fd);
return s;
}
@@ -601,7 +601,7 @@ dtable::select_write (int fd, select_record *s)
s = fh->select_write (s);
s->fd = fd;
s->fh = fh;
- s->saw_error = 0;
+ s->thread_errno = 0;
debug_printf ("%s fd %d", fh->get_name (), fd);
return s;
}
@@ -618,7 +618,7 @@ dtable::select_except (int fd, select_record *s)
s = fh->select_except (s);
s->fd = fd;
s->fh = fh;
- s->saw_error = 0;
+ s->thread_errno = 0;
debug_printf ("%s fd %d", fh->get_name (), fd);
return s;
}
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
index 121a67d26..961dd97ce 100644
--- a/winsup/cygwin/environ.cc
+++ b/winsup/cygwin/environ.cc
@@ -18,8 +18,8 @@ details. */
#include "perprocess.h"
#include "security.h"
#include "path.h"
-#include "fhandler.h"
#include "cygerrno.h"
+#include "fhandler.h"
#include "dtable.h"
#include "cygheap.h"
#include "registry.h"
diff --git a/winsup/cygwin/exec.cc b/winsup/cygwin/exec.cc
index ffc13ab41..2276545db 100644
--- a/winsup/cygwin/exec.cc
+++ b/winsup/cygwin/exec.cc
@@ -13,13 +13,13 @@ details. */
#include <unistd.h>
#include <stdlib.h>
#include <process.h>
+#include "cygerrno.h"
#include "perprocess.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "pinfo.h"
#include "environ.h"
-#include "cygerrno.h"
#undef _execve
/* This is called _execve and not execve because the real execve is defined
diff --git a/winsup/cygwin/fcntl.cc b/winsup/cygwin/fcntl.cc
index d81126f52..b1f0d9972 100644
--- a/winsup/cygwin/fcntl.cc
+++ b/winsup/cygwin/fcntl.cc
@@ -11,11 +11,11 @@ details. */
#include "winsup.h"
#include <stdarg.h>
#include <unistd.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "thread.h"
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index df02ece23..47b216cda 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -1216,7 +1216,7 @@ struct select_record
int fd;
HANDLE h;
fhandler_base *fh;
- bool saw_error;
+ int thread_errno;
bool windows_handle;
bool read_ready, write_ready, except_ready;
bool read_selected, write_selected, except_selected;
@@ -1227,9 +1227,11 @@ struct select_record
fd_set *exceptfds);
void (*cleanup) (select_record *me, class select_stuff *stuff);
struct select_record *next;
+ void set_select_errno () {__seterrno (); thread_errno = errno;}
+ int saw_error () {return thread_errno;}
select_record (fhandler_base *in_fh = NULL) : fd (0), h (NULL),
- fh (in_fh), saw_error (false), windows_handle (false),
+ fh (in_fh), thread_errno (0), windows_handle (false),
read_ready (false), write_ready (false), except_ready (false),
read_selected (false), write_selected (false),
except_selected (false), except_on_write (false),
diff --git a/winsup/cygwin/fhandler_floppy.cc b/winsup/cygwin/fhandler_floppy.cc
index 3c8870ed4..cbf87c330 100644
--- a/winsup/cygwin/fhandler_floppy.cc
+++ b/winsup/cygwin/fhandler_floppy.cc
@@ -16,10 +16,10 @@ details. */
#include <asm/socket.h>
#include <cygwin/hdreg.h>
#include <cygwin/fs.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
-#include "cygerrno.h"
/**********************************************************************/
/* fhandler_dev_floppy */
diff --git a/winsup/cygwin/fhandler_zero.cc b/winsup/cygwin/fhandler_zero.cc
index e44599b61..0536bd69c 100644
--- a/winsup/cygwin/fhandler_zero.cc
+++ b/winsup/cygwin/fhandler_zero.cc
@@ -13,6 +13,7 @@ details. */
#include "winsup.h"
#include <errno.h>
#include "security.h"
+#include "cygerrno.h"
#include "path.h"
#include "fhandler.h"
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
index b0478144d..b46d0329f 100644
--- a/winsup/cygwin/fork.cc
+++ b/winsup/cygwin/fork.cc
@@ -13,11 +13,11 @@ details. */
#include <unistd.h>
#include <stdlib.h>
#include <stdarg.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "sigproc.h"
#include "pinfo.h"
#include "cygheap.h"
diff --git a/winsup/cygwin/grp.cc b/winsup/cygwin/grp.cc
index 4edfc4128..0574e924b 100644
--- a/winsup/cygwin/grp.cc
+++ b/winsup/cygwin/grp.cc
@@ -16,12 +16,12 @@ details. */
#include <wininet.h>
#include <stdio.h>
#include <stdlib.h>
+#include "cygerrno.h"
#include "pinfo.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "pwdgrp.h"
#include "cygtls.h"
diff --git a/winsup/cygwin/malloc_wrapper.cc b/winsup/cygwin/malloc_wrapper.cc
index 179b91b03..edf7e546e 100644
--- a/winsup/cygwin/malloc_wrapper.cc
+++ b/winsup/cygwin/malloc_wrapper.cc
@@ -14,11 +14,11 @@ details. */
#include "winsup.h"
#include <stdlib.h>
#include <assert.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "heap.h"
#include "sync.h"
diff --git a/winsup/cygwin/mmap.cc b/winsup/cygwin/mmap.cc
index d46ddd21e..b56001328 100644
--- a/winsup/cygwin/mmap.cc
+++ b/winsup/cygwin/mmap.cc
@@ -13,11 +13,11 @@ details. */
#include <stdlib.h>
#include <stddef.h>
#include <sys/mman.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "pinfo.h"
#include "sys/cygwin.h"
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index 2e39ebbd6..84a66ed53 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -14,11 +14,11 @@ details. */
#include <time.h>
#include <limits.h>
#include <stdarg.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "sigproc.h"
#include "pinfo.h"
#include "cygwin_version.h"
diff --git a/winsup/cygwin/poll.cc b/winsup/cygwin/poll.cc
index 4afbac858..9fd099732 100644
--- a/winsup/cygwin/poll.cc
+++ b/winsup/cygwin/poll.cc
@@ -18,11 +18,11 @@
#include <stdlib.h>
#define USE_SYS_TYPES_FD_SET
#include <winsock2.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "sigproc.h"
diff --git a/winsup/cygwin/registry.cc b/winsup/cygwin/registry.cc
index d2756a8e9..543f049c1 100644
--- a/winsup/cygwin/registry.cc
+++ b/winsup/cygwin/registry.cc
@@ -13,10 +13,10 @@ details. */
#include "registry.h"
#include "security.h"
#include <cygwin/version.h>
+#include "cygerrno.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
static const char cygnus_class[] = "cygnus";
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index c943b2a1c..105b7233f 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -28,8 +28,8 @@ details. */
#include <limits.h>
#define USE_SYS_TYPES_FD_SET
#include <winsock.h>
-#include "select.h"
#include "cygerrno.h"
+#include "select.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
@@ -85,8 +85,7 @@ typedef long fd_mask;
h = (s)->fh->get_handle (); \
if (cygheap->fdtab.not_open ((s)->fd)) \
{ \
- (s)->saw_error = true; \
- set_sig_errno (EBADF); \
+ (s)->thread_errno = EBADF; \
return -1; \
} \
@@ -238,7 +237,7 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
}
if (!s->startup (s, this))
{
- __seterrno ();
+ s->set_select_errno ();
return -1;
}
if (s->h == NULL)
@@ -269,7 +268,7 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
return -1;
case WAIT_FAILED:
select_printf ("WaitForMultipleObjects failed");
- __seterrno ();
+ s->set_select_errno ();
return -1;
case WAIT_TIMEOUT:
select_printf ("timed out");
@@ -285,8 +284,11 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
If it returns false, then this wakeup was a false alarm and we should go
back to waiting. */
while ((s = s->next))
- if (s->saw_error)
- return -1; /* Somebody detected an error */
+ if (s->saw_error ())
+ {
+ set_errno (s->saw_error ());
+ return -1; /* Somebody detected an error */
+ }
else if ((((wait_ret >= m && s->windows_handle) || s->h == w4[wait_ret])) &&
s->verify (s, readfds, writefds, exceptfds))
gotone = true;
@@ -1005,8 +1007,7 @@ err:
return ready;
}
- __seterrno ();
- s->saw_error = true;
+ s->set_select_errno ();
select_printf ("error %E");
return -1;
}
diff --git a/winsup/cygwin/shared.cc b/winsup/cygwin/shared.cc
index 6ef11c337..5cc843683 100644
--- a/winsup/cygwin/shared.cc
+++ b/winsup/cygwin/shared.cc
@@ -14,12 +14,12 @@ details. */
#include <stdlib.h>
#include <grp.h>
#include <pwd.h>
+#include "cygerrno.h"
#include "pinfo.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "heap.h"
#include "shared_info_magic.h"
diff --git a/winsup/cygwin/strace.cc b/winsup/cygwin/strace.cc
index fcbe16f08..6b0b74df2 100644
--- a/winsup/cygwin/strace.cc
+++ b/winsup/cygwin/strace.cc
@@ -14,6 +14,7 @@ details. */
#include <wingdi.h>
#include <winuser.h>
#include <ctype.h>
+#include "cygerrno.h"
#include "pinfo.h"
#include "perprocess.h"
#include "cygwin_version.h"
@@ -23,7 +24,6 @@ details. */
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#define PROTECT(x) x[sizeof (x)-1] = 0
diff --git a/winsup/cygwin/sysconf.cc b/winsup/cygwin/sysconf.cc
index 7a7671a84..54346f692 100644
--- a/winsup/cygwin/sysconf.cc
+++ b/winsup/cygwin/sysconf.cc
@@ -13,11 +13,11 @@ details. */
#include <time.h>
#include <limits.h>
#include <ntdef.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "ntdll.h"
diff --git a/winsup/cygwin/syslog.cc b/winsup/cygwin/syslog.cc
index c053c224c..62f606399 100644
--- a/winsup/cygwin/syslog.cc
+++ b/winsup/cygwin/syslog.cc
@@ -14,11 +14,11 @@ details. */
#include <syslog.h>
#include <stdarg.h>
#include <unistd.h>
+#include "cygerrno.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "thread.h"
#include "cygtls.h"
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index ceab9099c..4c5dc23c8 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -18,12 +18,12 @@ details. */
#include <stdlib.h>
#include <lm.h>
#include <sys/cygwin.h>
+#include "cygerrno.h"
#include "pinfo.h"
#include "security.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
-#include "cygerrno.h"
#include "cygheap.h"
#include "registry.h"
#include "child_info.h"