#include "copyrt.h"
   /* remove the following define if you aren't running Windows 32 */
   #define WININC 0

   #ifdef WININC
   #include <windows.h>
   #else
   #include <time.h>
   #include <unistd.h>
   #include <sys/types.h>
   #include <sys/time.h>
   #endif

   #include "global.h"
   /* change to point to where MD5 .h's live; IETF RFC 1321 has a sample
      implementation */
   #include "md5.h"

   /* set the following to the number of 100ns ticks of the actual
      resolution of your system's clock */
   #define UUIDS_PER_TICK 1024

   /* set the following to a call to get and release a global lock */
   #define LOCK
   #define UNLOCK

   typedef unsigned long   unsigned32;
   typedef unsigned short  unsigned16;
   typedef unsigned char   unsigned8;
   typedef unsigned char   byte;

   /* set this to what your compiler uses for 64-bit data type */
   #ifdef WININC
   #define unsigned64_t unsigned __int64
   #define I64(C) C
   #else
   #define unsigned64_t unsigned long long
   #define I64(C) C##LL
   #endif

   typedef unsigned64_t uuid_time_t;
   typedef struct {
       char nodeID[6];
   } uuid_node_t;

   void get_ieee_node_identifier(uuid_node_t *node);
   void get_system_time(uuid_time_t *uuid_time);
   void get_random_info(unsigned char seed[16]);