diff options
author | cdgill <cdgill@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-03-16 21:23:53 +0000 |
---|---|---|
committer | cdgill <cdgill@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-03-16 21:23:53 +0000 |
commit | 30772484d584ad77092263d4cbae68b95931ab25 (patch) | |
tree | 001421cd6d012f17d9159d82cf7ba1ddd7dbc9c2 | |
parent | 38552aab998493110534c4e8ff9b13822f2ea9e1 (diff) | |
download | ATCD-30772484d584ad77092263d4cbae68b95931ab25.tar.gz |
pSOS MIPS patches from Jaepil Kim
-rw-r--r-- | ChangeLog-99b | 16 | ||||
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | ace/ACE.cpp | 2 | ||||
-rw-r--r-- | ace/ACE.i | 4 | ||||
-rw-r--r-- | ace/FIFO.cpp | 17 | ||||
-rw-r--r-- | ace/Log_Record.cpp | 9 | ||||
-rw-r--r-- | ace/OS.cpp | 15 | ||||
-rw-r--r-- | ace/OS.h | 68 | ||||
-rw-r--r-- | ace/OS.i | 90 | ||||
-rw-r--r-- | ace/SOCK_Dgram_Mcast.cpp | 4 | ||||
-rw-r--r-- | ace/SPIPE_Connector.cpp | 18 | ||||
-rw-r--r-- | ace/TLI_Acceptor.cpp | 4 | ||||
-rw-r--r-- | ace/config-psos-diab-mips.h | 243 | ||||
-rw-r--r-- | ace/config-psos-diab.h | 5 | ||||
-rw-r--r-- | ace/config-psos-tm.h | 2 | ||||
-rw-r--r-- | ace/streams.h | 48 |
16 files changed, 460 insertions, 86 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b index 66582fa1a9f..67c1c92c2fd 100644 --- a/ChangeLog-99b +++ b/ChangeLog-99b @@ -1,3 +1,19 @@ +Tue Mar 16 15:15:00 1999 Chris Gill <cdgill@cs.wustl.edu> + + * ace/ACE.{cpp, i} + ace/OS.{cpp, h, i} + ace/FIFO.cpp + ace/Log_Record.cpp + ace/SOCK_Dgram_Mcast.cpp + ace/SPIPE_Connector.cpp + ace/TLI_Acceptor.cpp + ace/config-psos-diab-mips.h (new) + ace/config-psos-diab.h + ace/config-psos-tm.h + ace/streams.h: integrated pSOS/MIPS changes into ACE. Thanks to + Jaepil Kim (jpkim@lgsoft.com) for completing the ACE pSOS port + for the MIPS platform, and for sending these modifications. + Tue Mar 16 14:25:03 1999 Steve Huston <shuston@riverace.com> * ace/ACE.cpp (get_ip_interfaces, count_interfaces, get_bcast_addr): @@ -786,6 +786,7 @@ Francois Bernier <fbernier@gel.ulaval.ca> Bill Rizzi <rizzi@softserv.com> Peter Windle <peterw@ugsolutions.com> Andy Alvarez <axab@eci.esys.com> +Jaepil Kim <jpkim@lgsoft.com> I would particularly like to thank Paul Stephenson, who worked with me at Ericsson and is now at ObjectSpace. Paul devised the recursive diff --git a/ace/ACE.cpp b/ace/ACE.cpp index 9bf9430a63b..1dae13086da 100644 --- a/ace/ACE.cpp +++ b/ace/ACE.cpp @@ -568,6 +568,7 @@ netsvc.so netsvc.so + warning libnetsvc.so */ +#if ! defined (ACE_PSOS_DIAB_MIPS) int ACE::ldfind (const ASYS_TCHAR filename[], ASYS_TCHAR pathname[], @@ -922,6 +923,7 @@ ACE::open_temp_file (const char *name, int mode, int perm) return handle; #endif /* ACE_WIN32 */ } +#endif /* ! ACE_PSOS_DIAB_MIPS */ const char * ACE::basename (const char *pathname, char delim) diff --git a/ace/ACE.i b/ace/ACE.i index 80f0f0b4645..5b006529771 100644 --- a/ace/ACE.i +++ b/ace/ACE.i @@ -8,7 +8,7 @@ ACE::send (ACE_HANDLE handle, const void *buf, size_t len) { ACE_TRACE ("ACE::send"); -#if defined (ACE_WIN32) +#if defined (ACE_WIN32) || defined (ACE_PSOS) return ACE_OS::send (handle, (const char *) buf, len); #else return ACE_OS::write (handle, (const char *) buf, len); @@ -26,7 +26,7 @@ ASYS_INLINE ssize_t ACE::recv (ACE_HANDLE handle, void *buf, size_t len) { ACE_TRACE ("ACE::recv"); -#if defined (ACE_WIN32) +#if defined (ACE_WIN32) || defined (ACE_PSOS) return ACE_OS::recv (handle, (char *) buf, len); #else return ACE_OS::read (handle, (char *) buf, len); diff --git a/ace/FIFO.cpp b/ace/FIFO.cpp index 840ddb8d7bc..7301dae0df9 100644 --- a/ace/FIFO.cpp +++ b/ace/FIFO.cpp @@ -31,22 +31,28 @@ ACE_FIFO::open (const char *r, int flags, int perms, ACE_TRACE ("ACE_FIFO::open"); ACE_OS::strncpy (this->rendezvous_, r, MAXPATHLEN); - if ((flags & O_CREAT) != 0 - && ACE_OS::mkfifo (this->rendezvous_, perms) == -1 +#if defined (ACE_PSOS_DIAB_MIPS) + if ( ACE_OS::mkfifo (this->rendezvous_, perms) == -1 && !(errno == EEXIST)) return -1; +#else + if ((flags & O_CREAT) != 0 + && ACE_OS::mkfifo (this->rendezvous_, perms) == -1 + && !(errno == EEXIST)) + return -1; +#endif this->set_handle (ACE_OS::open (this->rendezvous_, flags, 0, sa)); return this->get_handle () == ACE_INVALID_HANDLE ? -1 : 0; } -ACE_FIFO::ACE_FIFO (const char *fifo_name, - int flags, +ACE_FIFO::ACE_FIFO (const char *fifo_name, + int flags, int perms, LPSECURITY_ATTRIBUTES sa) { ACE_TRACE ("ACE_FIFO::ACE_FIFO"); - if (this->open (fifo_name, flags, perms, sa) == -1) + if (this->open (fifo_name, flags, perms, sa) == -1) ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("ACE_FIFO"))); } @@ -68,4 +74,3 @@ ACE_FIFO::close (void) } return result; } - diff --git a/ace/Log_Record.cpp b/ace/Log_Record.cpp index 4c569fec68b..7894e7684eb 100644 --- a/ace/Log_Record.cpp +++ b/ace/Log_Record.cpp @@ -183,7 +183,7 @@ ACE_Log_Record::print (const ASYS_TCHAR *host_name, { if (log_window == 0) log_window = ACE_CE_Bridge::get_default_winbridge (); - + CString *verbose_cstring = new CString (verbose_msg); // <verbose_cstring> will be deleted by <write_msg> function @@ -212,7 +212,7 @@ ACE_Log_Record::print (const ASYS_TCHAR *host_name, 1, verbose_msg_len, fp); - + // We should have written everything if (fwrite_result != verbose_msg_len) { @@ -221,7 +221,7 @@ ACE_Log_Record::print (const ASYS_TCHAR *host_name, else { ACE_OS::fflush (fp); - } + } } } @@ -239,7 +239,7 @@ ACE_Log_Record::print (const ASYS_TCHAR host_name[], int result = this->format_msg (host_name, verbose_flag, verbose_msg); if (result == 0) - { + { s << verbose_msg; s.flush (); } @@ -248,4 +248,3 @@ ACE_Log_Record::print (const ASYS_TCHAR host_name[], } #endif /* ! ACE_LACKS_IOSTREAM_TOTALLY */ - diff --git a/ace/OS.cpp b/ace/OS.cpp index 40824747ef4..3aa3cb7c6e6 100644 --- a/ace/OS.cpp +++ b/ace/OS.cpp @@ -5015,12 +5015,17 @@ ACE_OS::ctime_r (const time_t *clock, time_t ACE_OS::mktime (struct tm *t) { - // ACE_TRACE ("ACE_OS::asctime"); -# if defined (ACE_HAS_THREADS) && !defined (ACE_HAS_MT_SAFE_MKTIME) + // ACE_TRACE ("ACE_OS::mktime"); +# if defined (ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME) + ACE_UNUSED_ARG (t); + ACE_NOTSUP_RETURN (-1); +# else +# if defined (ACE_HAS_THREADS) && !defined (ACE_HAS_MT_SAFE_MKTIME) ACE_OS_GUARD -# endif /* ACE_HAS_THREADS && ! ACE_HAS_MT_SAFE_MKTIME */ +# endif /* ACE_HAS_THREADS && ! ACE_HAS_MT_SAFE_MKTIME */ ACE_OSCALL_RETURN (::mktime (t), time_t, (time_t) -1); +# endif /* ACE_PSOS && ! ACE_PSOS_HAS_TIME */ } # endif /* !ACE_HAS_WINCE */ @@ -5091,7 +5096,7 @@ ACE_OS::rwlock_init (ACE_rwlock_t *rw, } # endif /* ! ACE_HAS_THREADS || ACE_LACKS_RWLOCK_T */ -#if defined (ACE_LACKS_COND_T) +#if defined (ACE_LACKS_COND_T) && ! defined (ACE_PSOS_DIAB_MIPS) // NOTE: The ACE_OS::cond_* functions for some non-Unix platforms are // defined here either because they're too big to be inlined, or // to avoid use before definition if they were inline. @@ -5847,7 +5852,7 @@ ACE_PSOS_Time_t::init_simulator_time (void) // Static member function to initialize system time, using UNIX calls. # endif /* ACE_PSOSIM */ -# endif /* ACE_PSOS */ +# endif /* ACE_PSOS && ! ACE_PSOS_DIAB_MIPS */ # if defined (__DGUX) && defined (ACE_HAS_THREADS) && defined (_POSIX4A_DRAFT10_SOURCE) extern "C" int __d6_sigwait (sigset_t *set); @@ -18,6 +18,7 @@ #ifndef ACE_OS_H # define ACE_OS_H + // This file should be a link to the platform/compiler-specific // configuration file (e.g., config-sunos5-sunc++-4.x.h). # include "ace/inc_user_config.h" @@ -668,6 +669,18 @@ typedef int key_t; # endif /* ! defined (ACE_PSOS_PROVIDES_ERROR_SYMBOLS_TM) */ # define ERRMAX 151 /* Last error number */ +# if ! defined (NSIG) +# define NSIG 32 +# endif /* NSIG */ + +# if ! defined (TCP_NODELAY) +# define TCP_NODELAY 1 +# endif /* TCP_NODELAY */ + +#if defined (ACE_LACKS_ASSERT_MACRO) + #define assert(expr) +#endif + # if defined (ACE_PSOSIM) # include /**/ <ace/sys_conf.h> /* system configuration file */ @@ -724,10 +737,14 @@ typedef int key_t; # include /**/ <pna.h> /* pNA+ TCP/IP Network Manager calls */ # include /**/ <phile.h> /* pHILE+ file system calls */ // #include /**/ <prepccfg.h> /* pREPC+ file system calls */ - -// These are colliding with the pSOS libraries -// # include /**/ <unistd.h> /* Diab Data supplied file system calls */ -// # include /**/ <sys/wait.h> /* Diab Data supplied header file */ +# if defined (ACE_PSOS_DIAB_MIPS) +# if defined (ACE_PSOS_USES_DIAB_SYS_CALLS) +# include /**/ <unistd.h> /* Diab Data supplied file system calls */ +# else +# include /**/ <prepc.h> +# endif /* ACE_PSOS_USES_DIAB_SYS_CALLS */ +# include /**/ <sys/wait.h> /* Diab Data supplied header file */ +# endif /* ACE_PSOS_DIAB_MIPS */ // This collides with phile.h // #include /**/ <sys/stat.h> /* Diab Data supplied header file */ @@ -972,6 +989,8 @@ typedef struct timespec } timespec_t; # endif +#if defined (ACE_PSOS_HAS_TIME) + // Use pSOS time, wrapped . . . class ACE_Export ACE_PSOS_Time_t { @@ -1033,6 +1052,7 @@ private: u_long ticks_; // ticks: number of system clock ticks (KC_TICKS2SEC-1 max) } ; +#endif /* ACE_PSOS_HAS_TIME */ # endif /* defined (ACE_PSOS) */ @@ -1097,13 +1117,13 @@ extern "C" pthread_t pthread_self (void); # define ACE_TRACE(X) ACE_Trace ____ (ASYS_TEXT (X), __LINE__, ASYS_TEXT (__FILE__)) # endif /* ACE_NTRACE */ -# if !defined (ACE_HAS_WINCE) -# include /**/ <time.h> +# if !defined (ACE_HAS_WINCE) && !defined (ACE_PSOS_DIAB_MIPS) +# include /**/ <time.h> # if defined (__Lynx__) # include /**/ <st.h> # include /**/ <sem.h> # endif /* __Lynx__ */ -# endif /* ACE_HAS_WINCE */ +# endif /* ACE_HAS_WINCE ACE_PSOS_DIAB_MIPS */ # if defined (ACE_LACKS_SYSTIME_H) // Some platforms may need to include this, but I suspect that most @@ -2480,16 +2500,30 @@ protected: # define BUFSIZ LC_BUFSIZ # endif /* defined (ACE_PSOS) */ +#if defined (ACE_PSOS_DIAB_MIPS) +#undef size_t +typedef unsigned int size_t; +#endif + # include /**/ <new.h> + +# if !defined (ACE_PSOS_DIAB_MIPS) # include /**/ <signal.h> +# endif /* ACE_PSOS_DIAB_MIPS */ + # include /**/ <errno.h> + +# if ! defined (ACE_PSOS_DIAB_MIPS) # include /**/ <fcntl.h> +# endif /* ! ACE_PSOS_DIAB_MIPS */ # endif /* ACE_HAS_WINCE */ # include /**/ <limits.h> # include /**/ <ctype.h> +# if ! defined (ACE_PSOS_DIAB_MIPS) # include /**/ <string.h> # include /**/ <stdlib.h> +# endif /* ! ACE_PSOS_DIAB_MIPS */ # include /**/ <float.h> // This is defined by XOPEN to be a minimum of 16. POSIX.1g @@ -2549,7 +2583,9 @@ protected: # endif /* ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */ # if !defined (ACE_HAS_WINCE) +# if ! defined (ACE_PSOS_DIAB_MIPS) # include /**/ <fcntl.h> +# endif /* ! ACE_PSOS_DIAB_MIPS */ # endif /* ACE_HAS_WINCE */ // This must come after signal.h is #included. @@ -3755,15 +3791,27 @@ struct sigaction # endif /* SIGALRM */ # if !defined (SIG_DFL) -# define SIG_DFL ((__sighandler_t) 0) +# if defined (ACE_PSOS_DIAB_MIPS) +# define SIG_DFL ((void *) 0) +# else +# define SIG_DFL ((__sighandler_t) 0) +# endif # endif /* SIG_DFL */ # if !defined (SIG_IGN) -# define SIG_IGN ((__sighandler_t) 1) /* ignore signal */ +# if defined (ACE_PSOS_DIAB_MIPS) +# define SIG_IGN ((void *) 1) /* ignore signal */ +# else +# define SIG_IGN ((__sighandler_t) 1) /* ignore signal */ +# endif # endif /* SIG_IGN */ # if !defined (SIG_ERR) -# define SIG_ERR ((__sighandler_t) -1) /* error return from signal */ +# if defined (ACE_PSOS_DIAB_MIPS) +# 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) @@ -423,7 +423,9 @@ operator - (const ACE_Time_Value &tv1, # include /**/ <cstring> # else # if defined (ACE_LACKS_MEMORY_H) -# include /**/ <string.h> +# if !defined (ACE_PSOS_DIAB_MIPS) +# include /**/ <string.h> +# endif /* ACE_PSOS_DIAB_MIPS */ # else # include /**/ <memory.h> # endif /* VXWORKS */ @@ -870,7 +872,7 @@ ACE_OS::clock_gettime (clockid_t clockid, struct timespec *ts) // ACE_TRACE ("ACE_OS::clock_gettime"); #if defined (ACE_HAS_CLOCK_GETTIME) ACE_OSCALL_RETURN (::clock_gettime (clockid, ts), int, -1); -#elif defined (ACE_PSOS) +# elif defined (ACE_PSOS) && ! defined (ACE_PSOS_DIAB_MIPS) ACE_UNUSED_ARG (clockid); ACE_PSOS_Time_t pt; int result = ACE_PSOS_Time_t::get_system_time(pt); @@ -966,7 +968,15 @@ ACE_OS::time (time_t *tloc) { #if !defined (ACE_HAS_WINCE) // ACE_TRACE ("ACE_OS::time"); +# if defined (ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME) + unsigned long d_date, d_time, d_tick; + tm_get(&d_date, &d_time, &d_tick); // get current time + if (tloc) + *tloc = d_time; // set time as time_t + return d_time; +# else ACE_OSCALL_RETURN (::time (tloc), time_t, (time_t) -1); +# endif /* ACE_PSOS && ! ACE_PSOS_HAS_TIME */ #else time_t retv = ACE_OS::gettimeofday ().sec (); if (tloc) @@ -995,11 +1005,18 @@ ACE_OS::unlink (const char *path) { // ACE_TRACE ("ACE_OS::unlink"); # if defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::unlink ((char *) path), ace_result_), - int, -1); -# elif defined (ACE_PSOS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::remove ((char *) path), ace_result_), - int, -1); + ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::unlink ((char *) path), + ace_result_), + int, -1); +# elif defined (ACE_PSOS) && ! defined (ACE_PSOS_LACKS_PHILE) + ACE_OSCALL_RETURN (::remove_f ((char *) path), int , -1); +# elif defined (ACE_PSOS) && defined (ACE_PSOS_HAS_C_LIBRARY) + ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::remove ((char *) path), + ace_result_), + int, -1); +# elif defined (ACE_LACKS_UNLINK) + ACE_UNUSED_ARG (path); + ACE_NOTSUP_RETURN (-1); # else ACE_OSCALL_RETURN (::unlink (path), int, -1); # endif /* VXWORKS */ @@ -3389,6 +3406,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv) # endif /* ACE_HAS_POSIX_SEM */ } + ACE_INLINE int ACE_OS::rw_tryrdlock (ACE_rwlock_t *rw) { @@ -5130,7 +5148,11 @@ ACE_OS::signal (int signum, ACE_SignalHandler func) if (signum == 0) return 0; else -#if defined (ACE_PSOS_TM) //JINLU +#if defined (ACE_PSOS) && !defined (ACE_PSOS_TM) && !defined (ACE_PSOS_DIAB_MIPS) + return (ACE_SignalHandler) ::signal (signum, (void (*)(void)) func); +#elif defined (ACE_PSOS_DIAB_MIPS) + return 0; +#elif defined (ACE_PSOS_TM) // @@ It would be good to rework this so the ACE_PSOS_TM specific // branch is not needed, but prying it out of ACE_LACKS_UNIX_SIGNALS // will take some extra work - deferred for now. @@ -5153,7 +5175,7 @@ ACE_INLINE int ACE_OS::system (const char *s) { // ACE_TRACE ("ACE_OS::system"); -#if !defined (CHORUS) && !defined (ACE_HAS_WINCE) +#if !defined (CHORUS) && !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) // ACE_TRACE ("ACE_OS::system"); ACE_OSCALL_RETURN (::system (s), int, -1); #else @@ -6663,6 +6685,10 @@ ACE_OS::creat (LPCTSTR filename, mode_t mode) // ACE_TRACE ("ACE_OS::creat"); #if defined (ACE_WIN32) return ACE_OS::open (filename, mode); +#elif defined(ACE_PSOS) + ACE_OSCALL_RETURN(::create_f((char *)filename, 1024, + S_IRUSR | S_IWUSR | S_IXUSR), + ACE_HANDLE, ACE_INVALID_HANDLE); #elif defined(ACE_PSOS_TM) ACE_UNUSED_ARG (filename); ACE_UNUSED_ARG (mode); @@ -7028,6 +7054,7 @@ ACE_OS::dlsym (ACE_SHLIB_HANDLE handle, ACE_WIDE_DL_TYPE symbolname) } #endif /* ACE_HAS_WINCE */ + ACE_INLINE int ACE_OS::step (const char *str, char *expbuf) { @@ -7080,6 +7107,8 @@ ACE_OS::write (ACE_HANDLE handle, const void *buf, size_t nbyte) #else # if defined (ACE_LACKS_POSIX_PROTOTYPES) ACE_OSCALL_RETURN (::write (handle, (const char *) buf, nbyte), ssize_t, -1); +# elif defined (ACE_PSOS) + ACE_OSCALL_RETURN (::write_f(handle, (void *) buf, nbyte), ssize_t, -1); # elif defined (ACE_HAS_CHARPTR_SOCKOPT) ACE_OSCALL_RETURN (::write (handle, (char *) buf, nbyte), ssize_t, -1); # else @@ -7717,11 +7746,16 @@ ACE_OS::timezone (void) ACE_INLINE double ACE_OS::difftime (time_t t1, time_t t0) { +#if defined (ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME) + // simulate difftime ; just subtracting ; ACE_PSOS case + return ((double)t1) - ((double)t0); +#else # if defined (ACE_DIFFTIME) return ACE_DIFFTIME (t1, t0); # else return ::difftime (t1, t0); -# endif /* ACE_DIFFTIME */ +# endif /* ACE_DIFFTIME && ! ACE_PSOS_HAS_TIME */ +#endif // ACE_PSOS } #endif /* ! ACE_LACKS_DIFFTIME */ @@ -7732,6 +7766,8 @@ ACE_OS::ctime (const time_t *t) // ACE_TRACE ("ACE_OS::ctime"); # if defined (ACE_HAS_BROKEN_CTIME) ACE_OSCALL_RETURN (::asctime (::localtime (t)), char *, 0); +#elif defined(ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME) + return "ctime-return"; # else ACE_OSCALL_RETURN (::ctime (t), char *, 0); # endif /* ACE_HAS_BROKEN_CTIME) */ @@ -7762,11 +7798,16 @@ ACE_OS::ctime_r (const time_t *t, char *buf, int buflen) # endif /* defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) */ # else +# if defined(ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME) + ::strncpy(buf, "ctime-return",buflen); + return buf; +# else char *result; ACE_OSCALL (::ctime (t), char *, 0, result); if (result != 0) ::strncpy (buf, result, buflen); return buf; +# endif // ACE_PSOS # endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */ } #endif /* !ACE_HAS_WINCE */ @@ -7774,7 +7815,7 @@ ACE_OS::ctime_r (const time_t *t, char *buf, int buflen) ACE_INLINE struct tm * ACE_OS::localtime (const time_t *t) { -#if !defined (ACE_HAS_WINCE) +#if !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME) // ACE_TRACE ("ACE_OS::localtime"); ACE_OSCALL_RETURN (::localtime (t), struct tm *, 0); #else @@ -7797,9 +7838,8 @@ ACE_OS::localtime_r (const time_t *t, struct tm *res) # else ACE_OSCALL_RETURN (::localtime_r (t, res), struct tm *, 0); # endif /* DIGITAL_UNIX */ -#elif !defined (ACE_HAS_WINCE) +#elif !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME) ACE_UNUSED_ARG (res); - ACE_OSCALL_RETURN (::localtime (t), struct tm *, 0); #else // @@ Same as ACE_OS::localtime (), you need to implement it @@ -7813,7 +7853,7 @@ ACE_OS::localtime_r (const time_t *t, struct tm *res) ACE_INLINE struct tm * ACE_OS::gmtime (const time_t *t) { -#if !defined (ACE_HAS_WINCE) +#if !defined (ACE_HAS_WINCE) && !defined (ACE_PSOS) || defined (ACE_PSOS_HAS_TIME) // ACE_TRACE ("ACE_OS::localtime"); ACE_OSCALL_RETURN (::gmtime (t), struct tm *, 0); #else @@ -7835,7 +7875,7 @@ ACE_OS::gmtime_r (const time_t *t, struct tm *res) # else ACE_OSCALL_RETURN (::gmtime_r (t, res), struct tm *, 0); # endif /* DIGITAL_UNIX */ -#elif !defined (ACE_HAS_WINCE) +#elif !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME) struct tm *result; ACE_OSCALL (::gmtime (t), struct tm *, 0, result) ; if (result != 0) @@ -7853,7 +7893,7 @@ ACE_OS::gmtime_r (const time_t *t, struct tm *res) ACE_INLINE char * ACE_OS::asctime (const struct tm *t) { -#if !defined (ACE_HAS_WINCE) +#if !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME) // ACE_TRACE ("ACE_OS::asctime"); ACE_OSCALL_RETURN (::asctime (t), char *, 0); #else @@ -7884,7 +7924,7 @@ ACE_OS::asctime_r (const struct tm *t, char *buf, int buflen) ACE_OSCALL_RETURN (::asctime_r (t, buf, buflen), char *, 0); # endif /* HPUX_10 */ # endif /* ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R */ -#elif ! defined (ACE_HAS_WINCE) +#elif ! defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME) char *result; ACE_OSCALL (::asctime (t), char *, 0, result); ::strncpy (buf, result, buflen); @@ -7903,7 +7943,7 @@ ACE_INLINE size_t ACE_OS::strftime (char *s, size_t maxsize, const char *format, const struct tm *timeptr) { -#if !defined (ACE_HAS_WINCE) +#if !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) || defined (ACE_PSOS_HAS_TIME) return ::strftime (s, maxsize, format, timeptr); #else ACE_UNUSED_ARG (s); @@ -9171,6 +9211,7 @@ ACE_OS::nanosleep (const struct timespec *requested, // require linking with -lposix4. return ::nanosleep ((ACE_TIMESPEC_PTR) requested, remaining); #elif defined (ACE_PSOS) +# if ! defined (ACE_PSOS_DIAB_MIPS) double ticks = KC_TICKS2SEC * requested->tv_sec + ( ACE_static_cast (double, requested->tv_nsec) * ACE_static_cast (double, KC_TICKS2SEC) ) / @@ -9202,6 +9243,7 @@ ACE_OS::nanosleep (const struct timespec *requested, } // tm_wkafter always returns 0 +# endif /* ACE_PSOS_DIAB_MIPS */ return 0; #else ACE_UNUSED_ARG (remaining); @@ -9245,7 +9287,7 @@ ACE_INLINE char * ACE_OS::getenv (const char *symbol) { // ACE_TRACE ("ACE_OS::getenv"); -#if !defined (ACE_HAS_WINCE) +#if !defined (ACE_HAS_WINCE) && !defined(ACE_PSOS) ACE_OSCALL_RETURN (::getenv (symbol), char *, 0); #else // @@ WinCE doesn't have the concept of environment variables. @@ -10037,7 +10079,7 @@ ACE_OS::sigaddset (sigset_t *s, int signum) errno = EINVAL ; return -1 ; // Invalid signum, return error } -# if defined (ACE_PSOS) && defined (__DIAB) +# if defined (ACE_PSOS) && defined (__DIAB) && ! defined(ACE_PSOS_DIAB_MIPS) // treat 0th u_long of sigset_t as high bits, // and 1st u_long of sigset_t as low bits. if (signum <= ACE_BITS_PER_ULONG) @@ -10069,7 +10111,7 @@ ACE_OS::sigdelset (sigset_t *s, int signum) errno = EINVAL ; return -1 ; // Invalid signum, return error } -# if defined (ACE_PSOS) && defined (__DIAB) +# if defined (ACE_PSOS) && defined (__DIAB) && ! defined (ACE_PSOS_DIAB_MIPS) // treat 0th u_long of sigset_t as high bits, // and 1st u_long of sigset_t as low bits. if (signum <= ACE_BITS_PER_ULONG) @@ -10097,7 +10139,7 @@ ACE_OS::sigemptyset (sigset_t *s) errno = EFAULT ; return -1 ; } -# if defined (ACE_PSOS) && defined (__DIAB) +# if defined (ACE_PSOS) && defined (__DIAB) && ! defined (ACE_PSOS_DIAB_MIPS) s->s[0] = 0 ; s->s[1] = 0 ; # else @@ -10117,7 +10159,7 @@ ACE_OS::sigfillset (sigset_t *s) errno = EFAULT ; return -1 ; } -# if defined (ACE_PSOS) && defined (__DIAB) +# if defined (ACE_PSOS) && defined (__DIAB) && ! defined (ACE_PSOS_DIAB_MIPS) s->s[0] = ~(u_long) 0 ; s->s[1] = ~(u_long) 0 ; # else @@ -10141,7 +10183,7 @@ ACE_OS::sigismember (sigset_t *s, int signum) errno = EINVAL ; return -1 ; // Invalid signum, return error } -# if defined (ACE_PSOS) && defined (__DIAB) +# if defined (ACE_PSOS) && defined (__DIAB) && ! defined (ACE_PSOS_DIAB_MIPS) // treat 0th u_long of sigset_t as high bits, // and 1st u_long of sigset_t as low bits. if (signum <= ACE_BITS_PER_ULONG) diff --git a/ace/SOCK_Dgram_Mcast.cpp b/ace/SOCK_Dgram_Mcast.cpp index e042b6129d7..1a30f757e43 100644 --- a/ace/SOCK_Dgram_Mcast.cpp +++ b/ace/SOCK_Dgram_Mcast.cpp @@ -315,8 +315,8 @@ ACE_SOCK_Dgram_Mcast::make_multicast_address_i (const ACE_INET_Addr &mcast_addr, else multicast_address.imr_interface.s_addr = INADDR_ANY; -#if defined (ACE_PSOS) && !defined (ACE_PSOS_TM) - multicast_address.imr_mcastaddr.s_addr = htonl (mcast_addr.get_ip_address ()); +#if defined (ACE_PSOS) && !defined (ACE_PSOS_TM) && !defined (ACE_PSOS_DIAB_MIPS) + multicast_address.imr_mcastaddr.s_addr = htonl(mcast_addr.get_ip_address()); #else multicast_address.imr_multiaddr.s_addr = htonl (mcast_addr.get_ip_address ()); #endif /* defined (ACE_PSOS) */ diff --git a/ace/SPIPE_Connector.cpp b/ace/SPIPE_Connector.cpp index f8078c2c655..f06f9bbd0f5 100644 --- a/ace/SPIPE_Connector.cpp +++ b/ace/SPIPE_Connector.cpp @@ -12,21 +12,21 @@ ACE_RCSID(ace, SPIPE_Connector, "$Id$") ACE_ALLOC_HOOK_DEFINE(ACE_SPIPE_Connector) -// Creates a Local ACE_SPIPE. +// Creates a Local ACE_SPIPE. -ACE_SPIPE_Connector::ACE_SPIPE_Connector (ACE_SPIPE_Stream &new_io, +ACE_SPIPE_Connector::ACE_SPIPE_Connector (ACE_SPIPE_Stream &new_io, const ACE_SPIPE_Addr &remote_sap, ACE_Time_Value *timeout, const ACE_Addr & local_sap, - int reuse_addr, + int reuse_addr, int flags, int perms) { ACE_TRACE ("ACE_SPIPE_Connector::ACE_SPIPE_Connector"); - if (this->connect (new_io, remote_sap, timeout, local_sap, + if (this->connect (new_io, remote_sap, timeout, local_sap, reuse_addr, flags, perms) == -1 && timeout != 0 && !(errno == EWOULDBLOCK || errno == ETIME)) - ACE_ERROR ((LM_ERROR, "address %s, %p\n", + ACE_ERROR ((LM_ERROR, "address %s, %p\n", remote_sap.get_path_name (), "ACE_SPIPE_Connector")); } @@ -42,19 +42,21 @@ ACE_SPIPE_Connector::ACE_SPIPE_Connector (void) } int -ACE_SPIPE_Connector::connect (ACE_SPIPE_Stream &new_io, +ACE_SPIPE_Connector::connect (ACE_SPIPE_Stream &new_io, const ACE_SPIPE_Addr &remote_sap, ACE_Time_Value *timeout, const ACE_Addr & /* local_sap */, int /* reuse_addr */, - int flags, + int flags, int perms) { ACE_TRACE ("ACE_SPIPE_Connector::connect"); // Make darn sure that the O_CREAT flag is not set! +#if ! defined (ACE_PSOS_DIAB_MIPS) ACE_CLR_BITS (flags, O_CREAT); - ACE_HANDLE handle = ACE::handle_timed_open (timeout, +# endif /* !ACE_PSOS_DIAB_MIPS */ + ACE_HANDLE handle = ACE::handle_timed_open (timeout, remote_sap.get_path_name (), flags, perms); new_io.set_handle (handle); diff --git a/ace/TLI_Acceptor.cpp b/ace/TLI_Acceptor.cpp index 5c0761027e3..b01d2bf92e3 100644 --- a/ace/TLI_Acceptor.cpp +++ b/ace/TLI_Acceptor.cpp @@ -126,7 +126,11 @@ open_new_endpoint (ACE_HANDLE listen_handle, const char dev[], ACE_TRACE ("open_new_endpoint"); ACE_HANDLE fd; +#if defined (ACE_PSOS) + if ((fd = ACE_OS::t_open ((char *) dev, S_IRUSR | S_IWUSR, 0)) == ACE_INVALID_HANDLE +#else if ((fd = ACE_OS::t_open ((char *) dev, O_RDWR, 0)) == ACE_INVALID_HANDLE +#endif || ACE_OS::t_bind (fd, 0, 0) == ACE_INVALID_HANDLE) fd = ACE_INVALID_HANDLE; #if defined (I_PUSH) diff --git a/ace/config-psos-diab-mips.h b/ace/config-psos-diab-mips.h new file mode 100644 index 00000000000..471057cb665 --- /dev/null +++ b/ace/config-psos-diab-mips.h @@ -0,0 +1,243 @@ +/* -*- C++ -*- */ +// $Id$ + +// The following configuration file is designed to work for pSOSystem V2.2.1, +// using the Diab Data D-C++ 4.2 p3 compiler (or a later version) + +#ifndef ACE_CONFIG_H +#define ACE_CONFIG_H + +// #if ! defined (__ACE_INLINE__) +// # define __ACE_INLINE__ +// #endif /* ! __ACE_INLINE__ */ +#if defined (__ACE_INLINE__) +# undef __ACE_INLINE__ +#endif /* __ACE_INLINE__ */ + +#define ACE_LACKS_ISATTY + +#define ACE_LACKS_DIFFTIME + +#define ACE_LACKS_INLINE_FUNCTIONS + +#define ACE_LACKS_TEMPLATE_AS_TEMPLATE_PARAMETER + +#if defined (__GNUG__) +# include "ace/config-g++-common.h" +#endif /* __GNUG__ */ + + +// Don't use RCSID +#if !defined (ACE_USE_RCSID) +#define ACE_USE_RCSID 0 +#endif /* #if !defined (ACE_USE_RCSID) */ + +#define ACE_LACKS_ASSERT_MACRO + +#define ACE_LACKS_SIGSET +#define ACE_LACKS_SIGACTION +#define ACE_LACKS_FCNTL +#define ACE_LACKS_FILELOCKS +#define ACE_LACKS_TRUNCATE +#define ACE_LACKS_PRAGMA_ONCE +#define ACE_NLOGGING +#define ACE_NDEBUG + +#define ACE_PSOS_LACKS_PREPC + +#define ACE_HAS_STRDUP_EMULATION + +#define ACE_HAS_IP_MULTICAST + +#define ACE_HAS_CPLUSPLUS_HEADERS + +#define ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS + +#define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR + +# define ACE_HAS_BROKEN_NOOP_DTORS + +# define ACE_HAS_DIRENT +# define ACE_LACKS_READDIR_R +# define ACE_LACKS_TELLDIR +# define ACE_LACKS_SEEKDIR +# define ACE_LACKS_REWINDDIR + +# define ACE_THREADS_DONT_INHERIT_LOG_MSG + +// Template instantiation definitions +// #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE +#define ACE_TEMPLATES_REQUIRE_SOURCE +#define ACE_LACKS_METHOD_DEFINITIONS_IN_CLASS_TEMPLATE + +#define ACE_LACKS_HRTIME_T + +// #define ACE_LACKS_EVENT_T + +// #define ACE_HAS_VERBOSE_NOTSUP + +#define ACE_LACKS_MEMORY_H + +// #define ACE_LACKS_MALLOC_H + +#define ACE_LACKS_MMAP + +#define ACE_LACKS_UNIX_DOMAIN_SOCKETS + +#define ACE_HAS_NONSTATIC_OBJECT_MANAGER + +#define ACE_LACKS_SEMBUF_T + +#define ACE_LACKS_EXEC + +#define ACE_LACKS_FORK + +#define ACE_LACKS_WRITEV + +#define ACE_LACKS_READV + +// rename the main entry point +// #define ACE_MAIN extern "C" void root + +// All this was commented out for the single threaded port +/* +#define ACE_HAS_THREADS + +#if !defined (ACE_MT_SAFE) +# define ACE_MT_SAFE 1 +#endif + +#define ACE_HAS_TSS_EMULATION + +#define ACE_DEFAULT_THREAD_KEYS 256 + +#define ACE_LACKS_COND_T +// #define ACE_HAS_TSS_EMULATION + +*/ + +#define ACE_LACKS_PTHREAD_THR_SIGSETMASK + +/* #define ACE_HAS_BROKEN_SENDMSG */ + +/* #define ACE_HAS_BROKEN_WRITEV */ + +#define ACE_HAS_BROKEN_CONVERSIONS + +#define ACE_HAS_CHARPTR_SOCKOPT + +#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES + +#define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT + +#define ACE_HAS_MSG + +#define ACE_HAS_POSIX_NONBLOCK + +#define ACE_HAS_SIGINFO_T +#define ACE_LACKS_SIGINFO_H +#define ACE_SIGINFO_IS_SIGINFO_T +#define ACE_LACKS_SIGSET_DEFINITIONS + +#define ACE_HAS_SIGWAIT + +//#define ACE_HAS_SIG_ATOMIC_T + +// #define ACE_HAS_STRERROR + +#define ACE_LACKS_ACCESS + +#define ACE_LACKS_GETHOSTENT + +#define ACE_LACKS_GETSERVBYNAME + +// IO Streams stuff +/* #define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */ +#define ACE_LACKS_IOSTREAM_TOTALLY +#define ACE_LACKS_ACE_IOSTREAM +#define ACE_LACKS_IOSTREAM_FX +#define ACE_DEFAULT_LOG_STREAM 0 +#define ostream FILE + +#define ACE_LACKS_IOSTREAM_FX + +#define ACE_LACKS_KEY_T + +#define ACE_LACKS_LINEBUFFERED_STREAMBUF + +#define ACE_LACKS_LONGLONG_T + +#define ACE_LACKS_MADVISE + +#define ACE_LACKS_MKTEMP + +#define ACE_LACKS_MPROTECT + +#define ACE_LACKS_MSYNC + +#define ACE_LACKS_PARAM_H + +#define ACE_LACKS_PWD_FUNCTIONS + +#define ACE_LACKS_RLIMIT + +#define ACE_LACKS_RPC_H + +#define ACE_LACKS_RWLOCK_T + +#define ACE_LACKS_SBRK + +#define ACE_LACKS_SIGNED_CHAR + +#define ACE_LACKS_SI_ADDR + +#define ACE_LACKS_SOCKETPAIR + +#define ACE_LACKS_STRCASECMP + +#define ACE_LACKS_STRRECVFD + +#define ACE_LACKS_SYSCALL + +#define ACE_LACKS_SYSV_MSG_H + +#define ACE_LACKS_SYSV_SHMEM + +// #define ACE_LACKS_SYS_NERR + +#define ACE_LACKS_SYS_TYPES_H + +#define ACE_LACKS_TIMESPEC_T + +#define ACE_LACKS_UCONTEXT_H + +#define ACE_LACKS_UNIX_SIGNALS + +// #define ACE_MALLOC_ALIGN 8 +// #define ACE_LACKS_SYSTIME_H + +#define ACE_PAGE_SIZE 4096 + +#if !defined (ACE_NTRACE) +# define ACE_NTRACE 1 +#endif /* ACE_NTRACE */ + +#define ACE_PSOS_CANT_USE_SYS_TYPES + +// #define ACE_PSOS_SNARFS_HEADER_INFO + +#if !defined (ACE_PSOS) +#define ACE_PSOS +#endif /* ACE_PSOS */ + +#if !defined (ACE_PSOS_TBD) +#define ACE_PSOS_TBD +#endif /* ACE_PSOS_TBD */ + +#define ACE_LACKS_MKFIFO + +#define ACE_LACKS_MALLOC_H + +#define ACE_PSOS_DIAB_MIPS + +#endif /* ACE_CONFIG_H */ diff --git a/ace/config-psos-diab.h b/ace/config-psos-diab.h index e04612ad727..c4cc6d9a04e 100644 --- a/ace/config-psos-diab.h +++ b/ace/config-psos-diab.h @@ -32,6 +32,9 @@ # include "ace/config-g++-common.h" #endif /* __GNUG__ */ +#define ACE_PSOS_LACKS_PREPC + +#define ACE_PSOS_HAS_TIME #define ACE_HAS_STRDUP_EMULATION @@ -214,6 +217,8 @@ // #define ACE_PSOS_LACKS_PHILE +#define ACE_PSOS_HAS_C_LIBRARY + #define ACE_PSOS_SNARFS_HEADER_INFO #define ACE_PSOS_LACKS_ARGC_ARGV diff --git a/ace/config-psos-tm.h b/ace/config-psos-tm.h index e569aa1e5de..f1570285a57 100644 --- a/ace/config-psos-tm.h +++ b/ace/config-psos-tm.h @@ -191,6 +191,8 @@ #define ACE_PSOS_LACKS_PHILE #define ACE_PSOS_LACKS_PREPC #define ACE_PSOS_CANT_USE_SYS_TYPES +#define ACE_PSOS_HAS_TIME + //#define ACE_PSOS_SNARFS_HEADER_INFO diff --git a/ace/streams.h b/ace/streams.h index 6bd1b445429..290b17a89ba 100644 --- a/ace/streams.h +++ b/ace/streams.h @@ -22,25 +22,25 @@ // ============================================================================ #ifndef ACE_STREAMS_H -#define ACE_STREAMS_H +# define ACE_STREAMS_H -#include "ace/inc_user_config.h" +# include "ace/inc_user_config.h" -#if !defined (ACE_LACKS_PRAGMA_ONCE) +# if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once -#endif /* ACE_LACKS_PRAGMA_ONCE */ +# endif /* ACE_LACKS_PRAGMA_ONCE */ -#if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0) +# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0) -#if defined (_MSC_VER) +# if defined (_MSC_VER) #pragma warning(disable: 4018 4114 4146 4245) #pragma warning(disable: 4663 4664 4665 4511 4512) -#endif /* _MSC_VER */ +# endif /* _MSC_VER */ -#if defined (ACE_USES_OLD_IOSTREAMS) +# if defined (ACE_USES_OLD_IOSTREAMS) #include /**/ <iostream.h> #include /**/ <fstream.h> -#else +# else #include /**/ <iomanip> #include /**/ <ios> #include /**/ <iostream> @@ -48,12 +48,12 @@ #include /**/ <ostream> #include /**/ <fstream> #include /**/ <streambuf> -#endif /* ACE_USES_OLD_IOSTREAMS */ +# endif /* ACE_USES_OLD_IOSTREAMS */ -#if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) && \ +# if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) && \ (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB != 0) -#if !defined (ACE_USES_OLD_IOSTREAMS) +# if !defined (ACE_USES_OLD_IOSTREAMS) // Make these available in the global name space using std::ios; using std::streambuf; @@ -85,33 +85,33 @@ using std::setw; using std::dec; using std::hex; using std::oct; -#endif /* ! ACE_USES_OLD_IOSTREAMS */ +# endif /* ! ACE_USES_OLD_IOSTREAMS */ -#endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ +# endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ -#if defined (_MSC_VER) +# if defined (_MSC_VER) #pragma warning(4: 4018 4114 4146 4245) #pragma warning(4: 4663 4664 4665 4512 4511) -#endif /* _MSC_VER */ +# endif /* _MSC_VER */ -#else /* ACE_HAS_STANDARD_CPP_LIBRARY */ +# else /* ACE_HAS_STANDARD_CPP_LIBRARY */ -#if !defined (ACE_LACKS_IOSTREAM_TOTALLY) +# if !defined (ACE_LACKS_IOSTREAM_TOTALLY) #include /**/ <fstream.h> #include /**/ <iostream.h> -#if defined (ACE_WIN32) -#if defined(_MSC_VER) // VSB +# if defined (ACE_WIN32) +# if defined(_MSC_VER) // VSB #include /**/ <ios.h> #include /**/ <streamb.h> #include /**/ <istream.h> #include /**/ <ostream.h> #include /**/ <iomanip.h> -#endif /* _MSC_VER */ +# endif /* _MSC_VER */ #include /**/ <strstrea.h> // VSB -#endif /* ACE_WIN32 */ -#endif /* ACE_LACKS_IOSTREAM_TOTALLY */ +# endif /* ACE_WIN32 */ +# endif /* ACE_LACKS_IOSTREAM_TOTALLY */ -#endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ +# endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ #endif /* ACE_STREAMS_H */ |