Add the configuration target VxWorks.
authorRichard Levitte <levitte@openssl.org>
Thu, 14 Feb 2002 15:36:50 +0000 (15:36 +0000)
committerRichard Levitte <levitte@openssl.org>
Thu, 14 Feb 2002 15:36:50 +0000 (15:36 +0000)
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
e_os.h

index 1551bb91b5a66a8adba8af28c231370f5f65112f..adc599c31f60d3ffbf8f4f8d8b5a7d44e3a46104 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -490,6 +490,9 @@ my %table=(
 ##### Sony NEWS-OS 4.x
 "newsos4-gcc","gcc:-O -DB_ENDIAN -DNEWS4::(unknown):-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
 
+##### VxWorks for various targets
+"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DVXWORKS -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::-r:::::",
+
 );
 
 my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
index a8bf049079123f0de25fe9e983ba91ea77ca2e68..f342e1f6aaa172a7ea430ad7d3d9214a9b9e1c7a 100644 (file)
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -82,7 +82,7 @@
 #    else
 #      include <unixlib.h>
 #    endif
-#  else
+#  elif !defined(VXWORKS)
 #    include <sys/file.h>
 #  endif
 #endif
index d84fe11a3a579965f85c587a52fafb8fbb3048d9..2d8e2b24d228187517541b2658d86e6d432258c8 100644 (file)
@@ -82,7 +82,7 @@
 #include "wintext.h"
 #endif
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC)) || defined (_DARWIN)
+#if !defined(MSDOS) && !defined(VXWORKS) && (!defined(VMS) || defined(__DECC)) || defined (_DARWIN)
 #define TIMES
 #endif
 
 #undef TIMES
 #endif
 
-#ifndef TIMES
+#if !defined(TIMES) && !defined(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))
 
@@ -368,6 +370,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(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 cab1f7e1a0c471cfe83890539ad69ff10a0d902f..153d17e3f4f6460a81404a133ce4ecea0b6cef48 100644 (file)
 
 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(_DARWIN)
 # define USE_TOD
-#elif !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#elif !defined(MSDOS) && !defined(VXWORKS) && (!defined(VMS) || defined(__DECC))
 # define TIMES
 #endif
-#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && !defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && !defined(MPE) && !defined(__NetBSD__) && !defined(_DARWIN)
+#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && !defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && !defined(MPE) && !defined(__NetBSD__) && !defined(_DARWIN) && !defined(VXWORKS)
 # 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(VXWORKS)
 #error "It seems neither struct tms nor struct timeb is supported in this platform!"
 #endif
 
@@ -224,7 +224,7 @@ static double Time_F(int s, int usertime)
 
 #ifdef USE_TOD
        if(usertime)
-           {
+               {
                static struct rusage tstart,tend;
 
                if (s == START)
@@ -284,7 +284,23 @@ static double Time_F(int s, int usertime)
 # if defined(TIMES) && defined(TIMEB)
        else
 # endif
-# ifdef TIMEB
+# ifdef 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;
@@ -303,6 +319,7 @@ static double Time_F(int s, int usertime)
                        }
                }
 # endif
+
 #endif
        }
 
index 4614ad44dd1a398e7fa8b2e220672edff279e6ac..9c8f1514bf12ac17bbe5fd3faa2e30f14ea33757 100644 (file)
 #include <openssl/crypto.h>
 
 #include "openssl/e_os.h"
-#ifndef SSIZE_MAX
+
+/* VxWorks defines SSiZE_MAX with an empty value causing compile errors */
+#if defined(VXWORKS)
+# undef SSIZE_MAX
 # define SSIZE_MAX INT_MAX
+#elif !defined(SSIZE_MAX)
+# define SSIZE_MAX _INT_MAX
 #endif
 
 static int bio_new(BIO *bio);
@@ -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 1edf16a76fd807ae922b8360ee419e795158cb0f..7ba2acad43b5301435a6283efeccefa2e4e0f4dd 100644 (file)
@@ -75,7 +75,7 @@
 #  include <starlet.h>
 #elif defined(__ultrix)
 #  include <sys/syslog.h>
-#elif !defined(MSDOS) /* Unix */
+#elif !defined(MSDOS) && !defined(VXWORKS) /* Unix */
 #  include <syslog.h>
 #endif
 
index c27ec336e7b28aee5dff420e619cd6c71c677a9b..e67cf7942814078e2f608917e4ed3b30618a46ad 100644 (file)
@@ -56,7 +56,7 @@
  * [including the GNU Public Licence.]
  */
 
-#if !defined(MSDOS) && !defined(VMS) && !defined(WIN32)
+#if !defined(MSDOS) && !defined(VMS) && !defined(WIN32) && !defined(VXWORKS)
 #include <openssl/opensslconf.h>
 #ifdef OPENSSL_UNISTD
 # include OPENSSL_UNISTD
 #define SGTTY
 #endif
 
+#if defined(VXWORKS)
+#undef TERMIOS
+#undef TERMIO
+#undef SGTTY
+#endif
+
 #ifdef TERMIOS
 #include <termios.h>
 #define TTY_STRUCT             struct termios
@@ -240,7 +246,7 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
        long status;
        unsigned short channel = 0;
 #else
-#ifndef MSDOS
+#if !defined(MSDOS) && !defined(VXWORKS)
        TTY_STRUCT tty_orig,tty_new;
 #endif
 #endif
@@ -268,7 +274,7 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
 #ifdef MSDOS
        if ((tty=fopen("con","r")) == NULL)
                tty=stdin;
-#elif defined(MAC_OS_pre_X)
+#elif defined(MAC_OS_pre_X) || defined(VXWORKS)
        tty=stdin;
 #else
 #ifndef MPE
index 79b5e6fa57f884b083b9f621f99e940ed6f0e1e2..a6601696ad9e347a32e6c5c987e26fd9c7752581 100644 (file)
@@ -75,7 +75,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 VXWORKS
+#   include <streams/un.h>
+# else
+#   include <sys/un.h>
+# endif
 #else
 struct sockaddr_un {
        short   sun_family;             /* AF_UNIX */
index 28912b39061cb6c07a9efa7acfafdae4c787987a..8f391117d846f1d9710c8b1a773326759963437d 100644 (file)
@@ -101,9 +101,14 @@ typedef struct rsa_meth_st
  * compatibility this functionality is only enabled if the RSA_FLAG_SIGN_VER
  * option is set in 'flags'.
  */
-       int (*rsa_sign)(int type, unsigned char *m, unsigned int m_len,
+
+/* changed m_len to m_length to avoid a conflict with a #define in
+   vxworks for m_len for the mbuf code.  This only shows up in apps
+   that have USE_SOCKETS defined */
+
+       int (*rsa_sign)(int type, unsigned char *m, unsigned int m_length,
              unsigned char *sigret, unsigned int *siglen, RSA *rsa);
-       int (*rsa_verify)(int dtype, unsigned char *m, unsigned int m_len,
+       int (*rsa_verify)(int dtype, unsigned char *m, unsigned int m_length,
              unsigned char *sigbuf, unsigned int siglen, RSA *rsa);
 
        } RSA_METHOD;
@@ -226,16 +231,16 @@ RSA *d2i_Netscape_RSA_2(RSA **a, 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, unsigned char *m, unsigned int m_len,
+int RSA_sign(int type, unsigned char *m, unsigned int m_length,
        unsigned char *sigret, unsigned int *siglen, RSA *rsa);
-int RSA_verify(int type, unsigned char *m, unsigned int m_len,
+int RSA_verify(int type, 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, unsigned char *m, unsigned int m_len,
+int RSA_sign_ASN1_OCTET_STRING(int type, unsigned char *m, unsigned int m_length,
        unsigned char *sigret, unsigned int *siglen, RSA *rsa);
-int RSA_verify_ASN1_OCTET_STRING(int type, unsigned char *m, unsigned int m_len,
+int RSA_verify_ASN1_OCTET_STRING(int type, 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 7773928666ae56309dfa45c1a586a9ed44e4c752..a10251a2ae144595d6ce8b1fd5a9756fa8b8488b 100644 (file)
 
 #ifndef MSDOS
 #  ifndef WIN32
+#   ifndef VXWORKS
 #    if !defined(VMS) || defined(__DECC)
 #      define TIMES
 #    endif
+#   endif
 #  endif
 #endif
 
@@ -95,7 +97,7 @@
 #include <sys/param.h>
 #endif
 
-#ifndef TIMES
+#if !defined(TIMES) && !defined(VXWORKS)
 #include <sys/timeb.h>
 #endif
 
@@ -125,7 +127,11 @@ typedef struct ms_tm
        HANDLE thread_id;
        FILETIME ms_win32;
 #  else
+#    ifdef VXWORKS
+          unsigned long ticks;
+#    else
        struct timeb ms_timeb;
+#    endif
 #  endif
 #endif
        } MS_TM;
@@ -163,7 +169,11 @@ void ms_time_get(char *a)
 #  ifdef WIN32
        GetThreadTimes(tm->thread_id,&tmpa,&tmpb,&tmpc,&(tm->ms_win32));
 #  else
+#    ifdef VXWORKS
+        tm->ticks = tickGet();
+#    else
        ftime(&tm->ms_timeb);
+#    endif
 #  endif
 #endif
        }
@@ -193,10 +203,14 @@ double ms_time_diff(char *ap, char *bp)
        ret=((double)(lb-la))/1e7;
        }
 # else
+#  ifdef VXWORKS
+        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);
        }
@@ -214,6 +228,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 VXWORKS
+        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
diff --git a/e_os.h b/e_os.h
index ec06afb87665d8e57f0a0323daf9af148e9ea232..928032f9ed32f157b7751fb83e3efadd3d2cbc88 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -82,6 +82,12 @@ extern "C" {
 #define DEVRANDOM "/dev/urandom"
 #endif
 
+#if defined(VXWORKS)
+#  define NO_SYS_PARAM_H
+#  define NO_CHMOD
+#  define NO_SYSLOG
+#endif
+  
 #if defined(__MWERKS__) && defined(macintosh)
 # if macintosh==1
 #  ifndef MAC_OS_GUSI_SOURCE
@@ -348,7 +354,9 @@ extern HINSTANCE _hInstance;
 #    ifndef NO_SYS_PARAM_H
 #      include <sys/param.h>
 #    endif
-#    ifndef MPE
+#    ifdef VXWORKS
+#      include <time.h> 
+#    elif !defined(MPE)
 #      include <sys/time.h> /* Needed under linux for FD_XXX */
 #    endif