Add a few more VxWorks targets.

Correct misspelled VXWORKS macros.
Add VXWORKS identifying macros to e_os2.h.
Add required inclusions and mappings for VxWorks in e_os.h.
A few small modifications to make OpenSSL build and work on VxWorks.
PR: 253, except for the  change that was handled in an earlier
         commit, and a request for easy build of just parts of OpenSSL.
This commit is contained in:
Richard Levitte 2002-10-09 13:40:48 +00:00
parent 001ab3abad
commit 6a89a25c27
11 changed files with 55 additions and 17 deletions

View File

@ -558,6 +558,8 @@ my %table=(
##### VxWorks for various targets ##### VxWorks for various targets
"vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::", "vxworks-ppc405","ccppc:-g -msoft-float -mlongcall -DCPU=PPC405 -I\$(WIND_BASE)/target/h:::VXWORKS:-r:::::",
"vxworks-ppc750","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h \$(DEBUG_FLAG):::VXWORKS:-r:::::",
"vxworks-ppc750-debug","ccppc:-ansi -nostdinc -DPPC750 -D_REENTRANT -fvolatile -fno-builtin -fno-for-scope -fsigned-char -Wall -msoft-float -mlongcall -DCPU=PPC604 -I\$(WIND_BASE)/target/h -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DDEBUG -g:::VXWORKS:-r:::::",
); );

View File

@ -34,7 +34,7 @@
#include "e_os.h" #include "e_os.h"
/* VxWorks defines SSIZE_MAX with an empty value causing compile errors */ /* VxWorks defines SSIZE_MAX with an empty value causing compile errors */
#if defined(OPENSSL_SYS_VSWORKS) #if defined(OPENSSL_SYS_VXWORKS)
# undef SSIZE_MAX # undef SSIZE_MAX
#endif #endif
#ifndef SSIZE_MAX #ifndef SSIZE_MAX

View File

@ -208,7 +208,8 @@ static int def_load(CONF *conf, const char *name, long *line)
static int def_load_bio(CONF *conf, BIO *in, long *line) static int def_load_bio(CONF *conf, BIO *in, long *line)
{ {
#define BUFSIZE 512 /* The macro BUFSIZE conflicts with a system macro in VxWorks */
#define CONFBUFSIZE 512
int bufnum=0,i,ii; int bufnum=0,i,ii;
BUF_MEM *buff=NULL; BUF_MEM *buff=NULL;
char *s,*p,*end; char *s,*p,*end;
@ -255,15 +256,15 @@ static int def_load_bio(CONF *conf, BIO *in, long *line)
for (;;) for (;;)
{ {
again=0; again=0;
if (!BUF_MEM_grow(buff,bufnum+BUFSIZE)) if (!BUF_MEM_grow(buff,bufnum+CONFBUFSIZE))
{ {
CONFerr(CONF_F_CONF_LOAD_BIO,ERR_R_BUF_LIB); CONFerr(CONF_F_CONF_LOAD_BIO,ERR_R_BUF_LIB);
goto err; goto err;
} }
p= &(buff->data[bufnum]); p= &(buff->data[bufnum]);
*p='\0'; *p='\0';
BIO_gets(in, p, BUFSIZE-1); BIO_gets(in, p, CONFBUFSIZE-1);
p[BUFSIZE-1]='\0'; p[CONFBUFSIZE-1]='\0';
ii=i=strlen(p); ii=i=strlen(p);
if (i == 0) break; if (i == 0) break;
while (i > 0) while (i > 0)

View File

@ -133,7 +133,7 @@
#define SGTTY #define SGTTY
#endif #endif
#if defined(OPENSSL_SYS_VSWORKS) #if defined(OPENSSL_SYS_VXWORKS)
#undef TERMIOS #undef TERMIOS
#undef TERMIO #undef TERMIO
#undef SGTTY #undef SGTTY
@ -274,7 +274,7 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
#ifdef OPENSSL_SYS_MSDOS #ifdef OPENSSL_SYS_MSDOS
if ((tty=fopen("con","r")) == NULL) if ((tty=fopen("con","r")) == NULL)
tty=stdin; tty=stdin;
#elif defined(MAC_OS_pre_X) || defined(OPENSSL_SYS_VSWORKS) #elif defined(MAC_OS_pre_X) || defined(OPENSSL_SYS_VXWORKS)
tty=stdin; tty=stdin;
#else #else
#ifndef OPENSSL_SYS_MPE #ifndef OPENSSL_SYS_MPE

View File

@ -114,7 +114,7 @@ int RAND_egd_bytes(const char *path,int bytes)
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#ifndef NO_SYS_UN_H #ifndef NO_SYS_UN_H
# ifdef OPENSSL_SYS_VSWORKS # ifdef OPENSSL_SYS_VXWORKS
# include <streams/un.h> # include <streams/un.h>
# else # else
# include <sys/un.h> # include <sys/un.h>

View File

@ -115,7 +115,7 @@
#include <openssl/rand.h> #include <openssl/rand.h>
#include "rand_lcl.h" #include "rand_lcl.h"
#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2)) #if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) || defined(OPENSSL_SYS_VXWORKS))
#include <sys/types.h> #include <sys/types.h>
#include <sys/time.h> #include <sys/time.h>

View File

@ -65,7 +65,7 @@
#undef TIMES #undef TIMES
#endif #endif
#if !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_VMS) || defined(__DECC) && !defined(OPENSSL_SYS_MACOSX) && !defined(OPENSSL_SYS_VXWORKS) #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 # define TIMES
#endif #endif
@ -121,7 +121,7 @@ typedef struct ms_tm
HANDLE thread_id; HANDLE thread_id;
FILETIME ms_win32; FILETIME ms_win32;
# else # else
# ifdef OPENSSL_SYS_VSWORKS # ifdef OPENSSL_SYS_VXWORKS
unsigned long ticks; unsigned long ticks;
# else # else
struct timeb ms_timeb; struct timeb ms_timeb;
@ -163,7 +163,7 @@ void ms_time_get(char *a)
# ifdef OPENSSL_SYS_WIN32 # ifdef OPENSSL_SYS_WIN32
GetThreadTimes(tm->thread_id,&tmpa,&tmpb,&tmpc,&(tm->ms_win32)); GetThreadTimes(tm->thread_id,&tmpa,&tmpb,&tmpc,&(tm->ms_win32));
# else # else
# ifdef OPENSSL_SYS_VSWORKS # ifdef OPENSSL_SYS_VXWORKS
tm->ticks = tickGet(); tm->ticks = tickGet();
# else # else
ftime(&tm->ms_timeb); ftime(&tm->ms_timeb);
@ -197,7 +197,7 @@ double ms_time_diff(char *ap, char *bp)
ret=((double)(lb-la))/1e7; ret=((double)(lb-la))/1e7;
} }
# else # else
# ifdef OPENSSL_SYS_VSWORKS # ifdef OPENSSL_SYS_VXWORKS
ret = (double)(b->ticks - a->ticks) / (double)sysClkRateGet(); ret = (double)(b->ticks - a->ticks) / (double)sysClkRateGet();
# else # else
ret= (double)(b->ms_timeb.time-a->ms_timeb.time)+ ret= (double)(b->ms_timeb.time-a->ms_timeb.time)+
@ -222,7 +222,7 @@ int ms_time_cmp(char *ap, char *bp)
d =(b->ms_win32.dwHighDateTime&0x000fffff)*10+b->ms_win32.dwLowDateTime/1e7; d =(b->ms_win32.dwHighDateTime&0x000fffff)*10+b->ms_win32.dwLowDateTime/1e7;
d-=(a->ms_win32.dwHighDateTime&0x000fffff)*10+a->ms_win32.dwLowDateTime/1e7; d-=(a->ms_win32.dwHighDateTime&0x000fffff)*10+a->ms_win32.dwLowDateTime/1e7;
# else # else
# ifdef OPENSSL_SYS_VSWORKS # ifdef OPENSSL_SYS_VXWORKS
d = (b->ticks - a->ticks); d = (b->ticks - a->ticks);
# else # else
d= (double)(b->ms_timeb.time-a->ms_timeb.time)+ d= (double)(b->ms_timeb.time-a->ms_timeb.time)+

View File

@ -191,7 +191,7 @@
# define SGTTY # define SGTTY
#endif #endif
#if defined(OPENSSL_SYS_VSWORKS) #if defined(OPENSSL_SYS_VXWORKS)
#undef TERMIOS #undef TERMIOS
#undef TERMIO #undef TERMIO
#undef SGTTY #undef SGTTY
@ -450,7 +450,7 @@ static int open_console(UI *ui)
CRYPTO_w_lock(CRYPTO_LOCK_UI); CRYPTO_w_lock(CRYPTO_LOCK_UI);
is_a_tty = 1; is_a_tty = 1;
#if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_VSWORKS) #if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_VXWORKS)
tty_in=stdin; tty_in=stdin;
tty_out=stderr; tty_out=stderr;
#else #else

View File

@ -65,7 +65,7 @@ int OPENSSL_issetugid(void)
return issetugid(); return issetugid();
} }
#elif defined(OPENSSL_SYS_WIN32) #elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS)
int OPENSSL_issetugid(void) int OPENSSL_issetugid(void)
{ {

30
e_os.h
View File

@ -485,6 +485,36 @@ extern char *sys_errlist[]; extern int sys_nerr;
# define strcasecmp stricmp # define strcasecmp stricmp
#endif #endif
/* vxworks */
#if defined(OPENSSL_SYS_VXWORKS)
#include <ioLib.h>
#include <tickLib.h>
#include <sysLib.h>
#define TTY_STRUCT int
#define sleep(a) taskDelay((a) * sysClkRateGet())
#if defined(ioctlsocket)
#undef ioctlsocket
#endif
#define ioctlsocket(a,b,c) ioctl((a),(b),*(c))
#include <vxWorks.h>
#include <sockLib.h>
#include <taskLib.h>
#define getpid taskIdSelf
/* NOTE: these are implemented by helpers in database app!
* if the database is not linked, we need to implement them
* elswhere */
struct hostent *gethostbyname(const char *name);
struct hostent *gethostbyaddr(const char *addr, int length, int type);
struct servent *getservbyname(const char *name, const char *proto);
#endif
/* end vxworks */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -178,6 +178,11 @@ extern "C" {
# endif # endif
#endif #endif
/* ------------------------------- VxWorks --------------------------------- */
#ifdef OPENSSL_SYSNAME_VXWORKS
# define OPENSSL_SYS_VXWORKS
#endif
/** /**
* That's it for OS-specific stuff * That's it for OS-specific stuff
*****************************************************************************/ *****************************************************************************/