/* Automatically generated configuration header */
#include "silcdefs.h"
+#ifdef SILC_WIN32
+#include <windows.h>
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdarg.h>
-#include <pwd.h>
-#include <grp.h>
-
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
-#include <sys/times.h>
#include <time.h>
-#ifdef SOCKS5
-#include "socks.h"
-#endif
-
-#ifdef HAVE_GETOPT_H
-#include <getopt.h>
-#endif
-
#ifdef HAVE_SIGNAL_H
-#undef __USE_GNU
#include <signal.h>
-#define __USE_GNU 1
#else
#error signal.h not found in the system
#endif
#error assert.h not found in the system
#endif
+#ifndef SILC_WIN32
+
+#include <pwd.h>
+#include <grp.h>
+#include <sys/times.h>
+
+#ifdef HAVE_GETOPT_H
+#include <getopt.h>
+#endif
+
+#ifdef SOCKS5
+#include "socks.h"
+#endif
+
#include <sys/socket.h>
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#include <dlfcn.h>
#endif
+#endif /* !SILC_WIN32 */
+
#ifndef HAVE_GETOPT_LONG
#include "../lib/contrib/getopt.h"
#endif
#define FALSE 0
#endif
+/* Define types. The types must be at least of the specified size */
+#undef uint8
+#undef uint16
+#undef uint32
+#undef uin64
+#undef int8
+#undef int16
+#undef int32
+#undef int64
+
+typedef unsigned char uint8;
+typedef signed char int8;
+
+#if SILC_SIZEOF_SHORT > 2
+#error "size of the short must be 2 bytes"
+#endif
+
+typedef unsigned short uint16;
+typedef signed short int16;
+
+#if SILC_SIZEOF_LONG == 4
+typedef unsigned long uint32;
+typedef signed long int32;
+#else
+#if SILC_SIZEOF_INT == 4
+typedef unsigned long uint32;
+typedef signed long int32;
+#else
+#if SILC_SIZEOF_LONG_LONG >= 4
+typedef unsigned long long uint32;
+typedef signed long long int32;
+#endif
+#endif
+#endif
+
+#if SILC_SIZEOF_LONG >= 8
+typedef unsigned long uint64;
+typedef signed long int64;
+#else
+#if SILC_SIZEOF_LONG_LONG >= 8
+typedef unsigned long long uint64;
+typedef signed long long int64;
+#else
+typedef uint32 uint64;
+typedef int32 int64;
+#endif
+#endif
+
+#if SILC_SIZEOF_VOID_P < 4
+typedef uint32 * void *;
+#endif
+
+#ifndef bool
+#define bool unsigned char
+#endif
+
/* Generic global SILC includes */
#include "bitmove.h"
/* Math library includes */
#include "silcmp.h"
-#include "modinv.h"
-#include "mpbin.h"
-#include "silcprimegen.h"
+#include "silcmath.h"
/* Crypto library includes */
#include "silccipher.h"
#include "silcpkcs.h"
/* SILC util library includes */
+#include "silchashtable.h"
#include "silclog.h"
#include "silcmemory.h"
#include "silcbuffer.h"
#include "silcschedule.h"
/* SILC core library includes */
-#include "id.h"
-#include "idcache.h"
+#include "silcid.h"
+#include "silcidcache.h"
#include "silcprotocol.h"
#include "silcsockconn.h"
#include "silcpayload.h"