Add the configuration target VxWorks.
authorRichard Levitte <levitte@openssl.org>
Thu, 14 Feb 2002 15:37:38 +0000 (15:37 +0000)
committerRichard Levitte <levitte@openssl.org>
Thu, 14 Feb 2002 15:37:38 +0000 (15:37 +0000)
12 files changed:
Configure
apps/ca.c
apps/s_time.c
apps/speed.c
crypto/bio/bss_bio.c
crypto/bio/bss_log.c
crypto/des/read_pwd.c
crypto/rand/rand_egd.c
crypto/rsa/rsa.h
crypto/tmdiff.c
crypto/ui/ui_openssl.c
e_os.h

index 5c8da1856ca742d9822c5cace8920dcfa979abe8..a65112d8e3975d050cba9d41cf4cc52973108659 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -533,6 +533,9 @@ my %table=(
 ##### OS/2 EMX
 "OS2-EMX", "gcc::::::::",
 
+##### VxWorks for various targets
+"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
+
 );
 
 my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
index 04246bbe477df1b364bacd3fda36c15261c72cc2..3417e328d2003c74908187993cb7132e327455ff 100644 (file)
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -90,7 +90,7 @@
 #    else
 #      include <unixlib.h>
 #    endif
-#  else
+#  elif !defined(OPENSSL_SYS_VXWORKS)
 #    include <sys/file.h>
 #  endif
 #endif
index 9ce114dcb6fc22d213e38422dc9fc93b386665e6..2fb853d0719efb5c69f984a42e53fb6ecc872554 100644 (file)
@@ -85,7 +85,7 @@
 #include OPENSSL_UNISTD
 #endif
 
-#if !defined(OPENSSL_SYS_MSDOS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC)) && !defined(OPENSSL_SYS_MACOSX)
+#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC)) && !defined(OPENSSL_SYS_MACOSX)
 #define TIMES
 #endif
 
 #undef TIMES
 #endif
 
-#ifndef TIMES
+#if !defined(TIMES) && !defined(OPENSSL_SYS_VXWORKS)
 #include <sys/timeb.h>
 #endif
 
 #undef BUFSIZZ
 #define BUFSIZZ 1024*10
 
+#undef min
+#undef max
 #define min(a,b) (((a) < (b)) ? (a) : (b))
 #define max(a,b) (((a) > (b)) ? (a) : (b))
 
@@ -379,6 +381,22 @@ static double tm_Time_F(int s)
                ret=((double)(tend.tms_utime-tstart.tms_utime))/HZ;
                return((ret == 0.0)?1e-6:ret);
        }
+#elif defined(OPENSSL_SYS_VXWORKS)
+        {
+       static unsigned long tick_start, tick_end;
+
+       if( s == START )
+               {
+               tick_start = tickGet();
+               return 0;
+               }
+       else
+               {
+               tick_end = tickGet();
+               ret = (double)(tick_end - tick_start) / (double)sysClkRateGet();
+               return((ret == 0.0)?1e-6:ret);
+               }
+        }
 #else /* !times() */
        static struct timeb tstart,tend;
        long i;
index 1d62c8b87a993f1e5cb22d5a62de16adac09f72a..5e536680255cf7ada3d1cd892ba035273853c7b3 100644 (file)
 
 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENSSL_SYS_MACOSX)
 # define USE_TOD
-#elif !defined(OPENSSL_SYS_MSDOS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC))
+#elif !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && (!defined(OPENSSL_SYS_VMS) || defined(__DECC))
 # define TIMES
 #endif
-#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && !defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && !defined(OPENSSL_SYS_MPE) && !defined(__NetBSD__) /* FIXME */
+#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && !defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && !defined(OPENSSL_SYS_MPE) && !defined(__NetBSD__) && !defined(OPENSSL_SYS_VXWORKS) /* FIXME */
 # define TIMEB
 #endif
 
 #include <sys/timeb.h>
 #endif
 
-#if !defined(TIMES) && !defined(TIMEB) && !defined(USE_TOD)
+#if !defined(TIMES) && !defined(TIMEB) && !defined(USE_TOD) && !defined(OPENSSL_SYS_VXWORKS)
 #error "It seems neither struct tms nor struct timeb is supported in this platform!"
 #endif
 
@@ -326,7 +326,23 @@ static double Time_F(int s)
 # if defined(TIMES) && defined(TIMEB)
        else
 # endif
-# ifdef TIMEB
+# ifdef OPENSSL_SYS_VXWORKS
+                {
+               static unsigned long tick_start, tick_end;
+
+               if( s == START )
+                       {
+                       tick_start = tickGet();
+                       return 0;
+                       }
+               else
+                       {
+                       tick_end = tickGet();
+                       ret = (double)(tick_end - tick_start) / (double)sysClkRateGet();
+                       return((ret < 0.001)?0.001:ret);
+                       }
+                }
+# elif defined(TIMEB)
                {
                static struct timeb tstart,tend;
                long i;
index f666c47f4e17258dbcd871c15f4f563e76813c8c..1eeed9e7fef67ab6dd45108220089a7b32571bbe 100644 (file)
 #include <openssl/crypto.h>
 
 #include "e_os.h"
+
+/* VxWorks defines SSIZE_MAX with an empty value causing compile errors */
+#if defined(OPENSSL_SYS_VSWORKS)
+# undef SSIZE_MAX
+#endif
 #ifndef SSIZE_MAX
 # define SSIZE_MAX INT_MAX
 #endif
@@ -255,7 +260,7 @@ static ssize_t bio_nread(BIO *bio, char **buf, size_t num_)
        ssize_t num, available;
 
        if (num_ > SSIZE_MAX)
-               num = SSIZE_MAX;
+                num = SSIZE_MAX;
        else
                num = (ssize_t)num_;
 
index e5954cd7f52daafac12738eca1635464a4d45659..a39d95297c508a72984ca3d13cff60ade61d213c 100644 (file)
@@ -77,7 +77,7 @@
 #  include <starlet.h>
 #elif defined(__ultrix)
 #  include <sys/syslog.h>
-#elif !defined(MSDOS) && !defined(NO_SYSLOG) /* Unix */
+#elif !defined(MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && !defined(NO_SYSLOG) /* Unix */
 #  include <syslog.h>
 #endif
 
index db021dfc373096487d63ce87dd6590a9c8636e79..db623706a7cecde42b44c2a3153a6dd8c22d5292 100644 (file)
 #define SGTTY
 #endif
 
+#if defined(OPENSSL_SYS_VSWORKS)
+#undef TERMIOS
+#undef TERMIO
+#undef SGTTY
+#endif
+
 #ifdef TERMIOS
 #include <termios.h>
 #define TTY_STRUCT             struct termios
@@ -268,7 +274,7 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
 #ifdef OPENSSL_SYS_MSDOS
        if ((tty=fopen("con","r")) == NULL)
                tty=stdin;
-#elif defined(MAC_OS_pre_X)
+#elif defined(MAC_OS_pre_X) || defined(OPENSSL_SYS_VSWORKS)
        tty=stdin;
 #else
 #ifndef OPENSSL_SYS_MPE
index dc54e5fa12ea3d0ae5620a6e3736d770b1b2b200..dd490c825451358be8f155bb0127a978b96ac213 100644 (file)
@@ -114,7 +114,11 @@ int RAND_egd_bytes(const char *path,int bytes)
 #include <sys/types.h>
 #include <sys/socket.h>
 #ifndef NO_SYS_UN_H
-#include <sys/un.h>
+# ifdef OPENSSL_SYS_VSWORKS
+#   include <streams/un.h>
+# else
+#   include <sys/un.h>
+# endif
 #else
 struct sockaddr_un {
        short   sun_family;             /* AF_UNIX */
index 47d12c9e8d29239ed8788de307407e415f2436a0..030a6c88e5da5e0c7902d88e1fecdf30a62e57ca 100644 (file)
@@ -109,10 +109,10 @@ typedef struct rsa_meth_st
  * option is set in 'flags'.
  */
        int (*rsa_sign)(int type,
-               const unsigned char *m, unsigned int m_len,
+               const unsigned char *m, unsigned int m_length,
                unsigned char *sigret, unsigned int *siglen, const RSA *rsa);
        int (*rsa_verify)(int dtype,
-               const unsigned char *m, unsigned int m_len,
+               const unsigned char *m, unsigned int m_length,
                unsigned char *sigbuf, unsigned int siglen, const RSA *rsa);
 
        } RSA_METHOD;
@@ -231,18 +231,18 @@ RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, int (*cb)(
 
 /* The following 2 functions sign and verify a X509_SIG ASN1 object
  * inside PKCS#1 padded RSA encryption */
-int RSA_sign(int type, const unsigned char *m, unsigned int m_len,
+int RSA_sign(int type, const unsigned char *m, unsigned int m_length,
        unsigned char *sigret, unsigned int *siglen, RSA *rsa);
-int RSA_verify(int type, const unsigned char *m, unsigned int m_len,
+int RSA_verify(int type, const unsigned char *m, unsigned int m_length,
        unsigned char *sigbuf, unsigned int siglen, RSA *rsa);
 
 /* The following 2 function sign and verify a ASN1_OCTET_STRING
  * object inside PKCS#1 padded RSA encryption */
 int RSA_sign_ASN1_OCTET_STRING(int type,
-       const unsigned char *m, unsigned int m_len,
+       const unsigned char *m, unsigned int m_length,
        unsigned char *sigret, unsigned int *siglen, RSA *rsa);
 int RSA_verify_ASN1_OCTET_STRING(int type,
-       const unsigned char *m, unsigned int m_len,
+       const unsigned char *m, unsigned int m_length,
        unsigned char *sigbuf, unsigned int siglen, RSA *rsa);
 
 int RSA_blinding_on(RSA *rsa, BN_CTX *ctx);
index eccba43c0b54400461d9409918042f17924c528e..aea47598adc51c5c47c5694dc6da80a47689f930 100644 (file)
@@ -65,7 +65,7 @@
 #undef TIMES
 #endif
 
-#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_VMS) || defined(__DECC) && !defined(OPENSSL_SYS_MACOSX)
+#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_VMS) || defined(__DECC) && !defined(OPENSSL_SYS_MACOSX) && !defined(OPENSSL_SYS_VXWORKS)
 # define TIMES
 #endif
 
@@ -91,7 +91,7 @@
 #include <sys/param.h>
 #endif
 
-#ifndef TIMES
+#if !defined(TIMES) && !defined(OPENSSL_SYS_VXWORKS)
 #include <sys/timeb.h>
 #endif
 
@@ -121,7 +121,11 @@ typedef struct ms_tm
        HANDLE thread_id;
        FILETIME ms_win32;
 #  else
+#    ifdef OPENSSL_SYS_VSWORKS
+          unsigned long ticks;
+#    else
        struct timeb ms_timeb;
+#    endif
 #  endif
 #endif
        } MS_TM;
@@ -159,7 +163,11 @@ void ms_time_get(char *a)
 #  ifdef OPENSSL_SYS_WIN32
        GetThreadTimes(tm->thread_id,&tmpa,&tmpb,&tmpc,&(tm->ms_win32));
 #  else
+#    ifdef OPENSSL_SYS_VSWORKS
+        tm->ticks = tickGet();
+#    else
        ftime(&tm->ms_timeb);
+#    endif
 #  endif
 #endif
        }
@@ -189,10 +197,14 @@ double ms_time_diff(char *ap, char *bp)
        ret=((double)(lb-la))/1e7;
        }
 # else
+#  ifdef OPENSSL_SYS_VSWORKS
+        ret = (double)(b->ticks - a->ticks) / (double)sysClkRateGet();
+#  else
        ret=     (double)(b->ms_timeb.time-a->ms_timeb.time)+
                (((double)b->ms_timeb.millitm)-
                ((double)a->ms_timeb.millitm))/1000.0;
 #  endif
+# endif
 #endif
        return((ret < 0.0000001)?0.0000001:ret);
        }
@@ -210,6 +222,9 @@ int ms_time_cmp(char *ap, char *bp)
        d =(b->ms_win32.dwHighDateTime&0x000fffff)*10+b->ms_win32.dwLowDateTime/1e7;
        d-=(a->ms_win32.dwHighDateTime&0x000fffff)*10+a->ms_win32.dwLowDateTime/1e7;
 # else
+#  ifdef OPENSSL_SYS_VSWORKS
+        d = (b->ticks - a->ticks);
+#  else
        d=       (double)(b->ms_timeb.time-a->ms_timeb.time)+
                (((double)b->ms_timeb.millitm)-(double)a->ms_timeb.millitm)/1000.0;
 #  endif
index 95e0b6e9216e1611d643d572d048efd2e41a3049..3aa03f74aaef51927346f21b7852c4d2ee5085ab 100644 (file)
 # define SGTTY
 #endif
 
+#if defined(OPENSSL_SYS_VSWORKS)
+#undef TERMIOS
+#undef TERMIO
+#undef SGTTY
+#endif
+
 #ifdef TERMIOS
 # include <termios.h>
 # define TTY_STRUCT            struct termios
@@ -444,7 +450,7 @@ static int open_console(UI *ui)
        CRYPTO_w_lock(CRYPTO_LOCK_UI);
        is_a_tty = 1;
 
-#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC)
+#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_VSWORKS)
        tty_in=stdin;
        tty_out=stderr;
 #else
diff --git a/e_os.h b/e_os.h
index 19f085682cdeae84b97f56a2384c7f854e95bf40..0bb2bfa69323672cd1e894ba7da0ab1a02a65da8 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -88,6 +88,12 @@ extern "C" {
 #define DEVRANDOM_EGD "/var/run/egd-pool","/dev/egd-pool","/etc/egd-pool","/etc/entropy"
 #endif
 
+#if defined(OPENSSL_SYS_VXWORKS)
+#  define NO_SYS_PARAM_H
+#  define NO_CHMOD
+#  define NO_SYSLOG
+#endif
+  
 #if defined(OPENSSL_SYS_MACINTOSH_CLASSIC)
 # if macintosh==1
 #  ifndef MAC_OS_GUSI_SOURCE
@@ -353,7 +359,9 @@ extern HINSTANCE _hInstance;
 #    ifndef NO_SYS_PARAM_H
 #      include <sys/param.h>
 #    endif
-#    ifndef OPENSSL_SYS_MPE
+#    ifdef OPENSSL_SYS_VXWORKS
+#      include <time.h> 
+#    elif !defined(OPENSSL_SYS_MPE)
 #      include <sys/time.h> /* Needed under linux for FD_XXX */
 #    endif