1.1 --- a/epoc32/include/d32comm.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,572 +0,0 @@
1.4 -// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 -// All rights reserved.
1.6 -// This component and the accompanying materials are made available
1.7 -// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.8 -// which accompanies this distribution, and is available
1.9 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 -//
1.11 -// Initial Contributors:
1.12 -// Nokia Corporation - initial contribution.
1.13 -//
1.14 -// Contributors:
1.15 -//
1.16 -// Description:
1.17 -// e32\include\d32comm.h
1.18 -//
1.19 -//
1.20 -
1.21 -//#define _DEBUG_DEVCOMM
1.22 -
1.23 -/**
1.24 -@file
1.25 -@publishedPartner
1.26 -@released
1.27 -*/
1.28 -
1.29 -#ifndef __D32COMM_H__
1.30 -#define __D32COMM_H__
1.31 -#include <e32cmn.h>
1.32 -#include <e32ver.h>
1.33 -
1.34 -/**
1.35 - Enumeration of number of data bits for serial port configuration.
1.36 - Typically, these values are used to initialize the iDataBits of
1.37 - TCommConfigV01 before calling DComm::Configure() or any other serial
1.38 - comm API to configure the serial port's databits size.
1.39 - */
1.40 -enum TDataBits {EData5,EData6,EData7,EData8};
1.41 -/**
1.42 - Enumeration of number of stop bits for serial port configuration.
1.43 - Typically, these values are used to initialize the iStopBits of
1.44 - TCommConfigV01 before calling DComm::Configure() or any other serial
1.45 - comm API to configure the serial port's stopbits.
1.46 - */
1.47 -enum TStopBits {EStop1,EStop2};
1.48 -/**
1.49 - Enumeration of types of parity for serial port configuration.
1.50 - Typically, these values are used to initialize the iParity of
1.51 - TCommConfigV01 before calling DComm::Configure() or any other serial
1.52 - comm API to configure the serial port's parity setting.
1.53 - */
1.54 -enum TParity {EParityNone,EParityEven,EParityOdd,EParityMark,EParitySpace};
1.55 -/**
1.56 - Enumeration of baud rates in bits per second for serial port configuration.
1.57 - * e.g EBps115200 is for 115200Bps data rate
1.58 - Typically, these values are used to initialize the iRate of TCommConfigV01
1.59 - before calling DComm::Configure() or any other serial comm API to configure
1.60 - the serial port's baud rate.
1.61 - */
1.62 -enum TBps
1.63 - {
1.64 - EBps50,
1.65 - EBps75,
1.66 - EBps110,
1.67 - EBps134,
1.68 - EBps150,
1.69 - EBps300,
1.70 - EBps600,
1.71 - EBps1200,
1.72 - EBps1800,
1.73 - EBps2000,
1.74 - EBps2400,
1.75 - EBps3600,
1.76 - EBps4800,
1.77 - EBps7200,
1.78 - EBps9600,
1.79 - EBps19200,
1.80 - EBps38400,
1.81 - EBps57600,
1.82 - EBps115200,
1.83 - EBps230400,
1.84 - EBps460800,
1.85 - EBps576000,
1.86 - EBps1152000,
1.87 - EBps4000000,
1.88 - EBps921600,
1.89 - EBpsAutobaud=0x40000000,
1.90 - EBpsSpecial=0x80000000,
1.91 - };
1.92 -/**
1.93 - Enumeration of Fifo status (enable and disable) for serial port configuration.
1.94 - Typically, these values are used to initialize the iFifo of TCommConfigV01
1.95 - before calling DComm::Configure() or any other serial comm API to configure
1.96 - the serial port's fifo.
1.97 - */
1.98 -enum TFifo
1.99 - {
1.100 - EFifoEnable,EFifoDisable,
1.101 - };
1.102 -/**
1.103 - Enumeration of SIR status (enable and disable) for serial comm configuration.
1.104 - Typically, these values are used to initialize the iSIREnable of TCommConfigV01
1.105 - before calling DComm::Configure() or any other serial comm API to configure
1.106 - the serial port's SIR (infrared) settings.
1.107 - */
1.108 -enum TSir
1.109 - {
1.110 - ESIREnable,ESIRDisable,
1.111 - };
1.112 -
1.113 -enum TFlowControl
1.114 - {
1.115 - EFlowControlOn,EFlowControlOff
1.116 - };
1.117 -//
1.118 -
1.119 -const TInt KConfigMaxTerminators=4;
1.120 -// DTE Constants
1.121 -const TUint KConfigObeyXoff=0x01;
1.122 -const TUint KConfigSendXoff=0x02;
1.123 -const TUint KConfigObeyCTS=0x04;
1.124 -const TUint KConfigFailCTS=0x08;
1.125 -const TUint KConfigObeyDSR=0x10;
1.126 -const TUint KConfigFailDSR=0x20;
1.127 -const TUint KConfigObeyDCD=0x40;
1.128 -const TUint KConfigFailDCD=0x80;
1.129 -const TUint KConfigFreeRTS=0x100;
1.130 -const TUint KConfigFreeDTR=0x200;
1.131 -// DCE Constants
1.132 -const TUint KConfigObeyDTR=0x400;
1.133 -const TUint KConfigFailDTR=0x800;
1.134 -const TUint KConfigObeyRTS=0x1000;
1.135 -const TUint KConfigFailRTS=0x2000;
1.136 -const TUint KConfigFreeDSR=0x4000;
1.137 -const TUint KConfigFreeCTS=0x8000;
1.138 -const TUint KConfigFreeDCD=0x10000;
1.139 -const TUint KConfigFreeRI=0x20000;
1.140 -const TUint KConfigWriteBufferedComplete=0x80000000;
1.141 -//
1.142 -const TUint KConfigParityErrorFail=0;
1.143 -const TUint KConfigParityErrorIgnore=0x01;
1.144 -const TUint KConfigParityErrorReplaceChar=0x02;
1.145 -const TUint KConfigXonXoffDebug=0x80000000;
1.146 -//
1.147 -const TUint KSignalCTS=0x01;
1.148 -const TUint KSignalDSR=0x02;
1.149 -const TUint KSignalDCD=0x04;
1.150 -const TUint KSignalRNG=0x08;
1.151 -const TUint KSignalRTS=0x10;
1.152 -const TUint KSignalDTR=0x20;
1.153 -const TUint KSignalBreak=0x40;
1.154 -
1.155 -const TUint KSignalChanged=0x1000;
1.156 -const TUint KCTSChanged=KSignalCTS*KSignalChanged;
1.157 -const TUint KDSRChanged=KSignalDSR*KSignalChanged;
1.158 -const TUint KDCDChanged=KSignalDCD*KSignalChanged;
1.159 -const TUint KRNGChanged=KSignalRNG*KSignalChanged;
1.160 -const TUint KRTSChanged=KSignalRTS*KSignalChanged;
1.161 -const TUint KDTRChanged=KSignalDTR*KSignalChanged;
1.162 -const TUint KBreakChanged=KSignalBreak*KSignalChanged;
1.163 -
1.164 -const TUint KSignalDTEOutputs=KSignalRTS|KSignalDTR;
1.165 -const TUint KSignalDTEInputs=KSignalCTS|KSignalDSR|KSignalDCD|KSignalRNG;
1.166 -const TUint KSignalDCEInputs=KSignalDTEOutputs;
1.167 -const TUint KSignalDCEOutputs=KSignalDTEInputs;
1.168 -
1.169 -const TUint KConfigSIRPulseWidthMaximum=0x01;
1.170 -const TUint KConfigSIRPulseWidthMinimum=0x02;
1.171 -
1.172 -// more SIRSettings for selecting the IR range
1.173 -const TUint KConfigSIRShutDown=0x10;
1.174 -const TUint KConfigSIRMinimumRange=0x20;
1.175 -const TUint KConfigSIRMediumRange=0x40;
1.176 -const TUint KConfigSIRMaximumRange=0x80;
1.177 -
1.178 -/**
1.179 - Comms configuration structure.
1.180 - Class to hold the configuration settings for serial comm port
1.181 -
1.182 - This class provides the serial port configuration block interface of serial comms (c32).
1.183 - A serial comm client sets up a serial port before use, by providing a configuration block.
1.184 - TCommConfigV01 is initialized with settings for serial port and used to configure the
1.185 - serial port by calling DComm::Configure(TCommConfigV01 &aConfig) or any other serial comm
1.186 - API to configure the serial port.
1.187 - */
1.188 -class TCommConfigV01
1.189 - {
1.190 -public:
1.191 - /**
1.192 - Data rate in bits per second.
1.193 - @see TBps
1.194 - */
1.195 - TBps iRate;
1.196 - /**
1.197 - Character width in bits.
1.198 - @see TDataBits
1.199 - */
1.200 - TDataBits iDataBits;
1.201 - /**
1.202 - Number of stop bits.
1.203 - @see TStopBits
1.204 - */
1.205 - TStopBits iStopBits;
1.206 - /**
1.207 - Type of parity.
1.208 - @see TParity
1.209 - */
1.210 - TParity iParity;
1.211 - /**
1.212 - Type of Handshaking control.
1.213 - Possible values can be KConfigObeyXXX or KConfigSendXXX or KConfigFailXXX or KConfigFreeXXX
1.214 - */
1.215 - TUint iHandshake;
1.216 - /**
1.217 - Type of error to generate on a parity failure.
1.218 - Possible values can be KConfigParityErrorFail or KConfigParityErrorIgnore or KConfigParityErrorReplaceChar
1.219 - */
1.220 - TUint iParityError;
1.221 - /**
1.222 - FIFO status, enabled or disabled.
1.223 - @see TFifo
1.224 - */
1.225 - TUint iFifo;
1.226 - /**
1.227 - Special data rate, not listed under TBps. Use this, when iRate is set to EBpsSpecial
1.228 - */
1.229 - TInt iSpecialRate;
1.230 - /**
1.231 - Count of number of special characters used as terminators (<=KConfigMaxTerminators)
1.232 - */
1.233 - TInt iTerminatorCount;
1.234 - /**
1.235 - Array of special characters which can be used as terminators
1.236 - */
1.237 - TText8 iTerminator[KConfigMaxTerminators];
1.238 - /**
1.239 - Character used to signal the transmitter to resume sending when using XON/XOFF handshaking
1.240 - i.e character used as XON - software flow control
1.241 - */
1.242 - TText8 iXonChar;
1.243 - /**
1.244 - Character used to signal the transmitter to suspend sending when using XON/XOFF handshaking
1.245 - i.e character used as XOFF - software flow control
1.246 - */
1.247 - TText8 iXoffChar;
1.248 - /**
1.249 - Character used to replace the characters received with a parity error.
1.250 - This is used when iParityError is set to KConfigParityErrorReplaceChar
1.251 - */
1.252 - TText8 iParityErrorChar;
1.253 - /**
1.254 - Switch the SIR encoding hardware on and off.
1.255 - @see TSir
1.256 - */
1.257 - TSir iSIREnable;
1.258 - /**
1.259 - SIR hardware control setting. Possible value can be one of KConfigSIRXXX
1.260 - */
1.261 - TUint iSIRSettings;
1.262 - };
1.263 -/**
1.264 - Package buffer for a TCommConfigV01 object.
1.265 -
1.266 - TCommConfig packages the comms configuration structure TCommConfigV01 to a buffer.
1.267 - This is used with API of serial comms like RComm::Config(TDes8 &aConfig) and
1.268 - RComm::SetConfig(TDesC8 &aConfig) where config structure is passed as buffer.
1.269 -
1.270 - @see TCommConfigV01
1.271 - */
1.272 -typedef TPckgBuf<TCommConfigV01> TCommConfig;
1.273 -
1.274 -// TCommConfigV02 is deprecated.
1.275 -//
1.276 -class TCommConfigV02: public TCommConfigV01
1.277 - {
1.278 -public:
1.279 - TInt iTxShutdownTimeout;
1.280 - };
1.281 -
1.282 -// TCommConfig2 is deprecated
1.283 -//
1.284 -typedef TPckgBuf<TCommConfigV02> TCommConfig2;
1.285 -
1.286 -//
1.287 -const TUint KCapsBps50=0x00000001;
1.288 -const TUint KCapsBps75=0x00000002;
1.289 -const TUint KCapsBps110=0x00000004;
1.290 -const TUint KCapsBps134=0x00000008;
1.291 -const TUint KCapsBps150=0x00000010;
1.292 -const TUint KCapsBps300=0x00000020;
1.293 -const TUint KCapsBps600=0x00000040;
1.294 -const TUint KCapsBps1200=0x00000080;
1.295 -const TUint KCapsBps1800=0x00000100;
1.296 -const TUint KCapsBps2000=0x00000200;
1.297 -const TUint KCapsBps2400=0x00000400;
1.298 -const TUint KCapsBps3600=0x00000800;
1.299 -const TUint KCapsBps4800=0x00001000;
1.300 -const TUint KCapsBps7200=0x00002000;
1.301 -const TUint KCapsBps9600=0x00004000;
1.302 -const TUint KCapsBps19200=0x00008000;
1.303 -const TUint KCapsBps38400=0x00010000;
1.304 -const TUint KCapsBps57600=0x00020000;
1.305 -const TUint KCapsBps115200=0x00040000;
1.306 -const TUint KCapsBps230400=0x00080000;
1.307 -const TUint KCapsBps460800=0x00100000;
1.308 -const TUint KCapsBps576000 =0x00200000;
1.309 -const TUint KCapsBps1152000=0x00400000;
1.310 -const TUint KCapsBps4000000=0x00800000;
1.311 -const TUint KCapsBps921600=0x01000000;
1.312 -const TUint KCapsBpsAutobaud=0x40000000;
1.313 -const TUint KCapsBpsSpecial=0x80000000;
1.314 -//
1.315 -const TUint KCapsData5=0x01;
1.316 -const TUint KCapsData6=0x02;
1.317 -const TUint KCapsData7=0x04;
1.318 -const TUint KCapsData8=0x08;
1.319 -//
1.320 -const TUint KCapsStop1=0x01;
1.321 -const TUint KCapsStop2=0x02;
1.322 -//
1.323 -const TUint KCapsParityNone=0x01;
1.324 -const TUint KCapsParityEven=0x02;
1.325 -const TUint KCapsParityOdd=0x04;
1.326 -const TUint KCapsParityMark=0x08;
1.327 -const TUint KCapsParitySpace=0x10;
1.328 -//
1.329 -const TUint KCapsSignalCTSSupported=0x01;
1.330 -const TUint KCapsSignalDSRSupported=0x02;
1.331 -const TUint KCapsSignalDCDSupported=0x04;
1.332 -const TUint KCapsSignalRNGSupported=0x08;
1.333 -const TUint KCapsSignalRTSSupported=0x10;
1.334 -const TUint KCapsSignalDTRSupported=0x20;
1.335 -//
1.336 -const TUint KCapsObeyXoffSupported=0x01;
1.337 -const TUint KCapsSendXoffSupported=0x02;
1.338 -const TUint KCapsObeyCTSSupported=0x04;
1.339 -const TUint KCapsFailCTSSupported=0x08;
1.340 -const TUint KCapsObeyDSRSupported=0x10;
1.341 -const TUint KCapsFailDSRSupported=0x20;
1.342 -const TUint KCapsObeyDCDSupported=0x40;
1.343 -const TUint KCapsFailDCDSupported=0x80;
1.344 -const TUint KCapsFreeRTSSupported=0x100;
1.345 -const TUint KCapsFreeDTRSupported=0x200;
1.346 -// DCE Constants
1.347 -const TUint KCapsObeyRTSSupported=0x400;
1.348 -const TUint KCapsObeyDTRSupported=0x800;
1.349 -//
1.350 -const TUint KCapsHasFifo=0x01;
1.351 -//
1.352 -const TUint KCapsSIR115kbps=0x01;
1.353 -const TUint KCapsSIR2400bpsOnly=0x02;
1.354 -const TUint KCapsSIR4Mbs=0x04;
1.355 -//
1.356 -const TUint KNotifySignalsChangeSupported=0x01;
1.357 -const TUint KNotifyRateChangeSupported=0x02;
1.358 -const TUint KNotifyDataFormatChangeSupported=0x04;
1.359 -const TUint KNotifyHandshakeChangeSupported=0x08;
1.360 -const TUint KNotifyBreakSupported=0x10;
1.361 -const TUint KNotifyFlowControlChangeSupported=0x20;
1.362 -const TUint KNotifyDataAvailableSupported=0x40;
1.363 -const TUint KNotifyOutputEmptySupported=0x80;
1.364 -//
1.365 -const TUint KCapsRoleSwitchSupported=0x01;
1.366 -//
1.367 -const TUint KCapsFlowControlStatusSupported=0x01;
1.368 -//
1.369 -const TUint KRateChanged=0x01;
1.370 -const TUint KDataFormatChanged=0x02;
1.371 -const TUint KHandshakeChanged=0x04;
1.372 -//
1.373 -class TCommCapsV01
1.374 - {
1.375 -public:
1.376 - TUint iRate;
1.377 - TUint iDataBits;
1.378 - TUint iStopBits;
1.379 - TUint iParity;
1.380 - TUint iHandshake;
1.381 - TUint iSignals;
1.382 - TUint iFifo;
1.383 - TUint iSIR;
1.384 - };
1.385 -typedef TPckgBuf<TCommCapsV01> TCommCaps;
1.386 -
1.387 -class TCommCapsV02 : public TCommCapsV01
1.388 - {
1.389 -public:
1.390 - TUint iNotificationCaps;
1.391 - TUint iRoleCaps;
1.392 - TUint iFlowControlCaps;
1.393 - };
1.394 -typedef TPckgBuf<TCommCapsV02> TCommCaps2;
1.395 -
1.396 -class TCommCapsV03 : public TCommCapsV02
1.397 - {
1.398 -public:
1.399 - TBool iBreakSupported;
1.400 - };
1.401 -typedef TPckgBuf<TCommCapsV03> TCommCaps3;
1.402 -
1.403 -//
1.404 -class TCapsDevCommV01
1.405 - {
1.406 -public:
1.407 - TVersion version;
1.408 - };
1.409 -
1.410 -class TCommNotificationV01
1.411 - {
1.412 -public:
1.413 - TUint iChangedMembers;
1.414 - TBps iRate;
1.415 - TDataBits iDataBits;
1.416 - TStopBits iStopBits;
1.417 - TParity iParity;
1.418 - TUint iHandshake;
1.419 - };
1.420 -typedef TPckgBuf<TCommNotificationV01> TCommNotificationPckg;
1.421 -//
1.422 -const TUint KDataAvailableNotifyFlag=0x80000000;
1.423 -//
1.424 -#ifdef _DEBUG_DEVCOMM
1.425 -class TCommDebugInfo
1.426 - {
1.427 -public:
1.428 - TBool iRxBusy;
1.429 - TBool iRxHeld;
1.430 - TInt iRxLength;
1.431 - TInt iRxOffset;
1.432 - TInt iRxIntCount;
1.433 - TInt iRxErrCount;
1.434 - TInt iRxBufCount;
1.435 - TBool iTxBusy;
1.436 - TBool iTxHeld;
1.437 - TInt iTxLength;
1.438 - TInt iTxOffset;
1.439 - TInt iTxIntCount;
1.440 - TInt iTxErrCount;
1.441 - TInt iTxBufCount;
1.442 - TBool iDrainingRxBuf;
1.443 - TBool iFillingTxBuf;
1.444 - TBool iRunningDfc;
1.445 - TInt iDfcCount;
1.446 - TInt iDfcReqSeq;
1.447 - TInt iDfcHandlerSeq;
1.448 - TInt iDoDrainSeq;
1.449 - TBool iTxDfcPend;
1.450 - TBool iRxDfcPend;
1.451 - TInt iTxChars, iRxChars;
1.452 - TInt iTxXon, iTxXoff, iRxXon, iRxXoff;
1.453 - };
1.454 -typedef TPckgBuf<TCommDebugInfo> TCommDebugInfoPckg;
1.455 -#endif
1.456 -//
1.457 -class RBusDevComm : public RBusLogicalChannel
1.458 - {
1.459 -public:
1.460 - enum TVer {EMajorVersionNumber=1,EMinorVersionNumber=0,EBuildVersionNumber=KE32BuildVersionNumber};
1.461 - enum TRequest
1.462 - {
1.463 - ERequestRead=0x0,ERequestReadCancel=0x1,
1.464 - ERequestWrite=0x1,ERequestWriteCancel=0x2,
1.465 - ERequestBreak=0x2,ERequestBreakCancel=0x4,
1.466 - ERequestNotifySignalChange=0x3,ERequestNotifySignalChangeCancel=0x8,
1.467 - };
1.468 - enum TControl
1.469 - {
1.470 - EControlConfig,EControlSetConfig,EControlCaps,
1.471 - EControlSignals,EControlSetSignals,
1.472 - EControlQueryReceiveBuffer,EControlResetBuffers,
1.473 - EControlReceiveBufferLength,EControlSetReceiveBufferLength,
1.474 - EControlMinTurnaroundTime,EControlSetMinTurnaroundTime,
1.475 -#ifdef _DEBUG_DEVCOMM
1.476 - EControlDebugInfo
1.477 -#endif
1.478 - };
1.479 -public:
1.480 -#ifndef __KERNEL_MODE__
1.481 - inline TInt Open(TInt aUnit);
1.482 - inline TVersion VersionRequired() const;
1.483 - inline void Read(TRequestStatus &aStatus,TDes8 &aDes);
1.484 - inline void Read(TRequestStatus &aStatus,TDes8 &aDes,TInt aLength);
1.485 - inline void ReadOneOrMore(TRequestStatus &aStatus,TDes8 &aDes);
1.486 - inline void ReadCancel();
1.487 - inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes);
1.488 - inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes,TInt aLength);
1.489 - inline void WriteCancel();
1.490 - inline void Break(TRequestStatus &aStatus,TInt aTime);
1.491 - inline void BreakCancel();
1.492 - inline void Config(TDes8 &aConfig);
1.493 - inline TInt SetConfig(const TDesC8 &aConfig);
1.494 - inline void Caps(TDes8 &aCaps);
1.495 - inline TUint Signals();
1.496 - inline void SetSignals(TUint aSetMask,TUint aClearMask);
1.497 - inline TInt QueryReceiveBuffer();
1.498 - inline void ResetBuffers();
1.499 - inline TInt ReceiveBufferLength();
1.500 - inline TInt SetReceiveBufferLength(TInt aLength);
1.501 - inline void NotifySignalChange(TRequestStatus& aStatus,TUint& aSignals,TUint aSignalMask=0x3F);
1.502 - inline void NotifySignalChangeCancel();
1.503 - inline void NotifyReceiveDataAvailable(TRequestStatus& aStatus);
1.504 - inline void NotifyReceiveDataAvailableCancel();
1.505 - inline TUint MinTurnaroundTime();
1.506 - inline TInt SetMinTurnaroundTime(TUint aMicroSeconds);
1.507 -#ifdef _DEBUG_DEVCOMM
1.508 - inline void DebugInfo(TDes8 &aInfo);
1.509 -#endif
1.510 -#endif
1.511 - };
1.512 -
1.513 -class RBusDevCommDCE : public RBusLogicalChannel
1.514 - {
1.515 -public:
1.516 - enum TVer {EMajorVersionNumber=1,EMinorVersionNumber=0,EBuildVersionNumber=KE32BuildVersionNumber};
1.517 - enum TRequest
1.518 - {
1.519 - ERequestRead=0x0,ERequestReadCancel=0x1,
1.520 - ERequestWrite=0x1,ERequestWriteCancel=0x2,
1.521 - ERequestBreak=0x2,ERequestBreakCancel=0x4,
1.522 - ERequestNotifySignalChange=0x3,ERequestNotifySignalChangeCancel=0x8,
1.523 - ERequestNotifyFlowControlChange=0x4,ERequestNotifyFlowControlChangeCancel=0x10,
1.524 - ERequestNotifyConfigChange=0x5,ERequestNotifyConfigChangeCancel=0x20
1.525 - };
1.526 - enum TControl
1.527 - {
1.528 - EControlConfig,EControlSetConfig,EControlCaps,
1.529 - EControlSignals,EControlSetSignals,
1.530 - EControlQueryReceiveBuffer,EControlResetBuffers,
1.531 - EControlReceiveBufferLength,EControlSetReceiveBufferLength,
1.532 - EControlFlowControlStatus,
1.533 -#ifdef _DEBUG_DEVCOMM
1.534 - EControlDebugInfo
1.535 -#endif
1.536 - };
1.537 -public:
1.538 -#ifndef __KERNEL_MODE__
1.539 - inline TInt Open(TInt aUnit);
1.540 - inline TVersion VersionRequired() const;
1.541 - inline void Read(TRequestStatus &aStatus,TDes8 &aDes);
1.542 - inline void Read(TRequestStatus &aStatus,TDes8 &aDes,TInt aLength);
1.543 - inline void ReadOneOrMore(TRequestStatus &aStatus,TDes8 &aDes);
1.544 - inline void ReadCancel();
1.545 - inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes);
1.546 - inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes,TInt aLength);
1.547 - inline void WriteCancel();
1.548 - inline void Break(TRequestStatus &aStatus,TInt aTime);
1.549 - inline void BreakCancel();
1.550 - inline void Config(TDes8 &aConfig);
1.551 - inline TInt SetConfig(const TDesC8 &aConfig);
1.552 - inline void Caps(TDes8 &aCaps);
1.553 - inline TUint Signals();
1.554 - inline void SetSignals(TUint aSetMask,TUint aClearMask);
1.555 - inline TInt QueryReceiveBuffer();
1.556 - inline void ResetBuffers();
1.557 - inline TInt ReceiveBufferLength();
1.558 - inline TInt SetReceiveBufferLength(TInt aLength);
1.559 - inline void NotifySignalChange(TRequestStatus& aStatus,TUint& aSignals,TUint aSignalMask=0x3F);
1.560 - inline void NotifySignalChangeCancel();
1.561 - inline void NotifyReceiveDataAvailable(TRequestStatus& aStatus);
1.562 - inline void NotifyReceiveDataAvailableCancel();
1.563 - inline void NotifyFlowControlChange(TRequestStatus& aStatus);
1.564 - inline void NotifyFlowControlChangeCancel();
1.565 - inline void GetFlowControlStatus(TFlowControl& aFlowControl);
1.566 - inline void NotifyConfigChange(TRequestStatus& aStatus, TDes8& aNewConfig);
1.567 - inline void NotifyConfigChangeCancel();
1.568 -#ifdef _DEBUG_DEVCOMM
1.569 - inline void DebugInfo(TDes8 &aInfo);
1.570 -#endif
1.571 -#endif
1.572 - };
1.573 -
1.574 -#include <d32comm.inl>
1.575 -#endif