From 244f5a27a6b7ce664030de6e4c08e9d43a099ad0 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 6 Aug 2005 23:00:06 +0000 Subject: [PATCH] * 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. --- winsup/cygwin/ChangeLog | 10 ++++++++++ winsup/cygwin/include/cygwin/types.h | 1 + winsup/cygwin/include/endian.h | 25 ++++++++++++++++++++++++- winsup/cygwin/include/sys/dirent.h | 26 ++++++++++++++++++++++++++ winsup/cygwin/pinfo.cc | 5 ----- 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 + + * 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 * 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 #include +#include #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 +#include +#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; -- 2.43.5