Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*****************************************************************************
* * Copyright (c) 1996-1999 Microsoft Corporation * * @doc * @module esi.c | IrSIR NDIS Miniport Driver * @comm * *----------------------------------------------------------------------------- * * Author: Scott Holden (sholden) * * Date: 9/30/1996 (created) * * Contents: ESI 9680 JetEye dongle specific code for initialization, * deinit, and setting the baud rate of the device. * *****************************************************************************/
#include "irsir.h"
#include "dongle.h"
#define ESI_9680_IRDA_SPEEDS ( NDIS_IRDA_SPEED_9600 | \
NDIS_IRDA_SPEED_19200 | \ NDIS_IRDA_SPEED_115200 \ )
NDIS_STATUS ESI_QueryCaps( OUT PDONGLE_CAPABILITIES pDongleCaps ) { DEBUGMSG(DBG_FUNC, ("+ESI_QueryCaps\n"));
ASSERT(pDongleCaps != NULL);
pDongleCaps->supportedSpeedsMask = ESI_9680_IRDA_SPEEDS; pDongleCaps->turnAroundTime_usec = 100; pDongleCaps->extraBOFsRequired = 0;
DEBUGMSG(DBG_FUNC, ("-ESI_QueryCaps\n"));
return NDIS_STATUS_SUCCESS; }
/*****************************************************************************
* * Function: ESI_Init * * Synopsis: Initialize the ESI dongle. * * Arguments: * * Returns: NDIS_STATUS_SUCCESS * DONGLE_CAPABILITIES * * Algorithm: * * History: dd-mm-yyyy Author Comment * 10/2/1996 sholden author * * Notes: * *****************************************************************************/
NDIS_STATUS ESI_Init( IN PDEVICE_OBJECT pSerialDevObj ) { DEBUGMSG(DBG_FUNC, ("+ESI_Init\n")); DEBUGMSG(DBG_FUNC, ("-ESI_Init\n"));
return NDIS_STATUS_SUCCESS; }
/*****************************************************************************
* * Function: ESI_Deinit * * Synopsis: The ESI dongle doesn't require any special deinit, but for * purposes of being symmetrical with other dongles... * * Arguments: * * Returns: * * Algorithm: * * History: dd-mm-yyyy Author Comment * 10/2/1996 sholden author * * Notes: * * *****************************************************************************/
VOID ESI_Deinit( IN PDEVICE_OBJECT pSerialDevObj ) { DEBUGMSG(DBG_FUNC, ("+ESI_Deinit\n"));
DEBUGMSG(DBG_FUNC, ("-ESI_Deinit\n")); return; }
/*****************************************************************************
* * Function: ESI_SetSpeed * * Synopsis: set the baud rate of the ESI JetEye dongle * * Arguments: * * Returns: NDIS_STATUS_SUCCESS if bitsPerSec = 9600 || 19200 || 115200 * NDIS_STATUS_FAILURE otherwise * * Algorithm: * * History: dd-mm-yyyy Author Comment * 10/2/1996 sholden author * * Notes: * The caller of this function should set the baud rate of the * serial driver (UART) to 9600 first to ensure that dongle * receives the commands. * * *****************************************************************************/
NDIS_STATUS ESI_SetSpeed( IN PDEVICE_OBJECT pSerialDevObj, IN UINT bitsPerSec, IN UINT currentSpeed ) { ULONG BaudRate; NDIS_STATUS status;
DEBUGMSG(DBG_FUNC, ("+ESI_SetSpeed\n"));
status = NDIS_STATUS_SUCCESS;
switch (bitsPerSec) { case 9600: case 19200: case 115200:
//
// Set the UART baud rate so we can communicate with the
// dongle. The baud rate needs to be 9600 to communicate
// with the dongle.
//
if (currentSpeed != 9600) { BaudRate = 9600;
status = (NDIS_STATUS) SerialSetBaudRate( pSerialDevObj, &BaudRate );
if (status != NDIS_STATUS_SUCCESS) { goto done; } }
break;
default:
//
// Illegal speed setting.
//
DEBUGMSG(DBG_ERR, (" Illegal speed = %d\n", bitsPerSec));
status = NDIS_STATUS_FAILURE;
goto done; }
switch (bitsPerSec) { case 9600:
//
// set request-to-send
// clear data-terminal-ready
//
status = (NDIS_STATUS) SerialSetRTS(pSerialDevObj);
if (status != NDIS_STATUS_SUCCESS) { goto done; }
status = (NDIS_STATUS) SerialClrDTR(pSerialDevObj);
if (status != NDIS_STATUS_SUCCESS) { goto done; }
break;
case 19200:
//
// clear request-to-send
// set data-terminal-ready
//
status = (NDIS_STATUS) SerialClrRTS(pSerialDevObj);
if (status != NDIS_STATUS_SUCCESS) { goto done; }
status = (NDIS_STATUS) SerialSetDTR(pSerialDevObj);
if (status != NDIS_STATUS_SUCCESS) { goto done; }
break;
case 115200:
//
// set request-to-send
// set data-terminal-ready
//
status = (NDIS_STATUS) SerialSetRTS(pSerialDevObj);
if (status != NDIS_STATUS_SUCCESS) { goto done; }
status = (NDIS_STATUS) SerialSetDTR(pSerialDevObj);
if (status != NDIS_STATUS_SUCCESS) { goto done; }
break;
default: break; }
done: DEBUGMSG(DBG_FUNC, ("-ESI_SetSpeed\n"));
return(status); }
|