/*****************************************************************************
 * Copyright (C) Cinterion Wireless Modules GmbH
 *****************************************************************************
 * Project: CE-MUX-Driver
 *****************************************************************************
 * Author : Siemens AG Berlin COM WM RD SW
 *****************************************************************************
 * $Workfile: O:/mwohler_z_ms-d/z_ms-d/src/working/Classic/MuxDrv/MuxProt/mux_callback.h $
 * $Revision: /main/ms-d/8 $
 * $Date: 2014-03-14 11:54:15 $
 * $Author: mwohler $
 *****************************************************************************
 * Target:
 *  Microsoft Windows CE 4.2 or 5.0
 *****************************************************************************
 *
 * $Log: O:/mwohler_z_ms-d/z_ms-d/src/working/Classic/MuxDrv/MuxProt/mux_callback.h$ 
 * 
 * /main/ms-d/8   2014-03-14 11:54:15   mwohler 
 * Use latest version of mux protocol implementation based on development for Miami client driver 
 * 
 * /main/ms-d/7   2009-02-18 11:59:02   ctna0256 
 * Set copyright text 
 * 
 * /main/ms-d/6   2008-08-20 11:38:04   ctna0450 
 * Prepared for new disclaimer handling
 *
 * /main/ms-d/5   2006-05-02 12:21:04   KR36712
 * dynamic mux frame size implemented
 *
 * /main/ms-d/4   2005-11-08 17:12:57   kr36712
 * the protocol is suitable for several instances
 *
 * /main/ms-d/3   2005-10-21 13:06:23   WM36264
 * Removed usage of C++ in mux protocol implementation
 *
 * /main/ms-d/2   2005-10-20 13:50:22   WM36264
 * Added proper copyright header
 *
 * /main/ms-d/1   2005-10-07 16:29:12   wm36264
 * First version of Windows CE Muxer
 *
*/

//////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2008 Cinterion Wireless Modules GmbH
// Copyright (C) 2005-2008 Siemens AG
//
// Version: 1.0
// Date:    dummy
//
//////////////////////////////////////////////////////////////////////////////

#ifndef __MUX_CALLBACK_H
#define __MUX_CALLBACK_H


void Mux_StartResult_cb (
    pMUX_INSTANCE_t  pMuxInst,
    DWORD            dwResult
);

void Mux_MsgAvailable_cb (
    pMUX_INSTANCE_t  pMuxInst
);

void Mux_Reset_cb (
    pMUX_INSTANCE_t  pMuxInst
);

DWORD Mux_GetTickCount_cb (
    pMUX_INSTANCE_t  pMuxInst
);

DWORD Mux_DevSendData_cb (
    pMUX_INSTANCE_t  pMuxInst,
    PBYTE            pData,
    DWORD            dwDataLen
);

void Mux_DevActivate_cb (
    pMUX_INSTANCE_t  pMuxInst,
    DWORD            dwLen
);

DWORD Mux_GetFreeTxBytes_cb (
    pMUX_INSTANCE_t  pMuxInst
);

void Mux_DevSetQueueSizes_cb (
    pMUX_INSTANCE_t  pMux,
    DWORD            dwRxSize,
    DWORD            dwTxSize
);

BOOL Mux_DevGetV24Lines_cb (
    pMUX_INSTANCE_t  pMux,
    BOOL            *pRing,
    BOOL            *pDCD
);

BOOL Mux_DevSetV24Lines_cb (
    pMUX_INSTANCE_t  pMux,
    BOOL             bRing,
    BOOL             bDCD
);

BOOL Mux_DevSetPowerState_cb (
    pMUX_INSTANCE_t  pMux,
    POWER_CMD_e      PwrState
);

void Mux_DLCIEstablishResult_cb (
    pMUX_INSTANCE_t  pMuxInst,
    DWORD            dwDLCI,
    DWORD            dwResult
);

void Mux_DLCIReleaseResult_cb (
    pMUX_INSTANCE_t  pMuxInst,
    DWORD            dwDLCI,
    DWORD            dwResult
);

void Mux_DLCISendDataReady_cb (
    pMUX_INSTANCE_t  pMuxInst,
    DWORD            dwDLCI,
    DWORD            dwLen
);

DWORD Mux_DLCIReceiveData_cb (
    pMUX_INSTANCE_t  pMuxInst,
    DWORD            dwDLCI,
    PBYTE            pData,
    DWORD            dwDataLen
);

void Mux_DLCIReceiceV24Status_cb (
    pMUX_INSTANCE_t  pMuxInst,
    DWORD            dwDLCI,
    V24STATUS        V24Status
);

void Mux_DLCIEscReceived_cb (
    pMUX_INSTANCE_t  pMuxInst,
    DWORD            dwDLCI
);

#endif // __MUX_CALLBACK_H__
