diff options
author | Rich Salz <rsalz@akamai.com> | 2014-08-09 08:02:20 -0400 |
---|---|---|
committer | Rich Salz <rsalz@akamai.com> | 2014-08-09 08:02:20 -0400 |
commit | f642ebc1e2dca34bc2b3c46796c131e1f5077bee (patch) | |
tree | a8f54bb26068ebd4bf5a1ef4684ab98758cebc4f /crypto | |
parent | 693b71fa719598a487165918cbbc0f7f62816c83 (diff) |
Undo unapproved commit that removed DJGPP and WATT32
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/bio/b_sock.c | 12 | ||||
-rw-r--r-- | crypto/bio/bss_dgram.c | 6 | ||||
-rw-r--r-- | crypto/bio/bss_log.c | 8 | ||||
-rw-r--r-- | crypto/bio/bss_sock.c | 6 | ||||
-rw-r--r-- | crypto/des/read_pwd.c | 2 | ||||
-rw-r--r-- | crypto/md4/md4.c | 2 | ||||
-rw-r--r-- | crypto/md5/md5.c | 2 | ||||
-rw-r--r-- | crypto/o_dir.c | 2 | ||||
-rw-r--r-- | crypto/perlasm/x86asm.pl | 2 | ||||
-rw-r--r-- | crypto/ripemd/rmd160.c | 2 | ||||
-rw-r--r-- | crypto/ui/ui_openssl.c | 2 | ||||
-rw-r--r-- | crypto/x86cpuid.pl | 37 |
12 files changed, 72 insertions, 11 deletions
diff --git a/crypto/bio/b_sock.c b/crypto/bio/b_sock.c index 4544ab209c..a026b3e0b0 100644 --- a/crypto/bio/b_sock.c +++ b/crypto/bio/b_sock.c @@ -494,6 +494,12 @@ int BIO_sock_init(void) } } #endif /* OPENSSL_SYS_WINDOWS */ +#ifdef WATT32 + extern int _watt_do_exit; + _watt_do_exit = 0; /* don't make sock_init() call exit() */ + if (sock_init()) + return (-1); +#endif #if defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK) WORD wVerReq; @@ -543,6 +549,9 @@ int BIO_socket_ioctl(int fd, long type, void *arg) { int i; +#ifdef __DJGPP__ + i=ioctlsocket(fd,type,(char *)arg); +#else # if defined(OPENSSL_SYS_VMS) /* 2011-02-18 SMS. * VMS ioctl() can't tolerate a 64-bit "void *arg", but we @@ -565,8 +574,9 @@ int BIO_socket_ioctl(int fd, long type, void *arg) # else /* defined(OPENSSL_SYS_VMS) */ # define ARG arg # endif /* defined(OPENSSL_SYS_VMS) [else] */ - i=ioctlsocket(fd,type,ARG); + i=ioctlsocket(fd,type,ARG); +#endif /* __DJGPP__ */ if (i < 0) SYSerr(SYS_F_IOCTLSOCKET,get_last_socket_error()); return(i); diff --git a/crypto/bio/bss_dgram.c b/crypto/bio/bss_dgram.c index 25d5195bc2..9c0950191b 100644 --- a/crypto/bio/bss_dgram.c +++ b/crypto/bio/bss_dgram.c @@ -95,6 +95,12 @@ ((a)->s6_addr32[2] == htonl(0x0000ffff))) #endif +#ifdef WATT32 +#define sock_write SockWrite /* Watt-32 uses same names */ +#define sock_read SockRead +#define sock_puts SockPuts +#endif + static int dgram_write(BIO *h, const char *buf, int num); static int dgram_read(BIO *h, char *buf, int size); static int dgram_puts(BIO *h, const char *str); diff --git a/crypto/bio/bss_log.c b/crypto/bio/bss_log.c index 7b6eb73152..2227b2b52d 100644 --- a/crypto/bio/bss_log.c +++ b/crypto/bio/bss_log.c @@ -88,7 +88,7 @@ # include <sys/syslog.h> #elif defined(OPENSSL_SYS_NETWARE) # define NO_SYSLOG -#elif !defined(MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && !defined(NO_SYSLOG) +#elif (!defined(MSDOS) || defined(WATT32)) && !defined(OPENSSL_SYS_VXWORKS) && !defined(NO_SYSLOG) # include <syslog.h> #endif @@ -373,11 +373,15 @@ static void xcloselog(BIO* bp) { } -#else /* Unix */ +#else /* Unix/Watt32 */ static void xopenlog(BIO* bp, char* name, int level) { +#ifdef WATT32 /* djgpp/DOS */ + openlog(name, LOG_PID|LOG_CONS|LOG_NDELAY, level); +#else openlog(name, LOG_PID|LOG_CONS, level); +#endif } static void xsyslog(BIO *bp, int priority, const char *string) diff --git a/crypto/bio/bss_sock.c b/crypto/bio/bss_sock.c index 4e1b3d5fa1..3df31938c1 100644 --- a/crypto/bio/bss_sock.c +++ b/crypto/bio/bss_sock.c @@ -65,6 +65,12 @@ #include <openssl/bio.h> +#ifdef WATT32 +#define sock_write SockWrite /* Watt-32 uses same names */ +#define sock_read SockRead +#define sock_puts SockPuts +#endif + static int sock_write(BIO *h, const char *buf, int num); static int sock_read(BIO *h, char *buf, int size); static int sock_puts(BIO *h, const char *str); diff --git a/crypto/des/read_pwd.c b/crypto/des/read_pwd.c index 9042afe173..ce5fa00a37 100644 --- a/crypto/des/read_pwd.c +++ b/crypto/des/read_pwd.c @@ -266,7 +266,7 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt, long status; unsigned short channel = 0; #else -#if !defined(OPENSSL_SYS_MSDOS) +#if !defined(OPENSSL_SYS_MSDOS) || defined(__DJGPP__) TTY_STRUCT tty_orig,tty_new; #endif #endif diff --git a/crypto/md4/md4.c b/crypto/md4/md4.c index f8a47fb50c..141415ad4d 100644 --- a/crypto/md4/md4.c +++ b/crypto/md4/md4.c @@ -64,7 +64,7 @@ void do_fp(FILE *f); void pt(unsigned char *md); -#if !defined(_OSD_POSIX) +#if !defined(_OSD_POSIX) && !defined(__DJGPP__) int read(int, void *, unsigned int); #endif diff --git a/crypto/md5/md5.c b/crypto/md5/md5.c index d171256520..563733abc5 100644 --- a/crypto/md5/md5.c +++ b/crypto/md5/md5.c @@ -64,7 +64,7 @@ void do_fp(FILE *f); void pt(unsigned char *md); -#if !defined(_OSD_POSIX) +#if !defined(_OSD_POSIX) && !defined(__DJGPP__) int read(int, void *, unsigned int); #endif diff --git a/crypto/o_dir.c b/crypto/o_dir.c index ded369f23c..42891ea459 100644 --- a/crypto/o_dir.c +++ b/crypto/o_dir.c @@ -70,7 +70,7 @@ #include "o_dir.h" #define LPDIR_H -#if defined OPENSSL_SYS_UNIX +#if defined OPENSSL_SYS_UNIX || defined DJGPP #include "LPdir_unix.c" #elif defined OPENSSL_SYS_VMS #include "LPdir_vms.c" diff --git a/crypto/perlasm/x86asm.pl b/crypto/perlasm/x86asm.pl index 6cf80546d2..cae156ae63 100644 --- a/crypto/perlasm/x86asm.pl +++ b/crypto/perlasm/x86asm.pl @@ -277,7 +277,7 @@ sub ::asm_init { print STDERR <<"EOF"; Pick one target type from elf - Linux, FreeBSD, Solaris x86, etc. - a.out - elder OpenBSD, etc. + a.out - DJGPP, elder OpenBSD, etc. coff - GAS/COFF such as Win32 targets win32n - Windows 95/Windows NT NASM format nw-nasm - NetWare NASM format diff --git a/crypto/ripemd/rmd160.c b/crypto/ripemd/rmd160.c index 0fcd99fe16..b0ec574498 100644 --- a/crypto/ripemd/rmd160.c +++ b/crypto/ripemd/rmd160.c @@ -64,7 +64,7 @@ void do_fp(FILE *f); void pt(unsigned char *md); -#if !defined(_OSD_POSIX) +#if !defined(_OSD_POSIX) && !defined(__DJGPP__) int read(int, void *, unsigned int); #endif diff --git a/crypto/ui/ui_openssl.c b/crypto/ui/ui_openssl.c index 1b09b916bb..a38c7581e6 100644 --- a/crypto/ui/ui_openssl.c +++ b/crypto/ui/ui_openssl.c @@ -296,7 +296,7 @@ static long tty_orig[3], tty_new[3]; /* XXX Is there any guarantee that this w static long status; static unsigned short channel = 0; #else -#if !defined(OPENSSL_SYS_MSDOS) +#if !defined(OPENSSL_SYS_MSDOS) || defined(__DJGPP__) static TTY_STRUCT tty_orig,tty_new; #endif #endif diff --git a/crypto/x86cpuid.pl b/crypto/x86cpuid.pl index dca37e7cd2..86772329bc 100644 --- a/crypto/x86cpuid.pl +++ b/crypto/x86cpuid.pl @@ -168,7 +168,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } &ret (); &function_end_B("OPENSSL_rdtsc"); -# This works in Ring 0 only [read MS-DOS+privileged DPMI host], +# This works in Ring 0 only [read DJGPP+MS-DOS+privileged DPMI host], # but it's safe to call it on any [supported] 32-bit platform... # Just check for [non-]zero return value... &function_begin_B("OPENSSL_instrument_halt","EXTRN\t_OPENSSL_ia32cap_P:DWORD"); @@ -202,6 +202,41 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); } &ret (); &function_end_B("OPENSSL_instrument_halt"); +# Essentially there is only one use for this function. Under DJGPP: +# +# #include <go32.h> +# ... +# i=OPENSSL_far_spin(_dos_ds,0x46c); +# ... +# to obtain the number of spins till closest timer interrupt. + +&function_begin_B("OPENSSL_far_spin"); + &pushf (); + &pop ("eax"); + &bt ("eax",9); + &jnc (&label("nospin")); # interrupts are disabled + + &mov ("eax",&DWP(4,"esp")); + &mov ("ecx",&DWP(8,"esp")); + &data_word (0x90d88e1e); # push %ds, mov %eax,%ds + &xor ("eax","eax"); + &mov ("edx",&DWP(0,"ecx")); + &jmp (&label("spin")); + + &align (16); +&set_label("spin"); + &inc ("eax"); + &cmp ("edx",&DWP(0,"ecx")); + &je (&label("spin")); + + &data_word (0x1f909090); # pop %ds + &ret (); + +&set_label("nospin"); + &xor ("eax","eax"); + &xor ("edx","edx"); + &ret (); +&function_end_B("OPENSSL_far_spin"); &function_begin_B("OPENSSL_wipe_cpu","EXTRN\t_OPENSSL_ia32cap_P:DWORD"); &xor ("eax","eax"); |