|
|
@ -218,54 +218,6 @@ const void *ossl_bsearch(const void *key, const void *base, int num, |
|
|
|
int size, int (*cmp) (const void *, const void *), |
|
|
|
int flags); |
|
|
|
|
|
|
|
/* system-specific variants defining ossl_sleep() */ |
|
|
|
#ifdef OPENSSL_SYS_UNIX |
|
|
|
# include <unistd.h> |
|
|
|
static ossl_inline void ossl_sleep(unsigned long millis) |
|
|
|
{ |
|
|
|
# ifdef OPENSSL_SYS_VXWORKS |
|
|
|
struct timespec ts; |
|
|
|
ts.tv_sec = (long int) (millis / 1000); |
|
|
|
ts.tv_nsec = (long int) (millis % 1000) * 1000000ul; |
|
|
|
nanosleep(&ts, NULL); |
|
|
|
# elif defined(__TANDEM) |
|
|
|
# if !defined(_REENTRANT) |
|
|
|
# include <cextdecs.h(PROCESS_DELAY_)> |
|
|
|
/* HPNS does not support usleep for non threaded apps */ |
|
|
|
PROCESS_DELAY_(millis * 1000); |
|
|
|
# elif defined(_SPT_MODEL_) |
|
|
|
# include <spthread.h> |
|
|
|
# include <spt_extensions.h> |
|
|
|
usleep(millis * 1000); |
|
|
|
# else |
|
|
|
usleep(millis * 1000); |
|
|
|
# endif |
|
|
|
# else |
|
|
|
usleep(millis * 1000); |
|
|
|
# endif |
|
|
|
} |
|
|
|
#elif defined(_WIN32) |
|
|
|
# include <windows.h> |
|
|
|
static ossl_inline void ossl_sleep(unsigned long millis) |
|
|
|
{ |
|
|
|
Sleep(millis); |
|
|
|
} |
|
|
|
#else |
|
|
|
/* Fallback to a busy wait */ |
|
|
|
static ossl_inline void ossl_sleep(unsigned long millis) |
|
|
|
{ |
|
|
|
struct timeval start, now; |
|
|
|
unsigned long elapsedms; |
|
|
|
|
|
|
|
gettimeofday(&start, NULL); |
|
|
|
do { |
|
|
|
gettimeofday(&now, NULL); |
|
|
|
elapsedms = (((now.tv_sec - start.tv_sec) * 1000000) |
|
|
|
+ now.tv_usec - start.tv_usec) / 1000; |
|
|
|
} while (elapsedms < millis); |
|
|
|
} |
|
|
|
#endif /* defined OPENSSL_SYS_UNIX */ |
|
|
|
|
|
|
|
char *ossl_sk_ASN1_UTF8STRING2text(STACK_OF(ASN1_UTF8STRING) *text, |
|
|
|
const char *sep, size_t max_len); |
|
|
|
char *ossl_ipaddr_to_asc(unsigned char *p, int len); |
|
|
|