summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog10
-rw-r--r--winsup/cygwin/include/cygwin/types.h1
-rw-r--r--winsup/cygwin/include/endian.h25
-rw-r--r--winsup/cygwin/include/sys/dirent.h26
-rw-r--r--winsup/cygwin/pinfo.cc5
5 files changed, 61 insertions, 6 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index b52ceefd3..1bc93e2ec 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,13 @@
+2005-08-06 Christopher Faylor <cgf@timesys.com>
+
+ * include/endian.h: Move everything into this file and define things
+ more like linux.
+ * include/cygwin/types.h: Include endian.h.
+ * include/sys/dirent.h: Define DT_* types and conversion macros.
+
+ * pinfo.cc (pinfo::init): Remove special handling for PID_ALLPIDS and
+ execed code, even though it probably still isn't quite right.
+
2005-08-05 Michael Gorse <mgorse@alum.wpi.edu>
* thread.cc (pthread::create(3 args)): Make bool.
diff --git a/winsup/cygwin/include/cygwin/types.h b/winsup/cygwin/include/cygwin/types.h
index 58c73e9d5..c37ab26ff 100644
--- a/winsup/cygwin/include/cygwin/types.h
+++ b/winsup/cygwin/include/cygwin/types.h
@@ -19,6 +19,7 @@ extern "C"
#include <sys/sysmacros.h>
#include <stdint.h>
+#include <endian.h>
#ifndef __timespec_t_defined
#define __timespec_t_defined
diff --git a/winsup/cygwin/include/endian.h b/winsup/cygwin/include/endian.h
index 0f91ad85c..2377a3dc0 100644
--- a/winsup/cygwin/include/endian.h
+++ b/winsup/cygwin/include/endian.h
@@ -11,7 +11,30 @@ details. */
#ifndef _ENDIAN_H_
#define _ENDIAN_H_
-#include <machine/endian.h>
+#include <sys/config.h>
+#ifndef __BIG_ENDIAN
+#define __BIG_ENDIAN 4321
#endif
+#ifndef __LITTLE_ENDIAN
+#define __LITTLE_ENDIAN 1234
+#endif
+
+#ifndef __BYTE_ORDER
+# define __BYTE_ORDER __LITTLE_ENDIAN
+#endif
+
+#ifdef __USE_BSD
+# define LITTLE_ENDIAN __LITTLE_ENDIAN
+# define BIG_ENDIAN __BIG_ENDIAN
+# define PDP_ENDIAN __PDP_ENDIAN
+# define BYTE_ORDER __BYTE_ORDER
+#endif
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define __LONG_LONG_PAIR(HI, LO) LO, HI
+#elif __BYTE_ORDER == __BIG_ENDIAN
+# define __LONG_LONG_PAIR(HI, LO) HI, LO
+#endif
+#endif /*_ENDIAN_H_*/
diff --git a/winsup/cygwin/include/sys/dirent.h b/winsup/cygwin/include/sys/dirent.h
index 17e5eff08..1b16bc3d5 100644
--- a/winsup/cygwin/include/sys/dirent.h
+++ b/winsup/cygwin/include/sys/dirent.h
@@ -85,6 +85,32 @@ int scandir (const char *__dir,
int (*compar) (const struct dirent **, const struct dirent **));
int alphasort (const struct dirent **__a, const struct dirent **__b);
+/* File types for `d_type'. */
+enum
+ {
+ DT_UNKNOWN = 0,
+# define DT_UNKNOWN DT_UNKNOWN
+ DT_FIFO = 1,
+# define DT_FIFO DT_FIFO
+ DT_CHR = 2,
+# define DT_CHR DT_CHR
+ DT_DIR = 4,
+# define DT_DIR DT_DIR
+ DT_BLK = 6,
+# define DT_BLK DT_BLK
+ DT_REG = 8,
+# define DT_REG DT_REG
+ DT_LNK = 10,
+# define DT_LNK DT_LNK
+ DT_SOCK = 12,
+# define DT_SOCK DT_SOCK
+ DT_WHT = 14
+# define DT_WHT DT_WHT
+ };
+
+/* Convert between stat structure types and directory types. */
+# define IFTODT(mode) (((mode) & 0170000) >> 12)
+# define DTTOIF(dirtype) ((dirtype) << 12)
#endif /* _POSIX_SOURCE */
#endif
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index 986dce5ef..e253cac5d 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -255,11 +255,6 @@ pinfo::init (pid_t n, DWORD flag, HANDLE h0)
if (realpid == n)
api_fatal ("retrieval of execed process info for pid %d failed due to recursion.", n);
- if ((flag & PID_ALLPIDS))
- {
- set_errno (ESRCH);
- break;
- }
n = realpid;
CloseHandle (h0);
h0 = NULL;