/*++
*******************************************************************************
* Copyright (c) 1990-98 Digi International Inc., All Rights Reserved				*
* 																										*
* This software contains proprietary and confidential information of Digi		*
* International Inc.  By accepting transfer of this copy, Recipient agrees		*
* to retain this software in confidence, to prevent disclosure to others,		*
* and to make no use of this software other than that for which it was			*
* delivered.  This is an unpublished copyrighted work of Digi International	*
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly	*
* prohibited.																						*
* 																										*
* Restricted Rights Legend																		*
*																										*
* Use, duplication, or disclosure by the Government is subject to					*
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in			*
* Technical Data and Computer Software clause at DFARS 252.227-7031 or			*
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -				*
* Restricted Rights at 48 CFR 52.227-19, as applicable.								*
*																										*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343				*
*																										*
*******************************************************************************

Module Name:

   dxbcmd.h

Abstract:

   Wrapper routines for dxb version-specific fcn pointers to build and interpret 
   dxb messages.

Author:

   Michael Zarns

--*/

#ifndef _DXBCMD_
#define _DXBCMD_

STATIC __inline NTSTATUS DxbCmdOpen( 
	PDXB_DEVICE_EXTENSION pExt, 
	IN ULONG              Channel, 
	IN DS_OPEN const      *pOpen )
{
	return pExt->Message.Open( pExt, Channel, pOpen );
}


STATIC __inline NTSTATUS DxbCmdClose( 
	PDXB_DEVICE_EXTENSION pExt, 
	IN ULONG              Channel, 
	IN DS_CLOSE const     *pClose )
{
	return pExt->Message.Close( pExt, Channel, pClose );
}

STATIC __inline NTSTATUS DxbCmdPutMsg( 
	PDXB_DEVICE_EXTENSION pExt, 
	IN ULONG              Channel, 
	IN DS_PUTMSG const    *pPutMsg )
{
	return pExt->Message.PutMsg( pExt, Channel, pPutMsg );
}

STATIC __inline NTSTATUS DxbCmdIoctl( 
	PDXB_DEVICE_EXTENSION pExt, 
	IN ULONG              Channel, 
	IN DS_IOCTL const     *pIoctl )
{
	return pExt->Message.Ioctl( pExt, Channel, pIoctl );
}

STATIC __inline NTSTATUS DxbCmdLink( 
	PDXB_DEVICE_EXTENSION pExt, 
	IN ULONG              Channel, 
	IN DS_LINK const      *pLink )
{
	return pExt->Message.Link( pExt, Channel, pLink );
}


STATIC __inline NTSTATUS DxbCmdCreditAward( 
	PDXB_DEVICE_EXTENSION pExt, 
	IN ULONG              Channel, 
	IN USHORT             nCredits )
{
	return pExt->Message.CreditAward( pExt, Channel, nCredits );
}


STATIC __inline ULONG
DxbEventProcessor( 
	IN PDXB_DEVICE_EXTENSION  pExt, 
	IN ULONG                  QStart )
{
	return pExt->Message.EventProcessor( pExt, QStart );
}


STATIC __inline ULONG
DxbReadCData( 
	IN PDXB_DEVICE_EXTENSION  pExt, 
	IN ULONG                  QOut,
	IN PVOID                  pCtrl,
	IN ULONG                  cbCtrl,
	IN PVOID                  pData,
	IN ULONG                  cbData )
{
	return pExt->Message.ReadCData( pExt, QOut, pCtrl, cbCtrl, pData, cbData );
}

#endif  // _DXBCMD_
