diff options
author | dhinton <dhinton@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-05-10 21:47:43 +0000 |
---|---|---|
committer | dhinton <dhinton@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-05-10 21:47:43 +0000 |
commit | 9e34151633a2077ec34d4561a3bd5f5073e36d06 (patch) | |
tree | ba485f4ec2d472da774d9c3f470fec80871b179d | |
parent | 4f24ebfc695d860f09caa57dd93bc80dbd44f6a5 (diff) | |
download | ATCD-9e34151633a2077ec34d4561a3bd5f5073e36d06.tar.gz |
ChangeLogTag:Sat May 10 21:39:05 UTC 2003 Don Hinton <dhinton@dresystems.com>
-rw-r--r-- | ChangeLog | 59 | ||||
-rw-r--r-- | ace/Handle_Set.h | 11 | ||||
-rw-r--r-- | ace/Malloc.h | 32 | ||||
-rw-r--r-- | ace/OS.h | 1063 | ||||
-rw-r--r-- | ace/Timer_Queue_T.cpp | 7 | ||||
-rw-r--r-- | ace/os_include/pthread.h | 343 | ||||
-rw-r--r-- | ace/os_include/stdio.h | 10 | ||||
-rw-r--r-- | ace/os_include/stdlib.h | 8 | ||||
-rw-r--r-- | ace/os_include/string.h | 8 | ||||
-rw-r--r-- | ace/os_include/sys/stat.h | 10 | ||||
-rw-r--r-- | ace/os_include/unistd.h | 12 | ||||
-rw-r--r-- | apps/gperf/src/Vectors.h | 12 |
12 files changed, 505 insertions, 1070 deletions
diff --git a/ChangeLog b/ChangeLog index 7adf54bd333..105c7396611 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,44 @@ +Sat May 10 21:39:05 UTC 2003 Don Hinton <dhinton@dresystems.com> + + * ace/OS.h: + Removed commented and moved more code, as listed below. + + * ace/Handle_Set.h: + Moved ACE_FD_SETSIZE and ACE_DEFAULT_SELECT_REACTOR_SIZE + defines here. + + * ace/Malloc.h: + Moved ACE_DEFAULT_BASE_ADDR define here. Fixed #ifdef + indentation. + + * ace/Timer_Queue_T.cpp: + Moved ACE_TIMER_SKEW define here. + + * ace/os_include/pthread.h: + Moved a large section of pthread defines and typedefs here. + + * ace/os_include/stdio.h: + Moved ACE_PSOS_SNARFS_HEADER_INFO decl's for fdopen(), tempnam(), + and fileno() here. + + * ace/os_include/stdlib.h: + Moved ACE_PSOS_SNARFS_HEADER_INFO decl for putenv() here. + + * ace/os_include/string.h: + Moved ACE_PSOS_SNARFS_HEADER_INFO decl for strdup() here. + + * ace/os_include/unistd.h: + Moved ACE_PSOS_SNARFS_HEADER_INFO decl's for getopt() and + isatty() here. + + * ace/os_include/sys/stat.h: + Moved ACE_PSOS_SNARFS_HEADER_INFO decl's for umask(), mkfifo(), + and mkdir() here. + + * apps/gperf/src/Vectors.h: + Moved ACE_ASCII_SIZE, ACE_EBCDIC_SIZE, and + ACE_STANDARD_CHARACTER_SET_SIZE defines here. + Sat May 10 18:59;32 UTC 2003 Don Hinton <dhinton@dresystems.com> * ace/config-cygwin32.h: @@ -26,12 +67,12 @@ Sat May 10 16:18:24 UTC 2003 Don Hinton <dhinton@dresystems.com> defines here. * ace/os_include/string.h: - Moved str[n]imp for __BORLANDC__ and ACE_SPRINTF_ADAPTER + Moved str[n]imp() for __BORLANDC__ and ACE_SPRINTF_ADAPTER defines here. * ace/os_include/unistd.h: - Moved _SC_AIO_MAX, chdir, access, getcwd, and isatty defines - for __BORLANDC__ here. + Moved _SC_AIO_MAX, chdir(), access(), getcwd(), and isatty() + defines for __BORLANDC__ here. * ace/os_include/sys/mman.h: Moved PROT_RDWR define here. @@ -40,10 +81,10 @@ Sat May 10 16:18:24 UTC 2003 Don Hinton <dhinton@dresystems.com> Moved CMSG_DATA define here. * ace/os_include/sys/stat.h: - Moved stat, umask, and fstat defines for __BORLANDC__ here. + Moved stat(), umask(), and fstat() defines for __BORLANDC__ here. * ace/os_include/sys/timeb.h: - Moved ftime and timeb defines for __BORLANDC__ here. + Moved ftime() and timeb defines for __BORLANDC__ here. * ace/os_include/sys/types.h: Moved longlong_t, key_t, and pid_t here. @@ -71,16 +112,16 @@ Fri May 9 22:45:24 UTC 2003 Don Hinton <dhinton@dresystems.com> sys/regset.h here. * ace/os_include/stdlib.h: - Move rand_r declaration here. + Move rand_r() declaration here. * ace/os_include/string.h: - Moved strtok_r declaration here. + Moved strtok_r() declaration here. * ace/os_include/time.h: - Moved strptime declaration here. + Moved strptime() declaration here. * ace/os_include/unistd.h: - Moved ualarm, pread/pwrite, getpgid, and lseek64/llseek + Moved ualarm(), pread/pwrite(), getpgid(), and lseek64/llseek() declarations here. * ace/os_include/sys/mman.h: diff --git a/ace/Handle_Set.h b/ace/Handle_Set.h index 731ca256f7f..c4de6d79248 100644 --- a/ace/Handle_Set.h +++ b/ace/Handle_Set.h @@ -20,6 +20,17 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +// Default size of the ACE Reactor. +#if defined (FD_SETSIZE) + int const ACE_FD_SETSIZE = FD_SETSIZE; +#else +# define ACE_FD_SETSIZE FD_SETSIZE +#endif /* ACE_FD_SETSIZE */ + +#if !defined (ACE_DEFAULT_SELECT_REACTOR_SIZE) +# define ACE_DEFAULT_SELECT_REACTOR_SIZE ACE_FD_SETSIZE +#endif /* ACE_DEFAULT_SELECT_REACTOR_SIZE */ + /** * @class ACE_Handle_Set * diff --git a/ace/Malloc.h b/ace/Malloc.h index eb2c65fa31b..7e4d5097e72 100644 --- a/ace/Malloc.h +++ b/ace/Malloc.h @@ -24,15 +24,21 @@ #include "ace/OS.h" #include "ace/Log_Msg.h" +// Default address for shared memory mapped files and SYSV shared memory +// (defaults to 64 M). +# if !defined (ACE_DEFAULT_BASE_ADDR) +# define ACE_DEFAULT_BASE_ADDR ((char *) (64 * 1024 * 1024)) +# endif /* ACE_DEFAULT_BASE_ADDR */ + #if defined (ACE_HAS_MALLOC_STATS) -#include "ace/Atomic_Op.h" -#if defined (ACE_HAS_THREADS) -#include "ace/Process_Mutex.h" -#define ACE_PROCESS_MUTEX ACE_Process_Mutex -#else -#include "ace/SV_Semaphore_Simple.h" -#define ACE_PROCESS_MUTEX ACE_SV_Semaphore_Simple -#endif /* ACE_HAS_THREADS */ +# include "ace/Atomic_Op.h" +# if defined (ACE_HAS_THREADS) +# include "ace/Process_Mutex.h" +# define ACE_PROCESS_MUTEX ACE_Process_Mutex +# else /* ACE_HAS_THREADS */ +# include "ace/SV_Semaphore_Simple.h" +# define ACE_PROCESS_MUTEX ACE_SV_Semaphore_Simple +# endif /* ACE_HAS_THREADS */ typedef ACE_Atomic_Op<ACE_PROCESS_MUTEX, int> ACE_INT; @@ -199,9 +205,9 @@ struct ACE_Export ACE_Malloc_Stats /// Number of blocks in use ACE_INT ninuse_; }; -#define ACE_MALLOC_STATS(X) X +# define ACE_MALLOC_STATS(X) X #else -#define ACE_MALLOC_STATS(X) +# define ACE_MALLOC_STATS(X) #endif /* ACE_HAS_MALLOC_STATS */ #if !defined (ACE_MALLOC_PADDING) @@ -210,7 +216,7 @@ struct ACE_Export ACE_Malloc_Stats // when you want areas to be at least a page long, or 32K long, or // something like that. -#define ACE_MALLOC_PADDING 1 +# define ACE_MALLOC_PADDING 1 #endif /* ACE_MALLOC_PADDING */ union ACE_max_align_info @@ -223,11 +229,11 @@ union ACE_max_align_info #if !defined (ACE_MALLOC_ALIGN) // Align the malloc header size to a multiple of a double. -#define ACE_MALLOC_ALIGN (sizeof (ACE_max_align_info)) +# define ACE_MALLOC_ALIGN (sizeof (ACE_max_align_info)) #endif /* ACE_MALLOC_ALIGN */ #if !defined ACE_MALLOC_ROUNDUP -#define ACE_MALLOC_ROUNDUP(X, Y) ((X) + ((Y) - 1) & ~((Y) - 1)) +# define ACE_MALLOC_ROUNDUP(X, Y) ((X) + ((Y) - 1) & ~((Y) - 1)) #endif // ACE_MALLOC_HEADER_SIZE is the normalized malloc header size. @@ -38,82 +38,18 @@ class ACE_Timeout_Manager; -//#if !defined (_SC_AIO_MAX) -//#define _SC_AIO_MAX 1 -//#endif /* _SC_AIO_MAX */ - -// Do not change these values wantonly since GPERF depends on them.. -#define ACE_ASCII_SIZE 128 -#define ACE_EBCDIC_SIZE 256 - -#if 'a' < 'A' -#define ACE_HAS_EBCDIC -#define ACE_STANDARD_CHARACTER_SET_SIZE 256 -#else -#define ACE_HAS_ASCII -#define ACE_STANDARD_CHARACTER_SET_SIZE 128 -#endif /* 'a' < 'A' */ - -//# if defined (ACE_PSOS_TM) -//typedef long long longlong_t; -//typedef long id_t; -//# endif /* ACE_PSOS_TM */ - // Here are all ACE-specific default constants, needed throughout ACE // and its applications. The values can be over written by user // specific values in config.h files. #include "ace/Default_Constants.h" -//# if defined (ACE_HAS_4_4BSD_SENDMSG_RECVMSG) -// // Control message size to pass a file descriptor. -//# define ACE_BSD_CONTROL_MSG_LEN sizeof (struct cmsghdr) + sizeof (ACE_HANDLE) -//# if defined (ACE_LACKS_CMSG_DATA_MACRO) -//# if defined (ACE_LACKS_CMSG_DATA_MEMBER) -//# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1)) -//# else -//# define CMSG_DATA(cmsg) ((cmsg)->cmsg_data) -//# endif /* ACE_LACKS_CMSG_DATA_MEMBER */ -//# endif /* ACE_LACKS_CMSG_DATA_MACRO */ -//# endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */ - - -// Default size of the ACE Reactor. -# if defined (FD_SETSIZE) -int const ACE_FD_SETSIZE = FD_SETSIZE; -# else -# define ACE_FD_SETSIZE FD_SETSIZE -# endif /* ACE_FD_SETSIZE */ - -# if !defined (ACE_DEFAULT_SELECT_REACTOR_SIZE) -# define ACE_DEFAULT_SELECT_REACTOR_SIZE ACE_FD_SETSIZE -# endif /* ACE_DEFAULT_SELECT_REACTOR_SIZE */ - - // Here are all ACE-specific global declarations needed throughout // ACE. #include "ace/Global_Macros.h" -//#if !defined (ACE_WIN32) && !defined (INTEGRITY) -//#define ACE_MAX_USERID L_cuserid -//#endif /*!ACE_WIN32*/ - // include the ACE min()/max() functions. # include "ace/Min_Max.h" - -// These hooks enable ACE to have all dynamic memory management -// automatically handled on a per-object basis. - -//# if defined (ACE_LACKS_KEY_T) -//# if defined (ACE_WIN32) -// // Win32 doesn't use numeric values to name its semaphores, it uses -// // strings! -//typedef char *key_t; -//# else -//typedef int key_t; -//# endif /* ACE_WIN32 */ -//# endif /* ACE_LACKS_KEY_T */ - /////////////////////////////////////////// // // // NOTE: Please do not add any #includes // @@ -568,18 +504,18 @@ private: //# define ACE_SPRINTF_ADAPTER(X) X //# endif /* ACE_HAS_CHARPTR_SPRINTF */ -// Default address for shared memory mapped files and SYSV shared memory -// (defaults to 64 M). -# if !defined (ACE_DEFAULT_BASE_ADDR) -# define ACE_DEFAULT_BASE_ADDR ((char *) (64 * 1024 * 1024)) -# endif /* ACE_DEFAULT_BASE_ADDR */ +//// Default address for shared memory mapped files and SYSV shared memory +//// (defaults to 64 M). +//# if !defined (ACE_DEFAULT_BASE_ADDR) +//# define ACE_DEFAULT_BASE_ADDR ((char *) (64 * 1024 * 1024)) +//# endif /* ACE_DEFAULT_BASE_ADDR */ -// This fudge factor can be overriden for timers that need it, such as on -// Solaris, by defining the ACE_TIMER_SKEW symbol in the appropriate config -// header. -#if !defined (ACE_TIMER_SKEW) -# define ACE_TIMER_SKEW 0 -#endif /* ACE_TIMER_SKEW */ +//// This fudge factor can be overriden for timers that need it, such as on +//// Solaris, by defining the ACE_TIMER_SKEW symbol in the appropriate config +//// header. +//#if !defined (ACE_TIMER_SKEW) +//# define ACE_TIMER_SKEW 0 +//#endif /* ACE_TIMER_SKEW */ // This needs to go here *first* to avoid problems with AIX. # if defined (ACE_HAS_PTHREADS) @@ -1139,87 +1075,10 @@ _make_##SERVICE_CLASS (ACE_Service_Object_Exterminator *gobbler) \ # define ACE_TSS_GET(I, T) (I) # endif /* ACE_HAS_THREADS && (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATIOND) */ -//# if defined (ACE_LACKS_MODE_MASKS) -//// MODE MASKS -// -//// the following macros are for POSIX conformance. -// -//# if !defined (ACE_HAS_USER_MODE_MASKS) -//# define S_IRWXU 00700 /* read, write, execute: owner. */ -//# define S_IRUSR 00400 /* read permission: owner. */ -//# define S_IWUSR 00200 /* write permission: owner. */ -//# define S_IXUSR 00100 /* execute permission: owner. */ -//# endif /* ACE_HAS_USER_MODE_MASKS */ -//# define S_IRWXG 00070 /* read, write, execute: group. */ -//# define S_IRGRP 00040 /* read permission: group. */ -//# define S_IWGRP 00020 /* write permission: group. */ -//# define S_IXGRP 00010 /* execute permission: group. */ -//# define S_IRWXO 00007 /* read, write, execute: other. */ -//# define S_IROTH 00004 /* read permission: other. */ -//# define S_IWOTH 00002 /* write permission: other. */ -//# define S_IXOTH 00001 /* execute permission: other. */ -// -//// eVC doesn't define these bits, but MSVC does. The bit settings are copied -//// from the MSVC defs. -//# if defined (ACE_HAS_WINCE) -//# define S_IFDIR 0040000 -//# define S_IFREG 0100000 -//# endif /* ACE_HAS_WINCE */ -//# endif /* ACE_LACKS_MODE_MASKS */ - -//# if defined (ACE_LACKS_SEMBUF_T) -//struct sembuf -//{ -// /// semaphore # -// unsigned short sem_num; -// -// /// semaphore operation -// short sem_op; -// -// /// operation flags -// short sem_flg; -//}; -//# endif /* ACE_LACKS_SEMBUF_T */ - -//# if defined (ACE_LACKS_MSGBUF_T) -//struct msgbuf {}; -//# endif /* ACE_LACKS_MSGBUF_T */ - -//# if defined (ACE_LACKS_STRRECVFD) -//struct strrecvfd {}; -//# endif /* ACE_LACKS_STRRECVFD */ - # if defined (ACE_HAS_PROC_FS) # include /**/x <sys/procfs.h> # endif /* ACE_HAS_PROC_FS */ -//# if defined(__rtems__) -//struct iovec { -// /// Base address. -// char *iov_base; -// /// Length. -// size_t iov_len; -//}; -//# endif - -//# if defined (ACE_HAS_BROKEN_WRITEV) -//typedef struct iovec ACE_WRITEV_TYPE; -//# else -//typedef const struct iovec ACE_WRITEV_TYPE; -//# endif /* ACE_HAS_BROKEN_WRITEV */ -// -//# if defined (ACE_HAS_BROKEN_READV) -//typedef const struct iovec ACE_READV_TYPE; -//# else -//typedef struct iovec ACE_READV_TYPE; -//# endif /* ACE_HAS_BROKEN_READV */ - -//# if defined (ACE_HAS_BROKEN_SETRLIMIT) -//typedef struct rlimit ACE_SETRLIMIT_TYPE; -//# else -//typedef const struct rlimit ACE_SETRLIMIT_TYPE; -//# endif /* ACE_HAS_BROKEN_SETRLIMIT */ - # if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) # define ACE_MT(X) X # if !defined (_REENTRANT) @@ -1235,119 +1094,11 @@ _make_##SERVICE_CLASS (ACE_Service_Object_Exterminator *gobbler) \ # if defined (ACE_HAS_POSIX_SEM) # include "ace/os_include/semaphore.h" -//# if !defined (SEM_FAILED) && !defined (ACE_LACKS_NAMED_POSIX_SEM) -//# define SEM_FAILED ((sem_t *) -1) -//# endif /* !SEM_FAILED */ -// -//typedef struct -//{ -// /// Pointer to semaphore handle. This is allocated by ACE if we are -// /// working with an unnamed POSIX semaphore or by the OS if we are -// /// working with a named POSIX semaphore. -// sem_t *sema_; -// -// /// Name of the semaphore (if this is non-NULL then this is a named -// /// POSIX semaphore, else its an unnamed POSIX semaphore). -// char *name_; -// -//# if defined (ACE_LACKS_NAMED_POSIX_SEM) -// /// this->sema_ doesn't always get created dynamically if a platform -// /// doesn't support named posix semaphores. We use this flag to -// /// remember if we need to delete <sema_> or not. -// int new_sema_; -//# endif /* ACE_LACKS_NAMED_POSIX_SEM */ -//} ACE_sema_t; # endif /* ACE_HAS_POSIX_SEM */ -//struct cancel_state -//{ -// /// e.g., PTHREAD_CANCEL_ENABLE, PTHREAD_CANCEL_DISABLE, -// /// PTHREAD_CANCELED. -// int cancelstate; -// -// /// e.g., PTHREAD_CANCEL_DEFERRED and PTHREAD_CANCEL_ASYNCHRONOUS. -// int canceltype; -//}; - -//# if defined (ACE_HAS_WINCE) # include "ace/os_include/sys/types.h" // /**/ <types.h> -//# if (_WIN32_WCE < 400) -//typedef unsigned long ptrdiff_t; // evc3, PocketPC don't defined ptrdiff_t -//# else # include "ace/os_include/stddef.h" // WinCE .NET puts it in stddef.h -//# endif - -//typedef DWORD nlink_t; - -// CE's add-on for c-style fstat/stat functionalities. This struct is -// by no mean complete compared to what you usually find in UNIX -// platforms. Only members that have direct conversion using Win32's -// BY_HANDLE_FILE_INFORMATION are defined so that users can discover -// non-supported members at compile time. Time values are of type -// ACE_Time_Value for easy comparison. - -// Since CE does not have _stat by default as NT/2000 does, the 'stat' -// struct defined here will be used. Also note that CE file system -// struct is only for the CE 3.0 or later. -// Refer to the WCHAR.H from Visual C++ and WIBASE.H from eVC 3.0. - -//typedef unsigned int dev_t; - -//struct stat -//{ -// /// always 0 on Windows platforms -// dev_t st_dev; -// -// /// always 0 on Windows platforms -// dev_t st_rdev; -// -// /// file attribute -// unsigned short st_mode; -// -// /// number of hard links -// short st_nlink; -// -// /// time of last access -// ACE_Time_Value st_atime; -// -// /// time of last data modification -// ACE_Time_Value st_mtime; -// -// /// time of creation -// ACE_Time_Value st_ctime; -// -// /// file size, in bytes -// off_t st_size; -// -// // Following members do not have direct conversion in Window platforms. -//// u_long st_blksize; // optimal blocksize for I/O -//// u_long st_flags; // user defined flags for file -//}; - -//# else /* ! ACE_HAS_WINCE */ -//# if defined (ACE_LACKS_SYS_TYPES_H) (continuation removed) -// || (defined (__GLIBC__) && !defined (_BSD_SOURCE)) -//# if ! defined (ACE_PSOS) -// typedef unsigned char u_char; -// typedef unsigned short u_short; -// typedef unsigned int u_int; -// typedef unsigned long u_long; -// -// typedef unsigned char uchar_t; -// typedef unsigned short ushort_t; -// typedef unsigned int uint_t; -// typedef unsigned long ulong_t; -//# endif /* ! defined (ACE_PSOS) */ -//# else -//# include "ace/os_include/sys/types.h" -//# endif /* ACE_LACKS_SYS_TYPES_H */ -// -//# if ! defined (ACE_PSOS) -//# include "ace/os_include/sys/stat.h" -//# endif -//# endif /* ACE_HAS_WINCE */ - #if !defined (ACE_LACKS_UNISTD_H) # include "ace/os_include/unistd.h" #endif /* ACE_LACKS_UNISTD_H */ @@ -1385,341 +1136,7 @@ _make_##SERVICE_CLASS (ACE_Service_Object_Exterminator *gobbler) \ # endif /* ! ACE_HAS_PTHREADS */ # if defined (ACE_HAS_PTHREADS) -# define ACE_SCHED_OTHER SCHED_OTHER -# define ACE_SCHED_FIFO SCHED_FIFO -# define ACE_SCHED_RR SCHED_RR - -// Definitions for mapping POSIX pthreads draft 6 into 1003.1c names - -# if defined (ACE_HAS_PTHREADS_DRAFT6) -# define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL -# define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL -# define PTHREAD_CREATE_UNDETACHED 0 -# define PTHREAD_CREATE_DETACHED 1 -# define PTHREAD_CREATE_JOINABLE 0 -# define PTHREAD_EXPLICIT_SCHED 0 -# define PTHREAD_MIN_PRIORITY 0 -# define PTHREAD_MAX_PRIORITY 126 -# endif /* ACE_HAS_PTHREADS_DRAFT6 */ - -// Definitions for THREAD- and PROCESS-LEVEL priorities...some -// implementations define these while others don't. In order to -// further complicate matters, we don't redefine the default (*_DEF) -// values if they've already been defined, which allows individual -// programs to have their own ACE-wide "default". - -// PROCESS-level values -# if defined (_POSIX_PRIORITY_SCHEDULING) && \ - !defined(_UNICOS) && !defined(UNIXWARE_7_1) -# define ACE_PROC_PRI_FIFO_MIN (sched_get_priority_min(SCHED_FIFO)) -# define ACE_PROC_PRI_RR_MIN (sched_get_priority_min(SCHED_RR)) -# if defined (HPUX) - // HP-UX's other is the SCHED_HPUX class, which uses historical - // values that have reverse semantics from POSIX (low value is - // more important priority). To use these in pthreads calls, - // the values need to be converted. The other scheduling classes - // don't need this special treatment. -# define ACE_PROC_PRI_OTHER_MIN \ - (sched_get_priority_min(SCHED_OTHER)) -# else -# define ACE_PROC_PRI_OTHER_MIN (sched_get_priority_min(SCHED_OTHER)) -# endif /* HPUX */ -# else /* UNICOS is missing a sched_get_priority_min() implementation, - SCO too */ -# define ACE_PROC_PRI_FIFO_MIN 0 -# define ACE_PROC_PRI_RR_MIN 0 -# define ACE_PROC_PRI_OTHER_MIN 0 -# endif - -# if defined (_POSIX_PRIORITY_SCHEDULING) && !defined(UNIXWARE_7_1) -# define ACE_PROC_PRI_FIFO_MAX (sched_get_priority_max(SCHED_FIFO)) -# define ACE_PROC_PRI_RR_MAX (sched_get_priority_max(SCHED_RR)) -# if defined (HPUX) -# define ACE_PROC_PRI_OTHER_MAX \ - (sched_get_priority_max(SCHED_OTHER)) -# else -# define ACE_PROC_PRI_OTHER_MAX (sched_get_priority_max(SCHED_OTHER)) -# endif /* HPUX */ -# else /* SCO missing sched_get_priority_max() implementation */ -# define ACE_PROC_PRI_FIFO_MAX 59 -# define ACE_PROC_PRI_RR_MAX 59 -# define ACE_PROC_PRI_OTHER_MAX 59 -# endif - -# if !defined(ACE_PROC_PRI_FIFO_DEF) -# define ACE_PROC_PRI_FIFO_DEF (ACE_PROC_PRI_FIFO_MIN + (ACE_PROC_PRI_FIFO_MAX - ACE_PROC_PRI_FIFO_MIN)/2) -# endif -# if !defined(ACE_PROC_PRI_RR_DEF) -# define ACE_PROC_PRI_RR_DEF (ACE_PROC_PRI_RR_MIN + (ACE_PROC_PRI_RR_MAX - ACE_PROC_PRI_RR_MIN)/2) -# endif -# if !defined(ACE_PROC_PRI_OTHER_DEF) -# define ACE_PROC_PRI_OTHER_DEF (ACE_PROC_PRI_OTHER_MIN + (ACE_PROC_PRI_OTHER_MAX - ACE_PROC_PRI_OTHER_MIN)/2) -# endif - -// THREAD-level values -# if defined(PRI_FIFO_MIN) && defined(PRI_FIFO_MAX) && defined(PRI_RR_MIN) && defined(PRI_RR_MAX) && defined(PRI_OTHER_MIN) && defined(PRI_OTHER_MAX) -# if !defined (ACE_THR_PRI_FIFO_MIN) -# define ACE_THR_PRI_FIFO_MIN (long) PRI_FIFO_MIN -# endif /* !ACE_THR_PRI_FIFO_MIN */ -# if !defined (ACE_THR_PRI_FIFO_MAX) -# define ACE_THR_PRI_FIFO_MAX (long) PRI_FIFO_MAX -# endif /* !ACE_THR_PRI_FIFO_MAX */ -# if !defined (ACE_THR_PRI_RR_MIN) -# define ACE_THR_PRI_RR_MIN (long) PRI_RR_MIN -# endif /* !ACE_THR_PRI_RR_MIN */ -# if !defined (ACE_THR_PRI_RR_MAX) -# define ACE_THR_PRI_RR_MAX (long) PRI_RR_MAX -# endif /* !ACE_THR_PRI_RR_MAX */ -# if !defined (ACE_THR_PRI_OTHER_MIN) -# define ACE_THR_PRI_OTHER_MIN (long) PRI_OTHER_MIN -# endif /* !ACE_THR_PRI_OTHER_MIN */ -# if !defined (ACE_THR_PRI_OTHER_MAX) -# define ACE_THR_PRI_OTHER_MAX (long) PRI_OTHER_MAX -# endif /* !ACE_THR_PRI_OTHER_MAX */ -# elif defined (AIX) - // AIX's priority range is 1 (low) to 127 (high). There aren't - // any preprocessor macros I can find. PRIORITY_MIN is for - // process priorities, as far as I can see, and does not apply - // to thread priority. The 1 to 127 range is from the - // pthread_attr_setschedparam man page (Steve Huston, 18-May-2001). -# if !defined (ACE_THR_PRI_FIFO_MIN) -# define ACE_THR_PRI_FIFO_MIN (long) 1 -# endif /* !ACE_THR_PRI_FIFO_MIN */ -# if !defined (ACE_THR_PRI_FIFO_MAX) -# define ACE_THR_PRI_FIFO_MAX (long) 127 -# endif /* !ACE_THR_PRI_FIFO_MAX */ -# if !defined (ACE_THR_PRI_RR_MIN) -# define ACE_THR_PRI_RR_MIN (long) 1 -# endif /* !ACE_THR_PRI_RR_MIN */ -# if !defined (ACE_THR_PRI_RR_MAX) -# define ACE_THR_PRI_RR_MAX (long) 127 -# endif /* !ACE_THR_PRI_RR_MAX */ -# if !defined (ACE_THR_PRI_OTHER_MIN) -# define ACE_THR_PRI_OTHER_MIN (long) 1 -# endif /* !ACE_THR_PRI_OTHER_MIN */ -# if !defined (ACE_THR_PRI_OTHER_MAX) -# define ACE_THR_PRI_OTHER_MAX (long) 127 -# endif /* !ACE_THR_PRI_OTHER_MAX */ -# elif defined (sun) -# if !defined (ACE_THR_PRI_FIFO_MIN) -# define ACE_THR_PRI_FIFO_MIN (long) 0 -# endif /* !ACE_THR_PRI_FIFO_MIN */ -# if !defined (ACE_THR_PRI_FIFO_MAX) -# define ACE_THR_PRI_FIFO_MAX (long) 59 -# endif /* !ACE_THR_PRI_FIFO_MAX */ -# if !defined (ACE_THR_PRI_RR_MIN) -# define ACE_THR_PRI_RR_MIN (long) 0 -# endif /* !ACE_THR_PRI_RR_MIN */ -# if !defined (ACE_THR_PRI_RR_MAX) -# define ACE_THR_PRI_RR_MAX (long) 59 -# endif /* !ACE_THR_PRI_RR_MAX */ -# if !defined (ACE_THR_PRI_OTHER_MIN) -# define ACE_THR_PRI_OTHER_MIN (long) 0 -# endif /* !ACE_THR_PRI_OTHER_MIN */ -# if !defined (ACE_THR_PRI_OTHER_MAX) -# define ACE_THR_PRI_OTHER_MAX (long) 127 -# endif /* !ACE_THR_PRI_OTHER_MAX */ -# else -# if !defined (ACE_THR_PRI_FIFO_MIN) -# define ACE_THR_PRI_FIFO_MIN (long) ACE_PROC_PRI_FIFO_MIN -# endif /* !ACE_THR_PRI_FIFO_MIN */ -# if !defined (ACE_THR_PRI_FIFO_MAX) -# define ACE_THR_PRI_FIFO_MAX (long) ACE_PROC_PRI_FIFO_MAX -# endif /* !ACE_THR_PRI_FIFO_MAX */ -# if !defined (ACE_THR_PRI_RR_MIN) -# define ACE_THR_PRI_RR_MIN (long) ACE_PROC_PRI_RR_MIN -# endif /* !ACE_THR_PRI_RR_MIN */ -# if !defined (ACE_THR_PRI_RR_MAX) -# define ACE_THR_PRI_RR_MAX (long) ACE_PROC_PRI_RR_MAX -# endif /* !ACE_THR_PRI_RR_MAX */ -# if !defined (ACE_THR_PRI_OTHER_MIN) -# define ACE_THR_PRI_OTHER_MIN (long) ACE_PROC_PRI_OTHER_MIN -# endif /* !ACE_THR_PRI_OTHER_MIN */ -# if !defined (ACE_THR_PRI_OTHER_MAX) -# define ACE_THR_PRI_OTHER_MAX (long) ACE_PROC_PRI_OTHER_MAX -# endif /* !ACE_THR_PRI_OTHER_MAX */ -# endif -# if !defined(ACE_THR_PRI_FIFO_DEF) -# define ACE_THR_PRI_FIFO_DEF ((ACE_THR_PRI_FIFO_MIN + ACE_THR_PRI_FIFO_MAX)/2) -# endif -# if !defined(ACE_THR_PRI_RR_DEF) -# define ACE_THR_PRI_RR_DEF ((ACE_THR_PRI_RR_MIN + ACE_THR_PRI_RR_MAX)/2) -# endif -# if !defined(ACE_THR_PRI_OTHER_DEF) -# define ACE_THR_PRI_OTHER_DEF ((ACE_THR_PRI_OTHER_MIN + ACE_THR_PRI_OTHER_MAX)/2) -# endif - -// Typedefs to help compatibility with Windows NT and Pthreads. -typedef pthread_t ACE_hthread_t; -typedef pthread_t ACE_thread_t; - -# if defined (ACE_HAS_TSS_EMULATION) - typedef pthread_key_t ACE_OS_thread_key_t; - typedef u_long ACE_thread_key_t; -# else /* ! ACE_HAS_TSS_EMULATION */ - typedef pthread_key_t ACE_thread_key_t; -# endif /* ! ACE_HAS_TSS_EMULATION */ - -# if !defined (ACE_LACKS_COND_T) -typedef pthread_mutex_t ACE_mutex_t; -typedef pthread_cond_t ACE_cond_t; -typedef pthread_condattr_t ACE_condattr_t; -typedef pthread_mutexattr_t ACE_mutexattr_t; -# endif /* ! ACE_LACKS_COND_T */ -typedef pthread_mutex_t ACE_thread_mutex_t; - -# if !defined (PTHREAD_CANCEL_DISABLE) -# define PTHREAD_CANCEL_DISABLE 0 -# endif /* PTHREAD_CANCEL_DISABLE */ - -# if !defined (PTHREAD_CANCEL_ENABLE) -# define PTHREAD_CANCEL_ENABLE 0 -# endif /* PTHREAD_CANCEL_ENABLE */ - -# if !defined (PTHREAD_CANCEL_DEFERRED) -# define PTHREAD_CANCEL_DEFERRED 0 -# endif /* PTHREAD_CANCEL_DEFERRED */ - -# if !defined (PTHREAD_CANCEL_ASYNCHRONOUS) -# define PTHREAD_CANCEL_ASYNCHRONOUS 0 -# endif /* PTHREAD_CANCEL_ASYNCHRONOUS */ - -# define THR_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE -# define THR_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE -# define THR_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED -# define THR_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS - -# if !defined (PTHREAD_CREATE_JOINABLE) -# if defined (PTHREAD_CREATE_UNDETACHED) -# define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED -# else -# define PTHREAD_CREATE_JOINABLE 0 -# endif /* PTHREAD_CREATE_UNDETACHED */ -# endif /* PTHREAD_CREATE_JOINABLE */ - -# if !defined (PTHREAD_CREATE_DETACHED) -# define PTHREAD_CREATE_DETACHED 1 -# endif /* PTHREAD_CREATE_DETACHED */ - -# if !defined (PTHREAD_PROCESS_PRIVATE) && !defined (ACE_HAS_PTHREAD_PROCESS_ENUM) -# if defined (PTHREAD_MUTEXTYPE_FAST) -# define PTHREAD_PROCESS_PRIVATE PTHREAD_MUTEXTYPE_FAST -# else -# define PTHREAD_PROCESS_PRIVATE 0 -# endif /* PTHREAD_MUTEXTYPE_FAST */ -# endif /* PTHREAD_PROCESS_PRIVATE */ - -# if !defined (PTHREAD_PROCESS_SHARED) && !defined (ACE_HAS_PTHREAD_PROCESS_ENUM) -# if defined (PTHREAD_MUTEXTYPE_FAST) -# define PTHREAD_PROCESS_SHARED PTHREAD_MUTEXTYPE_FAST -# else -# define PTHREAD_PROCESS_SHARED 1 -# endif /* PTHREAD_MUTEXTYPE_FAST */ -# endif /* PTHREAD_PROCESS_SHARED */ - -# if defined (ACE_HAS_PTHREADS_DRAFT4) -# if defined (PTHREAD_PROCESS_PRIVATE) -# if !defined (USYNC_THREAD) -# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE -# endif /* ! USYNC_THREAD */ -# else -# if !defined (USYNC_THREAD) -# define USYNC_THREAD MUTEX_NONRECURSIVE_NP -# endif /* ! USYNC_THREAD */ -# endif /* PTHREAD_PROCESS_PRIVATE */ - -# if defined (PTHREAD_PROCESS_SHARED) -# if !defined (USYNC_PROCESS) -# define USYNC_PROCESS PTHREAD_PROCESS_SHARED -# endif /* ! USYNC_PROCESS */ -# else -# if !defined (USYNC_PROCESS) -# define USYNC_PROCESS MUTEX_NONRECURSIVE_NP -# endif /* ! USYNC_PROCESS */ -# endif /* PTHREAD_PROCESS_SHARED */ -# elif !defined (ACE_HAS_STHREADS) -# if !defined (USYNC_THREAD) -# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE -# endif /* ! USYNC_THREAD */ -# if !defined (USYNC_PROCESS) -# define USYNC_PROCESS PTHREAD_PROCESS_SHARED -# endif /* ! USYNC_PROCESS */ -# endif /* ACE_HAS_PTHREADS_DRAFT4 */ - -/* MM-Graz: prevent warnings */ -#undef THR_BOUND -#undef THR_NEW_LWP -#undef THR_DETACHED -#undef THR_SUSPENDED -#undef THR_DAEMON - -# define THR_BOUND 0x00000001 -# if defined (CHORUS) -# define THR_NEW_LWP 0x00000000 -# else -# define THR_NEW_LWP 0x00000002 -# endif /* CHORUS */ -# define THR_DETACHED 0x00000040 -# define THR_SUSPENDED 0x00000080 -# define THR_DAEMON 0x00000100 -# define THR_JOINABLE 0x00010000 -# define THR_SCHED_FIFO 0x00020000 -# define THR_SCHED_RR 0x00040000 -# define THR_SCHED_DEFAULT 0x00080000 - -# if defined (ACE_HAS_IRIX62_THREADS) -# define THR_SCOPE_SYSTEM 0x00100000 -# else -# define THR_SCOPE_SYSTEM THR_BOUND -#endif /*ACE_HAS_IRIX62_THREADS*/ - -# define THR_SCOPE_PROCESS 0x00200000 -# define THR_INHERIT_SCHED 0x00400000 -# define THR_EXPLICIT_SCHED 0x00800000 -# define THR_SCHED_IO 0x01000000 - -# if !defined (ACE_HAS_STHREADS) -# if !defined (ACE_HAS_POSIX_SEM) -/** - * @class ACE_sema_t - * - * @brief This is used to implement semaphores for platforms that support - * POSIX pthreads, but do *not* support POSIX semaphores, i.e., - * it's a different type than the POSIX <sem_t>. - */ -class ACE_OS_Export ACE_sema_t -{ -friend class ACE_OS; -protected: - /// Serialize access to internal state. - ACE_mutex_t lock_; - - /// Block until there are no waiters. - ACE_cond_t count_nonzero_; - - /// Count of the semaphore. - u_long count_; - - /// Number of threads that have called <ACE_OS::sema_wait>. - u_long waiters_; -}; -# endif /* !ACE_HAS_POSIX_SEM */ - -# if defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) - // If we are on Solaris we can just reuse the existing - // implementations of these synchronization types. -# if !defined (ACE_LACKS_RWLOCK_T) -# include /**/ <synch.h> -typedef rwlock_t ACE_rwlock_t; -# endif /* !ACE_LACKS_RWLOCK_T */ -# include /**/ <thread.h> -# endif /* (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) */ - -# else -# if !defined (ACE_HAS_POSIX_SEM) -typedef sema_t ACE_sema_t; -# endif /* !ACE_HAS_POSIX_SEM */ -# endif /* !ACE_HAS_STHREADS */ +// moved to pthread.h # elif defined (ACE_HAS_STHREADS) // Solaris threads, without PTHREADS. // Typedefs to help compatibility with Windows NT and Pthreads. @@ -1979,7 +1396,7 @@ public: # define THR_SCHED_DEFAULT 0 # define THR_SCOPE_PROCESS 0 # define THR_SCOPE_SYSTEM 0 -# endif /* ACE_HAS_PTHREADS / STHREADS / PSOS / VXWORKS / WTHREADS */ +# endif /* ACE_HAS_PTHREADS / STHREADS / PSOS / VXWORKS / WTHREADS **********/ // If we're using PACE then we don't want this class (since PACE // takes care of it) unless we're on Windows. Win32 mutexes, semaphores, @@ -2087,8 +1504,8 @@ protected: ACE_cond_t waiting_important_writer_; // condition for the upgrading reader }; -# elif defined (ACE_HAS_PTHREADS_UNIX98_EXT) -typedef pthread_rwlock_t ACE_rwlock_t; +//# elif defined (ACE_HAS_PTHREADS_UNIX98_EXT) +//typedef pthread_rwlock_t ACE_rwlock_t; # elif defined (ACE_HAS_STHREADS) # include /**/ <synch.h> typedef rwlock_t ACE_rwlock_t; @@ -2323,20 +1740,6 @@ protected: # if !defined (ACE_HAS_WINCE) # include "ace/os_include/assert.h" # include "ace/os_include/stdio.h" -//// this is a nasty hack to get around problems with the -//// pSOS definition of BUFSIZ as the config table entry -//// (which is valued using the LC_BUFSIZ value anyway) -//# if defined (ACE_PSOS) -//# if defined (BUFSIZ) -//# undef BUFSIZ -//# endif /* defined (BUFSIZ) */ -//# define BUFSIZ LC_BUFSIZ -//# endif /* defined (ACE_PSOS) */ - -//#if defined (ACE_PSOS_DIAB_MIPS) -//#undef size_t -//typedef unsigned int size_t; -//#endif # if !defined (ACE_LACKS_NEW_H) # if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) @@ -2365,44 +1768,6 @@ protected: # endif /* ! ACE_PSOS_DIAB_MIPS */ # include "ace/os_include/float.h" -//// This is defined by XOPEN to be a minimum of 16. POSIX.1g -//// also defines this value. platform-specific config.h can -//// override this if need be. -//# if !defined (IOV_MAX) -//# define IOV_MAX 16 -//# endif /* IOV_MAX */ -// -//# if !defined (ACE_IOV_MAX) -//#define ACE_IOV_MAX IOV_MAX -//# endif /* ACE_IOV_MAX */ - -# if defined (ACE_PSOS_SNARFS_HEADER_INFO) - // Header information snarfed from compiler provided header files - // that are not included because there is already an identically - // named file provided with pSOS, which does not have this info - // from compiler supplied stdio.h - extern FILE *fdopen(int, const char *); - extern int getopt(int, char *const *, const char *); - extern char *tempnam(const char *, const char *); - extern "C" int fileno(FILE *); - -// #define fileno(stream) ((stream)->_file) - - // from compiler supplied string.h - extern char *strdup (const char *); - - // from compiler supplied stat.h - extern mode_t umask (mode_t); - extern int mkfifo (const char *, mode_t); - extern int mkdir (const char *, mode_t); - - // from compiler supplied stdlib.h - extern int putenv (char *); - - int isatty (int h); - -# endif /* ACE_PSOS_SNARFS_HEADER_INFO */ - # if defined (ACE_NEEDS_SCHED_H) # include "ace/os_include/sched.h" # endif /* ACE_NEEDS_SCHED_H */ @@ -2439,146 +1804,20 @@ protected: # endif /* ! ACE_PSOS_DIAB_MIPS */ # endif /* ACE_HAS_WINCE */ -//// This must come after signal.h is #included. -//# if defined (SCO) -//# define SIGIO SIGPOLL -//# include /**/x <sys/regset.h> // Thu Apr 03 08:52:34 1997 David L. Levine <levine@cs.wustl.edu> todo: move to signal.h??? -// -//# endif /* SCO */ - # if defined ACE_HAS_BYTESEX_H # include /**/x <bytesex.h> # endif /* ACE_HAS_BYTESEX_H */ # include "ace/Basic_Types.h" -///* This should work for linux, solaris 5.6 and above, IRIX, OSF */ -//# if defined (ACE_HAS_LLSEEK) || defined (ACE_HAS_LSEEK64) -//# if ACE_SIZEOF_LONG == 8 -// typedef off_t ACE_LOFF_T; -//# elif defined (__sgi) || defined (AIX) || defined (HPUX) (continuation removed) -// || defined (__QNX__) -// typedef off64_t ACE_LOFF_T; -//# elif defined (__sun) -// typedef offset_t ACE_LOFF_T; -//# elif defined (WIN32) //Add by Nick Lin -- for win32 llseek -// typedef __int64 ACE_LOFF_T; //Add by Nick Lin -- for win32 llseek -//# else -// typedef loff_t ACE_LOFF_T; -//# endif -//# endif /* ACE_HAS_LLSEEK || ACE_HAS_LSEEK64 */ - // Type-safe, and unsigned. static const ACE_UINT32 ACE_U_ONE_SECOND_IN_MSECS = 1000U; static const ACE_UINT32 ACE_U_ONE_SECOND_IN_USECS = 1000000U; static const ACE_UINT32 ACE_U_ONE_SECOND_IN_NSECS = 1000000000U; -//# if defined (ACE_HAS_SIG_MACROS) -//# undef sigemptyset -//# undef sigfillset -//# undef sigaddset -//# undef sigdelset -//# undef sigismember -//# endif /* ACE_HAS_SIG_MACROS */ - -//// This must come after signal.h is #included. It's to counteract -//// the sigemptyset and sigfillset #defines, which only happen -//// when __OPTIMIZE__ is #defined (really!) on Linux. -//# if defined (linux) && defined (__OPTIMIZE__) -//# undef sigemptyset -//# undef sigfillset -//# endif /* linux && __OPTIMIZE__ */ - -// Prototypes should come after ace/Basic_Types.h since some types may -// be used in the prototypes. - -//#if defined (ACE_LACKS_GETPGID_PROTOTYPE) && (continuation removed) -// !defined (_XOPEN_SOURCE) && !defined (_XOPEN_SOURCE_EXTENDED) -//extern "C" pid_t getpgid (pid_t pid); -//#endif /* ACE_LACKS_GETPGID_PROTOTYPE && -// !_XOPEN_SOURCE && !_XOPEN_SOURCE_EXTENDED */ - -//#if defined (ACE_LACKS_STRPTIME_PROTOTYPE) && !defined (_XOPEN_SOURCE) -//extern "C" char *strptime (const char *s, const char *fmt, struct tm *tp); -//#endif /* ACE_LACKS_STRPTIME_PROTOTYPE */ - -//#if defined (ACE_LACKS_STRTOK_R_PROTOTYPE) && !defined (_POSIX_SOURCE) -//extern "C" char *strtok_r (char *s, const char *delim, char **save_ptr); -//#endif /* ACE_LACKS_STRTOK_R_PROTOTYPE */ - -//#if !defined (_LARGEFILE64_SOURCE) -//# if defined (ACE_LACKS_LSEEK64_PROTOTYPE) && (continuation removed) -// defined (ACE_LACKS_LLSEEK_PROTOTYPE) -//# error Define either ACE_LACKS_LSEEK64_PROTOTYPE or ACE_LACKS_LLSEEK_PROTOTYPE, not both! -//# elif defined (ACE_LACKS_LSEEK64_PROTOTYPE) -//extern "C" ACE_LOFF_T lseek64 (int fd, ACE_LOFF_T offset, int whence); -//# elif defined (ACE_LACKS_LLSEEK_PROTOTYPE) -//extern "C" ACE_LOFF_T llseek (int fd, ACE_LOFF_T offset, int whence); -//# endif -//#endif /* _LARGEFILE64_SOURCE */ - -//#if defined (ACE_LACKS_PREAD_PROTOTYPE) && (_XOPEN_SOURCE - 0) < 500 -//// _XOPEN_SOURCE == 500 Single Unix conformance -//// It seems that _XOPEN_SOURCE == 500 means that the prototypes are -//// already defined in the system headers. -//extern "C" ssize_t pread (int fd, -// void *buf, -// size_t nbytes, -// off_t offset); -// -//extern "C" ssize_t pwrite (int fd, -// const void *buf, -// size_t n, -// off_t offset); -//#endif /* ACE_LACKS_PREAD_PROTOTYPE && (_XOPEN_SOURCE - 0) < 500 */ - -//# if defined (ACE_LACKS_UALARM_PROTOTYPE) -//extern "C" u_int ualarm (u_int usecs, u_int interval); -//# endif /* ACE_LACKS_UALARM_PROTOTYPE */ - -//# if defined (ACE_HAS_BROKEN_SENDMSG) -//typedef struct msghdr ACE_SENDMSG_TYPE; -//# else -//typedef const struct msghdr ACE_SENDMSG_TYPE; -//# endif /* ACE_HAS_BROKEN_SENDMSG */ - -//# if defined (ACE_HAS_BROKEN_RANDR) -//// The SunOS 5.4.X version of rand_r is inconsistent with the header -//// files... -//typedef u_int ACE_RANDR_TYPE; -//extern "C" int rand_r (ACE_RANDR_TYPE seed); -//# else -//# if defined (HPUX_10) -//// HP-UX 10.x's stdlib.h (long *) doesn't match that man page (u_int *) -//typedef long ACE_RANDR_TYPE; -//# else -//typedef u_int ACE_RANDR_TYPE; -//# endif /* HPUX_10 */ -//# endif /* ACE_HAS_BROKEN_RANDR */ - # if defined (ACE_HAS_UTIME) # include "ace/os_include/utime.h" # endif /* ACE_HAS_UTIME */ -//# if !defined (ACE_HAS_MSG) && !defined (SCO) -//struct msghdr {}; -//# endif /* ACE_HAS_MSG */ - -//# if defined (ACE_HAS_MSG) && defined (ACE_LACKS_MSG_ACCRIGHTS) -//# if !defined (msg_accrights) -//# undef msg_control -//# define msg_accrights msg_control -//# endif /* ! msg_accrights */ -// -//# if !defined (msg_accrightslen) -//# undef msg_controllen -//# define msg_accrightslen msg_controllen -//# endif /* ! msg_accrightslen */ -//# endif /* ACE_HAS_MSG && ACE_LACKS_MSG_ACCRIGHTS */ - -//# if !defined (ACE_HAS_SIG_ATOMIC_T) -//typedef int sig_atomic_t; -//# endif /* !ACE_HAS_SIG_ATOMIC_T */ - # if defined (ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES) // Prototypes for both signal() and struct sigaction are consistent.. # if defined (ACE_HAS_SIG_C_FUNC) @@ -2632,12 +1871,6 @@ typedef void (*ACE_SignalHandler)(int); typedef void (*ACE_SignalHandlerV)(...); # endif /* ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES */ -//# if defined (BUFSIZ) -//# define ACE_STREAMBUF_SIZE BUFSIZ -//# else -//# define ACE_STREAMBUF_SIZE 1024 -//# endif /* BUFSIZ */ - # if defined (ACE_WIN32) // Turn off warnings for /W4 // To resume any of these warning: #pragma warning(default: 4xxx) @@ -2695,23 +1928,6 @@ typedef void (*ACE_SignalHandlerV)(...); # endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */ # endif /* ACE_DEFAULT_SVC_CONF */ -//// The following are #defines and #includes that are specific to -//// WIN32. -//# if defined (ACE_HAS_WINCE) -//# define ACE_STDIN _fileno (stdin) -//# define ACE_STDOUT _fileno (stdout) -//# define ACE_STDERR _fileno (stderr) -//# else -//# define ACE_STDIN GetStdHandle (STD_INPUT_HANDLE) -//# define ACE_STDOUT GetStdHandle (STD_OUTPUT_HANDLE) -//# define ACE_STDERR GetStdHandle (STD_ERROR_HANDLE) -//# endif // ACE_HAS_WINCE - -//// Default semaphore key and mutex name -//# if !defined (ACE_DEFAULT_SEM_KEY) -//# define ACE_DEFAULT_SEM_KEY "ACE_SEM_KEY" -//# endif /* ACE_DEFAULT_SEM_KEY */ - # define ACE_INVALID_SEM_KEY 0 # if !defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) @@ -2753,39 +1969,7 @@ typedef void (*ACE_SignalHandlerV)(...); # define ACE_DLL_PREFIX ACE_LIB_TEXT ("") # endif /* __MINGW32__ */ -//// This will help until we figure out everything: -//# define NFDBITS 32 /* only used in unused functions... */ -//// These two may be used for internal flags soon: -//# define MAP_PRIVATE 1 -//# define MAP_SHARED 2 -//# define MAP_FIXED 4 - -//# define RUSAGE_SELF 1 - -//struct shmaddr { }; -//struct msqid_ds {}; - -///// Fake the UNIX rusage structure. Perhaps we can add more to this -///// later on? -//struct rusage -//{ -// FILETIME ru_utime; -// FILETIME ru_stime; -//}; - #include "ace/os_include/sys/mman.h" //// MMAP flags -//# define PROT_READ PAGE_READONLY -//# define PROT_WRITE PAGE_READWRITE -//# define PROT_RDWR PAGE_READWRITE -/* If we can find suitable use for these flags, here they are: -PAGE_WRITECOPY -PAGE_EXECUTE -PAGE_EXECUTE_READ -PAGE_EXECUTE_READWRITE -PAGE_EXECUTE_WRITECOPY -PAGE_GUARD -PAGE_NOACCESS -PAGE_NOCACHE */ # if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) # include "ace/os_include/netinet/in.h" // <ws2tcpip.h> @@ -2841,46 +2025,13 @@ PAGE_NOCACHE */ # include "ace/os_include/time.h" # include "ace/os_include/sys/stat.h" // <direct.h> # include "ace/os_include/unistd.h" // <process.h> -//# include /**/ <io.h> # endif /* ACE_HAS_WINCE */ -//# if defined (__BORLANDC__) # include "ace/os_include/fcntl.h" -//# define _chdir chdir -//# define _ftime ftime -//# undef _access -//# define _access access -//# if (__BORLANDC__ <= 0x540) -//# define _getcwd getcwd -//# define _stat stat -//# endif -//# define _isatty isatty -//# define _umask umask -//# define _fstat fstat -//# define _stricmp stricmp -//# define _strnicmp strnicmp - -//# define _timeb timeb - -//# define _O_CREAT O_CREAT -//# define _O_EXCL O_EXCL -//# define _O_TRUNC O_TRUNC -// // 0x0800 is used for O_APPEND. 0x08 looks free. -//# define _O_TEMPORARY 0x08 /* see fcntl.h */ -//# define _O_RDWR O_RDWR -//# define _O_WRONLY O_WRONLY -//# define _O_RDONLY O_RDONLY -//# define _O_APPEND O_APPEND -//# define _O_BINARY O_BINARY -//# define _O_TEXT O_TEXT -//# endif /* __BORLANDC__ */ typedef OVERLAPPED ACE_OVERLAPPED; typedef DWORD ACE_thread_t; -//# if !defined(__MINGW32__) -//typedef long pid_t; -//# endif /* __MINGW32__ */ typedef HANDLE ACE_hthread_t; #define ACE_INVALID_PID ((pid_t) -1) @@ -2918,16 +2069,6 @@ typedef ACE_UINT64 ACE_hrtime_t; # endif # endif /* ACE_HAS_WINCE */ -//# if !defined (__BORLANDC__) -//typedef DWORD nlink_t; -//# if !defined(__MINGW32__) -//typedef u_short mode_t; -//# endif /* !__MINGW32__ */ -//typedef long uid_t; -//typedef long gid_t; -//# endif /* __BORLANDC__ */ -//typedef char *caddr_t; - typedef DWORD ACE_exitcode; # define ACE_SYSCALL_FAILED 0xFFFFFFFF @@ -2959,26 +2100,6 @@ struct iovec #endif /* defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) */ }; -//struct msghdr -//{ -// /// Optional address -// sockaddr * msg_name; -// -// /// Size of address -// int msg_namelen; -// -// /// Scatter/gather array -// iovec *msg_iov; -// -// /// # elements in msg_iov -// int msg_iovlen; -// -// /// Access rights sent/received -// caddr_t msg_accrights; -// -// int msg_accrightslen; -//}; - typedef int ACE_idtype_t; typedef DWORD ACE_id_t; # define ACE_SELF (0) @@ -3006,11 +2127,6 @@ typedef ACE_UINT64 ACE_hrtime_t; // Default port is MAX_SHORT. # define ACE_MAX_DEFAULT_PORT 65535 -//// Default semaphore key -//# if !defined (ACE_DEFAULT_SEM_KEY) -//# define ACE_DEFAULT_SEM_KEY 1234 -//# endif /* ACE_DEFAULT_SEM_KEY */ - # define ACE_INVALID_SEM_KEY -1 // Define the pathname separator characters for UNIX. @@ -3044,12 +2160,6 @@ typedef ACE_UINT64 ACE_hrtime_t; # endif /* ACE_USES_CLASSIC_SVC_CONF ==1 */ # endif /* ACE_DEFAULT_SVC_CONF */ -//// The following are #defines and #includes that are specific to UNIX. -// -//# define ACE_STDIN 0 -//# define ACE_STDOUT 1 -//# define ACE_STDERR 2 - // Be consistent with Winsock naming typedef int ACE_exitcode; # define ACE_INVALID_HANDLE -1 @@ -3354,9 +2464,7 @@ extern "C" # include "ace/os_include/aio.h" # endif /* ACE_HAS_AIO_CALLS */ -//# if !defined (ACE_LACKS_PARAM_H) Programs that are intended to comply with the POSIX standard should include the /usr/include/sys/limits.h file rather than the param.h file. # include "ace/os_include/limits.h" // <sys/param.h> -//# endif /* ACE_LACKS_PARAM_H */ // This is here for ACE_OS::num_processors_online(). On HP-UX, it // needs sys/param.h (above) and sys/pstat.h. The implementation of the @@ -3370,21 +2478,6 @@ extern "C" # include "ace/os_include/sys/un.h" # endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ -//# if defined (ACE_HAS_SIGINFO_T) -//# if !defined (ACE_LACKS_SIGINFO_H) -//# if defined (__QNX__) || defined (__OpenBSD__) -//# include "ace/os_include/signal.h" // <sys/siginfo.h> -//# elif defined(__rtems__) -//# include "ace/os_include/signal.h" -//# else /* __QNX__ || __OpenBSD__ */ -//# include "ace/os_include/signal.h" // <siginfo.h> -//# endif /* __QNX__ || __OpenBSD__ */ -//# endif /* ACE_LACKS_SIGINFO_H */ -//# if !defined (ACE_LACKS_UCONTEXT_H) -//# include "ace/os_include/ucontext.h" -//# endif /* ACE_LACKS_UCONTEXT_H */ -//# endif /* ACE_HAS_SIGINFO_T */ - # if defined (ACE_HAS_POLL) # include "ace/os_include/poll.h" # endif /* ACE_HAS_POLL */ @@ -3480,10 +2573,6 @@ extern "C" { #define RTLD_GLOBAL 3 #endif /* !RTLD_GLOBAL */ -//# if defined (ACE_HAS_SOCKIO_H) -//# include /**/ <sys/sockio.h> -//# endif /* ACE_HAS_SOCKIO_ */ - // There must be a better way to do this... # if !defined (RLIMIT_NOFILE) # if defined (linux) || defined (AIX) || defined (SCO) @@ -3516,26 +2605,7 @@ extern "C" # include "ace/os_include/sys/mman.h" # endif /* ACE_HAS_BROKEN_MMAP_H */ -//// OSF1 has problems with sys/msg.h and C++... -//# if defined (ACE_HAS_BROKEN_MSG_H) -//# define _KERNEL -//# endif /* ACE_HAS_BROKEN_MSG_H */ -//# if !defined (ACE_LACKS_SYSV_MSG_H) # include "ace/os_include/sys/msg.h" -//# endif /* ACE_LACKS_SYSV_MSG_H */ -//# if defined (ACE_HAS_BROKEN_MSG_H) -//# undef _KERNEL -//# endif /* ACE_HAS_BROKEN_MSG_H */ - -//# if defined (ACE_LACKS_SYSV_MSQ_PROTOS) -//extern "C" -//{ -// int msgget (key_t, int); -// int msgrcv (int, void *, size_t, long, int); -// int msgsnd (int, const void *, size_t, int); -// int msgctl (int, int, struct msqid_ds *); -//} -//# endif /* ACE_LACKS_SYSV_MSQ_PROTOS */ # if defined (ACE_HAS_PRIOCNTL) # include /**/ <sys/priocntl.h> @@ -3754,74 +2824,6 @@ struct sigaction }; # endif /* ACE_LACKS_SIGACTION */ -//# if !defined (SIGHUP) -//# define SIGHUP 0 -//# endif /* SIGHUP */ -// -//# if !defined (SIGINT) -//# define SIGINT 0 -//# endif /* SIGINT */ -// -//# if !defined (SIGSEGV) -//# define SIGSEGV 0 -//# endif /* SIGSEGV */ -// -//# if !defined (SIGIO) -//# define SIGIO 0 -//# endif /* SIGSEGV */ -// -//# if !defined (SIGUSR1) -//# define SIGUSR1 0 -//# endif /* SIGUSR1 */ -// -//# if !defined (SIGUSR2) -//# define SIGUSR2 0 -//# endif /* SIGUSR2 */ -// -//# if !defined (SIGCHLD) -//# define SIGCHLD 0 -//# endif /* SIGCHLD */ -// -//# if !defined (SIGCLD) -//# define SIGCLD SIGCHLD -//# endif /* SIGCLD */ -// -//# if !defined (SIGQUIT) -//# define SIGQUIT 0 -//# endif /* SIGQUIT */ -// -//# if !defined (SIGPIPE) -//# define SIGPIPE 0 -//# endif /* SIGPIPE */ -// -//# if !defined (SIGALRM) -//# define SIGALRM 0 -//# endif /* SIGALRM */ -// -//# if !defined (SIG_DFL) -//# if defined (ACE_PSOS_DIAB_MIPS) || defined (ACE_PSOS_DIAB_PPC) -//# define SIG_DFL ((void *) 0) -//# else -//# define SIG_DFL ((__sighandler_t) 0) -//# endif -//# endif /* SIG_DFL */ -// -//# if !defined (SIG_IGN) -//# if defined (ACE_PSOS_DIAB_MIPS) || defined (ACE_PSOS_DIAB_PPC) -//# define SIG_IGN ((void *) 1) /* ignore signal */ -//# else -//# define SIG_IGN ((__sighandler_t) 1) /* ignore signal */ -//# endif -//# endif /* SIG_IGN */ -// -//# if !defined (SIG_ERR) -//# if defined (ACE_PSOS_DIAB_MIPS) || defined (ACE_PSOS_DIAB_PPC) -//# define SIG_ERR ((void *) -1) /* error return from signal */ -//# else -//# define SIG_ERR ((__sighandler_t) -1) /* error return from signal */ -//# endif -//# endif /* SIG_ERR */ - # if !defined (O_NONBLOCK) # define O_NONBLOCK 1 # endif /* O_NONBLOCK */ @@ -3987,25 +2989,6 @@ struct sigaction # define PIPE_BUF 5120 # endif /* PIPE_BUF */ -//# if !defined (PROT_RDWR) -//# define PROT_RDWR (PROT_READ|PROT_WRITE) -//# endif /* PROT_RDWR */ - -//# if defined (ACE_HAS_POSIX_NONBLOCK) -//# define ACE_NONBLOCK O_NONBLOCK -//# else -//# define ACE_NONBLOCK O_NDELAY -//# endif /* ACE_HAS_POSIX_NONBLOCK */ - -//// These are used by the <ACE_IPC_SAP::enable> and -//// <ACE_IPC_SAP::disable> methods. They must be unique and cannot -//// conflict with the value of <ACE_NONBLOCK>. We make the numbers -//// negative here so they won't conflict with other values like SIGIO, -//// etc. -//# define ACE_SIGIO -1 -//# define ACE_SIGURG -2 -//# define ACE_CLOEXEC -3 - # define LOCALNAME 0 # define REMOTENAME 1 @@ -4113,18 +3096,6 @@ typedef int ucontext_t; # define SA_RESTART 0 # endif /* SA_RESTART */ -//# if defined (ACE_HAS_TIMOD_H) -//# if defined (ACE_HAS_STL_QUEUE_CONFLICT) -//# define queue _Queue_ -//# endif /* ACE_HAS_STL_QUEUE_CONFLICT */ -//# include /**/ <sys/timod.h> -//# if defined (ACE_HAS_STL_QUEUE_CONFLICT) -//# undef queue -//# endif /* ACE_HAS_STL_QUEUE_CONFLICT */ -//# elif defined (ACE_HAS_OSF_TIMOD_H) -//# include /**/ <tli/timod.h> -//# endif /* ACE_HAS_TIMOD_H */ - /** * @class ACE_Thread_ID * @@ -4372,10 +3343,6 @@ typedef double ACE_timer_t; # include "ace/os_include/syslog.h" # endif /* !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG) */ -//# if defined (ACE_HAS_SYS_FILIO_H) -//# include /**/ <sys/filio.h> -//# endif /* ACE_HAS_SYS_FILIO_H */ - # if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) && !defined (__BORLANDC__) typedef struct _stat ACE_stat; # else diff --git a/ace/Timer_Queue_T.cpp b/ace/Timer_Queue_T.cpp index e63c618c0d4..30140ee2a5d 100644 --- a/ace/Timer_Queue_T.cpp +++ b/ace/Timer_Queue_T.cpp @@ -19,6 +19,13 @@ ACE_RCSID(ace, Timer_Queue_T, "$Id$") +// This fudge factor can be overriden for timers that need it, such as on +// Solaris, by defining the ACE_TIMER_SKEW symbol in the appropriate config +// header. +#if !defined (ACE_TIMER_SKEW) +# define ACE_TIMER_SKEW 0 +#endif /* ACE_TIMER_SKEW */ + template <class TYPE> void ACE_Timer_Node_T<TYPE>::dump (void) const { diff --git a/ace/os_include/pthread.h b/ace/os_include/pthread.h index 727f32f1c60..d2a40cfd761 100644 --- a/ace/os_include/pthread.h +++ b/ace/os_include/pthread.h @@ -50,5 +50,348 @@ extern "C" pthread_t pthread_self (void); # include /**/ <pthread.h> #endif /* !ACE_LACKS_PTHREAD_H */ + +#if defined (ACE_HAS_PTHREADS) +# define ACE_SCHED_OTHER SCHED_OTHER +# define ACE_SCHED_FIFO SCHED_FIFO +# define ACE_SCHED_RR SCHED_RR + +// Definitions for mapping POSIX pthreads draft 6 into 1003.1c names + +# if defined (ACE_HAS_PTHREADS_DRAFT6) +# define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL +# define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL +# define PTHREAD_CREATE_UNDETACHED 0 +# define PTHREAD_CREATE_DETACHED 1 +# define PTHREAD_CREATE_JOINABLE 0 +# define PTHREAD_EXPLICIT_SCHED 0 +# define PTHREAD_MIN_PRIORITY 0 +# define PTHREAD_MAX_PRIORITY 126 +# endif /* ACE_HAS_PTHREADS_DRAFT6 */ + +// Definitions for THREAD- and PROCESS-LEVEL priorities...some +// implementations define these while others don't. In order to +// further complicate matters, we don't redefine the default (*_DEF) +// values if they've already been defined, which allows individual +// programs to have their own ACE-wide "default". + +// PROCESS-level values +# if defined (_POSIX_PRIORITY_SCHEDULING) && \ + !defined(_UNICOS) && !defined(UNIXWARE_7_1) +# define ACE_PROC_PRI_FIFO_MIN (sched_get_priority_min(SCHED_FIFO)) +# define ACE_PROC_PRI_RR_MIN (sched_get_priority_min(SCHED_RR)) +# if defined (HPUX) + // HP-UX's other is the SCHED_HPUX class, which uses historical + // values that have reverse semantics from POSIX (low value is + // more important priority). To use these in pthreads calls, + // the values need to be converted. The other scheduling classes + // don't need this special treatment. +# define ACE_PROC_PRI_OTHER_MIN \ + (sched_get_priority_min(SCHED_OTHER)) +# else +# define ACE_PROC_PRI_OTHER_MIN (sched_get_priority_min(SCHED_OTHER)) +# endif /* HPUX */ +# else /* UNICOS is missing a sched_get_priority_min() implementation, + SCO too */ +# define ACE_PROC_PRI_FIFO_MIN 0 +# define ACE_PROC_PRI_RR_MIN 0 +# define ACE_PROC_PRI_OTHER_MIN 0 +# endif + +# if defined (_POSIX_PRIORITY_SCHEDULING) && !defined(UNIXWARE_7_1) +# define ACE_PROC_PRI_FIFO_MAX (sched_get_priority_max(SCHED_FIFO)) +# define ACE_PROC_PRI_RR_MAX (sched_get_priority_max(SCHED_RR)) +# if defined (HPUX) +# define ACE_PROC_PRI_OTHER_MAX \ + (sched_get_priority_max(SCHED_OTHER)) +# else +# define ACE_PROC_PRI_OTHER_MAX (sched_get_priority_max(SCHED_OTHER)) +# endif /* HPUX */ +# else /* SCO missing sched_get_priority_max() implementation */ +# define ACE_PROC_PRI_FIFO_MAX 59 +# define ACE_PROC_PRI_RR_MAX 59 +# define ACE_PROC_PRI_OTHER_MAX 59 +# endif + +# if !defined(ACE_PROC_PRI_FIFO_DEF) +# define ACE_PROC_PRI_FIFO_DEF (ACE_PROC_PRI_FIFO_MIN + (ACE_PROC_PRI_FIFO_MAX - ACE_PROC_PRI_FIFO_MIN)/2) +# endif +# if !defined(ACE_PROC_PRI_RR_DEF) +# define ACE_PROC_PRI_RR_DEF (ACE_PROC_PRI_RR_MIN + (ACE_PROC_PRI_RR_MAX - ACE_PROC_PRI_RR_MIN)/2) +# endif +# if !defined(ACE_PROC_PRI_OTHER_DEF) +# define ACE_PROC_PRI_OTHER_DEF (ACE_PROC_PRI_OTHER_MIN + (ACE_PROC_PRI_OTHER_MAX - ACE_PROC_PRI_OTHER_MIN)/2) +# endif + +// THREAD-level values +# if defined(PRI_FIFO_MIN) && defined(PRI_FIFO_MAX) && defined(PRI_RR_MIN) && defined(PRI_RR_MAX) && defined(PRI_OTHER_MIN) && defined(PRI_OTHER_MAX) +# if !defined (ACE_THR_PRI_FIFO_MIN) +# define ACE_THR_PRI_FIFO_MIN (long) PRI_FIFO_MIN +# endif /* !ACE_THR_PRI_FIFO_MIN */ +# if !defined (ACE_THR_PRI_FIFO_MAX) +# define ACE_THR_PRI_FIFO_MAX (long) PRI_FIFO_MAX +# endif /* !ACE_THR_PRI_FIFO_MAX */ +# if !defined (ACE_THR_PRI_RR_MIN) +# define ACE_THR_PRI_RR_MIN (long) PRI_RR_MIN +# endif /* !ACE_THR_PRI_RR_MIN */ +# if !defined (ACE_THR_PRI_RR_MAX) +# define ACE_THR_PRI_RR_MAX (long) PRI_RR_MAX +# endif /* !ACE_THR_PRI_RR_MAX */ +# if !defined (ACE_THR_PRI_OTHER_MIN) +# define ACE_THR_PRI_OTHER_MIN (long) PRI_OTHER_MIN +# endif /* !ACE_THR_PRI_OTHER_MIN */ +# if !defined (ACE_THR_PRI_OTHER_MAX) +# define ACE_THR_PRI_OTHER_MAX (long) PRI_OTHER_MAX +# endif /* !ACE_THR_PRI_OTHER_MAX */ +# elif defined (AIX) + // AIX's priority range is 1 (low) to 127 (high). There aren't + // any preprocessor macros I can find. PRIORITY_MIN is for + // process priorities, as far as I can see, and does not apply + // to thread priority. The 1 to 127 range is from the + // pthread_attr_setschedparam man page (Steve Huston, 18-May-2001). +# if !defined (ACE_THR_PRI_FIFO_MIN) +# define ACE_THR_PRI_FIFO_MIN (long) 1 +# endif /* !ACE_THR_PRI_FIFO_MIN */ +# if !defined (ACE_THR_PRI_FIFO_MAX) +# define ACE_THR_PRI_FIFO_MAX (long) 127 +# endif /* !ACE_THR_PRI_FIFO_MAX */ +# if !defined (ACE_THR_PRI_RR_MIN) +# define ACE_THR_PRI_RR_MIN (long) 1 +# endif /* !ACE_THR_PRI_RR_MIN */ +# if !defined (ACE_THR_PRI_RR_MAX) +# define ACE_THR_PRI_RR_MAX (long) 127 +# endif /* !ACE_THR_PRI_RR_MAX */ +# if !defined (ACE_THR_PRI_OTHER_MIN) +# define ACE_THR_PRI_OTHER_MIN (long) 1 +# endif /* !ACE_THR_PRI_OTHER_MIN */ +# if !defined (ACE_THR_PRI_OTHER_MAX) +# define ACE_THR_PRI_OTHER_MAX (long) 127 +# endif /* !ACE_THR_PRI_OTHER_MAX */ +# elif defined (sun) +# if !defined (ACE_THR_PRI_FIFO_MIN) +# define ACE_THR_PRI_FIFO_MIN (long) 0 +# endif /* !ACE_THR_PRI_FIFO_MIN */ +# if !defined (ACE_THR_PRI_FIFO_MAX) +# define ACE_THR_PRI_FIFO_MAX (long) 59 +# endif /* !ACE_THR_PRI_FIFO_MAX */ +# if !defined (ACE_THR_PRI_RR_MIN) +# define ACE_THR_PRI_RR_MIN (long) 0 +# endif /* !ACE_THR_PRI_RR_MIN */ +# if !defined (ACE_THR_PRI_RR_MAX) +# define ACE_THR_PRI_RR_MAX (long) 59 +# endif /* !ACE_THR_PRI_RR_MAX */ +# if !defined (ACE_THR_PRI_OTHER_MIN) +# define ACE_THR_PRI_OTHER_MIN (long) 0 +# endif /* !ACE_THR_PRI_OTHER_MIN */ +# if !defined (ACE_THR_PRI_OTHER_MAX) +# define ACE_THR_PRI_OTHER_MAX (long) 127 +# endif /* !ACE_THR_PRI_OTHER_MAX */ +# else +# if !defined (ACE_THR_PRI_FIFO_MIN) +# define ACE_THR_PRI_FIFO_MIN (long) ACE_PROC_PRI_FIFO_MIN +# endif /* !ACE_THR_PRI_FIFO_MIN */ +# if !defined (ACE_THR_PRI_FIFO_MAX) +# define ACE_THR_PRI_FIFO_MAX (long) ACE_PROC_PRI_FIFO_MAX +# endif /* !ACE_THR_PRI_FIFO_MAX */ +# if !defined (ACE_THR_PRI_RR_MIN) +# define ACE_THR_PRI_RR_MIN (long) ACE_PROC_PRI_RR_MIN +# endif /* !ACE_THR_PRI_RR_MIN */ +# if !defined (ACE_THR_PRI_RR_MAX) +# define ACE_THR_PRI_RR_MAX (long) ACE_PROC_PRI_RR_MAX +# endif /* !ACE_THR_PRI_RR_MAX */ +# if !defined (ACE_THR_PRI_OTHER_MIN) +# define ACE_THR_PRI_OTHER_MIN (long) ACE_PROC_PRI_OTHER_MIN +# endif /* !ACE_THR_PRI_OTHER_MIN */ +# if !defined (ACE_THR_PRI_OTHER_MAX) +# define ACE_THR_PRI_OTHER_MAX (long) ACE_PROC_PRI_OTHER_MAX +# endif /* !ACE_THR_PRI_OTHER_MAX */ +# endif +# if !defined(ACE_THR_PRI_FIFO_DEF) +# define ACE_THR_PRI_FIFO_DEF ((ACE_THR_PRI_FIFO_MIN + ACE_THR_PRI_FIFO_MAX)/2) +# endif +# if !defined(ACE_THR_PRI_RR_DEF) +# define ACE_THR_PRI_RR_DEF ((ACE_THR_PRI_RR_MIN + ACE_THR_PRI_RR_MAX)/2) +# endif +# if !defined(ACE_THR_PRI_OTHER_DEF) +# define ACE_THR_PRI_OTHER_DEF ((ACE_THR_PRI_OTHER_MIN + ACE_THR_PRI_OTHER_MAX)/2) +# endif + // Typedefs to help compatibility with Windows NT and Pthreads. + typedef pthread_t ACE_hthread_t; + typedef pthread_t ACE_thread_t; + +# if defined (ACE_HAS_TSS_EMULATION) + typedef pthread_key_t ACE_OS_thread_key_t; + typedef u_long ACE_thread_key_t; +# else /* ! ACE_HAS_TSS_EMULATION */ + typedef pthread_key_t ACE_thread_key_t; +# endif /* ! ACE_HAS_TSS_EMULATION */ + +# if !defined (ACE_LACKS_COND_T) + typedef pthread_mutex_t ACE_mutex_t; + typedef pthread_cond_t ACE_cond_t; + typedef pthread_condattr_t ACE_condattr_t; + typedef pthread_mutexattr_t ACE_mutexattr_t; +# endif /* ! ACE_LACKS_COND_T */ + typedef pthread_mutex_t ACE_thread_mutex_t; + +# if !defined (PTHREAD_CANCEL_DISABLE) +# define PTHREAD_CANCEL_DISABLE 0 +# endif /* PTHREAD_CANCEL_DISABLE */ + +# if !defined (PTHREAD_CANCEL_ENABLE) +# define PTHREAD_CANCEL_ENABLE 0 +# endif /* PTHREAD_CANCEL_ENABLE */ + +# if !defined (PTHREAD_CANCEL_DEFERRED) +# define PTHREAD_CANCEL_DEFERRED 0 +# endif /* PTHREAD_CANCEL_DEFERRED */ + +# if !defined (PTHREAD_CANCEL_ASYNCHRONOUS) +# define PTHREAD_CANCEL_ASYNCHRONOUS 0 +# endif /* PTHREAD_CANCEL_ASYNCHRONOUS */ + +# define THR_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE +# define THR_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE +# define THR_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED +# define THR_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS + +# if !defined (PTHREAD_CREATE_JOINABLE) +# if defined (PTHREAD_CREATE_UNDETACHED) +# define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED +# else +# define PTHREAD_CREATE_JOINABLE 0 +# endif /* PTHREAD_CREATE_UNDETACHED */ +# endif /* PTHREAD_CREATE_JOINABLE */ + +# if !defined (PTHREAD_CREATE_DETACHED) +# define PTHREAD_CREATE_DETACHED 1 +# endif /* PTHREAD_CREATE_DETACHED */ + +# if !defined (PTHREAD_PROCESS_PRIVATE) && !defined (ACE_HAS_PTHREAD_PROCESS_ENUM) +# if defined (PTHREAD_MUTEXTYPE_FAST) +# define PTHREAD_PROCESS_PRIVATE PTHREAD_MUTEXTYPE_FAST +# else +# define PTHREAD_PROCESS_PRIVATE 0 +# endif /* PTHREAD_MUTEXTYPE_FAST */ +# endif /* PTHREAD_PROCESS_PRIVATE */ + +# if !defined (PTHREAD_PROCESS_SHARED) && !defined (ACE_HAS_PTHREAD_PROCESS_ENUM) +# if defined (PTHREAD_MUTEXTYPE_FAST) +# define PTHREAD_PROCESS_SHARED PTHREAD_MUTEXTYPE_FAST +# else +# define PTHREAD_PROCESS_SHARED 1 +# endif /* PTHREAD_MUTEXTYPE_FAST */ +# endif /* PTHREAD_PROCESS_SHARED */ + +# if defined (ACE_HAS_PTHREADS_DRAFT4) +# if defined (PTHREAD_PROCESS_PRIVATE) +# if !defined (USYNC_THREAD) +# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE +# endif /* ! USYNC_THREAD */ +# else +# if !defined (USYNC_THREAD) +# define USYNC_THREAD MUTEX_NONRECURSIVE_NP +# endif /* ! USYNC_THREAD */ +# endif /* PTHREAD_PROCESS_PRIVATE */ + +# if defined (PTHREAD_PROCESS_SHARED) +# if !defined (USYNC_PROCESS) +# define USYNC_PROCESS PTHREAD_PROCESS_SHARED +# endif /* ! USYNC_PROCESS */ +# else +# if !defined (USYNC_PROCESS) +# define USYNC_PROCESS MUTEX_NONRECURSIVE_NP +# endif /* ! USYNC_PROCESS */ +# endif /* PTHREAD_PROCESS_SHARED */ +# elif !defined (ACE_HAS_STHREADS) +# if !defined (USYNC_THREAD) +# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE +# endif /* ! USYNC_THREAD */ +# if !defined (USYNC_PROCESS) +# define USYNC_PROCESS PTHREAD_PROCESS_SHARED +# endif /* ! USYNC_PROCESS */ +# endif /* ACE_HAS_PTHREADS_DRAFT4 */ + + /* MM-Graz: prevent warnings */ +# undef THR_BOUND +# undef THR_NEW_LWP +# undef THR_DETACHED +# undef THR_SUSPENDED +# undef THR_DAEMON + +# define THR_BOUND 0x00000001 +# if defined (CHORUS) +# define THR_NEW_LWP 0x00000000 +# else +# define THR_NEW_LWP 0x00000002 +# endif /* CHORUS */ +# define THR_DETACHED 0x00000040 +# define THR_SUSPENDED 0x00000080 +# define THR_DAEMON 0x00000100 +# define THR_JOINABLE 0x00010000 +# define THR_SCHED_FIFO 0x00020000 +# define THR_SCHED_RR 0x00040000 +# define THR_SCHED_DEFAULT 0x00080000 + +# if defined (ACE_HAS_IRIX62_THREADS) +# define THR_SCOPE_SYSTEM 0x00100000 +# else +# define THR_SCOPE_SYSTEM THR_BOUND +# endif /*ACE_HAS_IRIX62_THREADS*/ + +# define THR_SCOPE_PROCESS 0x00200000 +# define THR_INHERIT_SCHED 0x00400000 +# define THR_EXPLICIT_SCHED 0x00800000 +# define THR_SCHED_IO 0x01000000 + +# if !defined (ACE_HAS_STHREADS) +# if !defined (ACE_HAS_POSIX_SEM) +/** + * @class ACE_sema_t + * + * @brief This is used to implement semaphores for platforms that support + * POSIX pthreads, but do *not* support POSIX semaphores, i.e., + * it's a different type than the POSIX <sem_t>. + */ +class ACE_OS_Export ACE_sema_t +{ +friend class ACE_OS; +protected: + /// Serialize access to internal state. + ACE_mutex_t lock_; + + /// Block until there are no waiters. + ACE_cond_t count_nonzero_; + + /// Count of the semaphore. + u_long count_; + + /// Number of threads that have called <ACE_OS::sema_wait>. + u_long waiters_; +}; +# endif /* !ACE_HAS_POSIX_SEM */ + +# if defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) + // If we are on Solaris we can just reuse the existing + // implementations of these synchronization types. +# if !defined (ACE_LACKS_RWLOCK_T) +# include /**/ <synch.h> + typedef rwlock_t ACE_rwlock_t; +# endif /* !ACE_LACKS_RWLOCK_T */ +# include /**/ <thread.h> +# endif /* (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) */ + +# else +# if !defined (ACE_HAS_POSIX_SEM) + typedef sema_t ACE_sema_t; +# endif /* !ACE_HAS_POSIX_SEM */ +# endif /* !ACE_HAS_STHREADS */ + +# if defined (ACE_HAS_PTHREADS_UNIX98_EXT) + typedef pthread_rwlock_t ACE_rwlock_t; +# endif /* ACE_HAS_PTHREADS_UNIX98_EXT */ + +#endif /* ACE_HAS_PTHREADS */ + #include "ace/post.h" #endif /* ACE_OS_INCLUDE_PTHREAD_H */ diff --git a/ace/os_include/stdio.h b/ace/os_include/stdio.h index cee353d8273..b731e3dee4e 100644 --- a/ace/os_include/stdio.h +++ b/ace/os_include/stdio.h @@ -71,5 +71,15 @@ # define ACE_STDERR 2 #endif /* ACE_WIN32 */ +#if defined (ACE_PSOS_SNARFS_HEADER_INFO) + // Header information snarfed from compiler provided header files + // that are not included because there is already an identically + // named file provided with pSOS, which does not have this info + // from compiler supplied stdio.h + extern FILE *fdopen(int, const char *); + extern char *tempnam(const char *, const char *); + extern "C" int fileno(FILE *); +# endif /* ACE_PSOS_SNARFS_HEADER_INFO */ + #include "ace/post.h" #endif /* ACE_OS_INCLUDE_STDIO_H */ diff --git a/ace/os_include/stdlib.h b/ace/os_include/stdlib.h index bffe2095cb5..b6447a4f2ce 100644 --- a/ace/os_include/stdlib.h +++ b/ace/os_include/stdlib.h @@ -45,5 +45,13 @@ typedef u_int ACE_RANDR_TYPE; # endif /* HPUX_10 */ # endif /* ACE_HAS_BROKEN_RANDR */ +#if defined (ACE_PSOS_SNARFS_HEADER_INFO) + // Header information snarfed from compiler provided header files + // that are not included because there is already an identically + // named file provided with pSOS, which does not have this info + // from compiler supplied header + extern int putenv (char *); // stdlib.h +#endif /* ACE_PSOS_SNARFS_HEADER_INFO */ + #include "ace/post.h" #endif /* ACE_OS_INCLUDE_STDLIB_H */ diff --git a/ace/os_include/string.h b/ace/os_include/string.h index bb58d988e2b..a9e14388c2e 100644 --- a/ace/os_include/string.h +++ b/ace/os_include/string.h @@ -45,5 +45,13 @@ extern "C" char *strtok_r (char *s, const char *delim, char **save_ptr); # define ACE_SPRINTF_ADAPTER(X) X #endif /* ACE_HAS_CHARPTR_SPRINTF */ +#if defined (ACE_PSOS_SNARFS_HEADER_INFO) + // Header information snarfed from compiler provided header files + // that are not included because there is already an identically + // named file provided with pSOS, which does not have this info + // from compiler supplied header + extern char *strdup (const char *); // string.h +#endif /* ACE_PSOS_SNARFS_HEADER_INFO */ + #include "ace/post.h" #endif /* ACE_OS_INCLUDE_STRING_H */ diff --git a/ace/os_include/sys/stat.h b/ace/os_include/sys/stat.h index 4726ddfac1c..e2bf37037fd 100644 --- a/ace/os_include/sys/stat.h +++ b/ace/os_include/sys/stat.h @@ -103,5 +103,15 @@ struct stat # define _fstat fstat #endif /* __BORLANDC__ */ +#if defined (ACE_PSOS_SNARFS_HEADER_INFO) + // Header information snarfed from compiler provided header files + // that are not included because there is already an identically + // named file provided with pSOS, which does not have this info + // from compiler supplied header + extern mode_t umask (mode_t); //sys/stat.h + extern int mkfifo (const char *, mode_t); //sys/stat.h + extern int mkdir (const char *, mode_t); //sys/stat.h +#endif /* ACE_PSOS_SNARFS_HEADER_INFO */ + #include "ace/post.h" #endif /* ACE_OS_INCLUDE_SYS_STAT_H */ diff --git a/ace/os_include/unistd.h b/ace/os_include/unistd.h index 7b37e73e18c..a99ae3183be 100644 --- a/ace/os_include/unistd.h +++ b/ace/os_include/unistd.h @@ -87,5 +87,17 @@ extern "C" ACE_LOFF_T llseek (int fd, ACE_LOFF_T offset, int whence); # define _isatty isatty #endif /* __BORLANDC__ */ +#if defined (ACE_PSOS_SNARFS_HEADER_INFO) + // Header information snarfed from compiler provided header files + // that are not included because there is already an identically + // named file provided with pSOS, which does not have this info + // from compiler supplied header + extern int getopt(int, char *const *, const char *); + int isatty (int h); +#endif /* ACE_PSOS_SNARFS_HEADER_INFO */ + + + + #include "ace/post.h" #endif /* ACE_OS_INCLUDE_UNISTD_H */ diff --git a/apps/gperf/src/Vectors.h b/apps/gperf/src/Vectors.h index e6eec45d355..236ff0986eb 100644 --- a/apps/gperf/src/Vectors.h +++ b/apps/gperf/src/Vectors.h @@ -32,6 +32,18 @@ #if defined (ACE_HAS_GPERF) +// Do not change these values wantonly since GPERF depends on them.. +#define ACE_ASCII_SIZE 128 +#define ACE_EBCDIC_SIZE 256 + +#if 'a' < 'A' +#define ACE_HAS_EBCDIC +#define ACE_STANDARD_CHARACTER_SET_SIZE 256 +#else +#define ACE_HAS_ASCII +#define ACE_STANDARD_CHARACTER_SET_SIZE 128 +#endif /* 'a' < 'A' */ + class Vectors { // = TITLE |