Merge branch 'vendor/GDTOA'
authorPeter Avalos <pavalos@dragonflybsd.org>
Mon, 31 Jan 2011 06:28:20 +0000 (20:28 -1000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Mon, 31 Jan 2011 06:28:20 +0000 (20:28 -1000)
1  2 
contrib/gdtoa/gdtoaimp.h

@@@ -469,18 -446,12 +458,18 @@@ extern double rnd_prod(double, double)
  #define ALL_ON 0xffff
  #endif
  
 -#ifndef MULTIPLE_THREADS
 -#define ACQUIRE_DTOA_LOCK(n)  /*nothing*/
 -#define FREE_DTOA_LOCK(n)     /*nothing*/
 -#endif
 +#define MULTIPLE_THREADS
 +extern pthread_mutex_t __gdtoa_locks[2];
 +#define ACQUIRE_DTOA_LOCK(n)  do {                            \
 +      if (__isthreaded)                                       \
 +              _pthread_mutex_lock(&__gdtoa_locks[n]);         \
 +} while(0)
 +#define FREE_DTOA_LOCK(n)     do {                            \
 +      if (__isthreaded)                                       \
 +              _pthread_mutex_unlock(&__gdtoa_locks[n]);       \
 +} while(0)
  
- #define Kmax (sizeof(size_t) << 3)
+ #define Kmax 9
  
   struct
  Bigint {
@@@ -630,31 -560,11 +619,31 @@@ extern void memcpy_D2A ANSI((void*, con
   extern Bigint *s2b ANSI((CONST char*, int, int, ULong, int));
   extern Bigint *set_ones ANSI((Bigint*, int));
   extern char *strcp ANSI((char*, const char*));
 + extern int strtodg ANSI((CONST char*, char**, FPI*, Long*, ULong*));
 +
 + extern int strtoId ANSI((CONST char *, char **, double *, double *));
 + extern int strtoIdd ANSI((CONST char *, char **, double *, double *));
 + extern int strtoIf ANSI((CONST char *, char **, float *, float *));
   extern int strtoIg ANSI((CONST char*, char**, FPI*, Long*, Bigint**, int*));
 + extern int strtoIQ ANSI((CONST char *, char **, void *, void *));
 + extern int strtoIx ANSI((CONST char *, char **, void *, void *));
 + extern int strtoIxL ANSI((CONST char *, char **, void *, void *));
   extern double strtod ANSI((const char *s00, char **se));
 + extern int strtopQ ANSI((CONST char *, char **, Void *));
 + extern int strtopf ANSI((CONST char *, char **, float *));
 + extern int strtopd ANSI((CONST char *, char **, double *));
 + extern int strtopdd ANSI((CONST char *, char **, double *));
 + extern int strtopx ANSI((CONST char *, char **, Void *));
 + extern int strtopxL ANSI((CONST char *, char **, Void *));
 + extern int strtord ANSI((CONST char *, char **, int, double *));
 + extern int strtordd ANSI((CONST char *, char **, int, double *));
 + extern int strtorf ANSI((CONST char *, char **, int, float *));
 + extern int strtorQ ANSI((CONST char *, char **, int, void *));
 + extern int strtorx ANSI((CONST char *, char **, int, void *));
 + extern int strtorxL ANSI((CONST char *, char **, int, void *));
   extern Bigint *sum ANSI((Bigint*, Bigint*));
   extern int trailz ANSI((Bigint*));
-  extern double ulp ANSI((double));
+  extern double ulp ANSI((U*));
  
  #ifdef __cplusplus
  }