
typedef void *IcePointer;
typedef enum
{
  IcePoAuthHaveReply, IcePoAuthRejected, IcePoAuthFailed, IcePoAuthDoneCleanup
}
IcePoAuthStatus;
typedef enum
{
  IcePaAuthContinue, IcePaAuthAccepted, IcePaAuthRejected, IcePaAuthFailed
}
IcePaAuthStatus;
typedef enum
{
  IceConnectPending, IceConnectAccepted, IceConnectRejected, IceConnectIOError
}
IceConnectStatus;
typedef enum
{
  IceProtocolSetupSuccess, IceProtocolSetupFailure, IceProtocolSetupIOError,
    IceProtocolAlreadyActive
}
IceProtocolSetupStatus;
typedef enum
{
  IceAcceptSuccess, IceAcceptFailure, IceAcceptBadMalloc
}
IceAcceptStatus;
typedef enum
{
  IceClosedNow, IceClosedASAP, IceConnectionInUse,
    IceStartedShutdownNegotiation
}
IceCloseStatus;
typedef enum
{
  IceProcessMessagesSuccess, IceProcessMessagesIOError,
    IceProcessMessagesConnectionClosed
}
IceProcessMessagesStatus;

typedef struct
{
  unsigned long sequence_of_request;
  int major_opcode_of_request;
  int minor_opcode_of_request;
  IcePointer reply;
}
IceReplyWaitInfo;

typedef struct _IceConn *IceConn;
typedef struct _IceListenObj *IceListenObj;

typedef void (*IceWatchProc) (void);
typedef void (*IcePoProcessMsgProc) (void);
typedef void (*IcePaProcessMsgProc) (void);
typedef IcePoAuthStatus (*IcePoAuthProc) (void);
typedef IcePaAuthStatus (*IcePaAuthProc) (void);
typedef int (*IceHostBasedAuthProc) (void);
typedef int (*IceProtocolSetupProc) (void);
typedef void (*IceProtocolActivateProc) (void);
typedef void (*IceIOErrorProc) (void);
typedef void (*IcePingReplyProc) (void);
typedef void (*IceErrorHandler) (void);
typedef void (*IceIOErrorHandler) (void);

typedef struct
{
  int major_version;
  int minor_version;
  IcePoProcessMsgProc process_msg_proc;
}
IcePoVersionRec;
typedef struct
{
  int major_version;
  int minor_version;
  IcePaProcessMsgProc process_msg_proc;
}
IcePaVersionRec;
