OSDN Git Service

* ada/acats/run_all.sh: Log start and end times.
[pf3gnuchains/gcc-fork.git] / include / md5.h
index 655933f..b3ff4e1 100644 (file)
@@ -27,6 +27,8 @@
 # include <limits.h>
 #endif
 
 # include <limits.h>
 #endif
 
+#include "ansidecl.h"
+
 /* The following contortions are an attempt to use the C preprocessor
    to determine an unsigned integral type that is 32 bits wide.  An
    alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
 /* The following contortions are an attempt to use the C preprocessor
    to determine an unsigned integral type that is 32 bits wide.  An
    alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
@@ -37,6 +39,7 @@
 #ifdef _LIBC
 # include <sys/types.h>
 typedef u_int32_t md5_uint32;
 #ifdef _LIBC
 # include <sys/types.h>
 typedef u_int32_t md5_uint32;
+typedef uintptr_t md5_uintptr;
 #else
 #  define INT_MAX_32_BITS 2147483647
 
 #else
 #  define INT_MAX_32_BITS 2147483647
 
@@ -64,6 +67,13 @@ typedef u_int32_t md5_uint32;
 #   endif
 #  endif
 # endif
 #   endif
 #  endif
 # endif
+/* We have to make a guess about the integer type equivalent in size
+   to pointers which should always be correct.  */
+typedef unsigned long int md5_uintptr;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
 #endif
 
 /* Structure to save state of computation between the single steps.  */
 #endif
 
 /* Structure to save state of computation between the single steps.  */
@@ -76,7 +86,7 @@ struct md5_ctx
 
   md5_uint32 total[2];
   md5_uint32 buflen;
 
   md5_uint32 total[2];
   md5_uint32 buflen;
-  char buffer[128];
+  char buffer[128] ATTRIBUTE_ALIGNED_ALIGNOF(md5_uint32);
 };
 
 /*
 };
 
 /*
@@ -132,4 +142,8 @@ extern int md5_stream (FILE *stream, void *resblock);
    digest.  */
 extern void *md5_buffer (const char *buffer, size_t len, void *resblock);
 
    digest.  */
 extern void *md5_buffer (const char *buffer, size_t len, void *resblock);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
 #endif