#ifdef WIN32
#define _WINSOCKAPI_   /* Prevent inclusion of winsock.h in windows.h */
#pragma warning(disable:4201)
#endif // WIN32

#ifdef IRIX
  #define _BSD_SIGNALS
  #include <fcntl.h>
  /* #include <stropts.h> */
#endif

#include <stdio.h>
#include <time.h>
#include <sys/types.h>
#include <errno.h>
#include <string.h>
#include <stdarg.h>

#ifdef WIN32
  //#include <winsock.h>
  #include <winsock2.h>
#else
  #include <sys/ioctl.h>
  #include <sys/socket.h>
  #include <sys/signal.h>
  #include <sys/wait.h>
  #include <sys/time.h>
  #include <netinet/in.h>
  #include <arpa/inet.h>
  #include <netdb.h>
#endif

#ifdef CHECK_ASSERT_VALID
#define CHECK_ASSERT_VALID(expr) (expr)
#endif // CHECK_ASSERT_VALID

#ifndef TRACE
#define TRACE(x)
#endif // TRACE

#ifndef ASSERT
#define ASSERT(x)
#endif // ASSERT

#include "stddefs.h"
#include "array.inl"
#include "dblinks.inl"
#include "qsort.inl"
#include "bsearch.inl"
#include "dqfixed.inl"

DECLARE_CLASS(TEXTFmt);
DECLARE_CLASS(DAPacket);
DECLARE_CLASS(TimerEvent);
DECLARE_CLASS(TimerPool);
DECLARE_CLASS(PacketDumper);
DECLARE_CLASS(PacketDump);
DECLARE_CLASS(Packet);
DECLARE_CLASS(PacketAuto);
DECLARE_CLASS(Broadcast);
DECLARE_CLASS(SockAddr);
DECLARE_CLASS(FileTransfer);
DECLARE_CLASS(FTPArray);
DECLARE_CLASS(SOC);
DECLARE_CLASS(SOCListen);
DECLARE_CLASS(SOCConnect);
DECLARE_CLASS(SOCClient);
DECLARE_CLASS(SOCServer);
DECLARE_CLASS(FDSet);
DECLARE_CLASS(Droppings);
DECLARE_CLASS(SOCManager);
DECLARE_CLASS(SOCSystem);

#include "cstr.h"
#include "mugsocs.h"

#ifdef WIN32
#pragma warning(default:4201)
#endif // WIN32

