Update contrib.
1 // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // e32\include\d32comm.h
18 //#define _DEBUG_DEVCOMM
30 #include <d32public.h>
33 Enumeration of number of data bits for serial port configuration.
34 Typically, these values are used to initialize the iDataBits of
35 TCommConfigV01 before calling DComm::Configure() or any other serial
36 comm API to configure the serial port's databits size.
38 enum TDataBits {EData5,EData6,EData7,EData8};
40 Enumeration of number of stop bits for serial port configuration.
41 Typically, these values are used to initialize the iStopBits of
42 TCommConfigV01 before calling DComm::Configure() or any other serial
43 comm API to configure the serial port's stopbits.
45 enum TStopBits {EStop1,EStop2};
47 Enumeration of types of parity for serial port configuration.
48 Typically, these values are used to initialize the iParity of
49 TCommConfigV01 before calling DComm::Configure() or any other serial
50 comm API to configure the serial port's parity setting.
52 enum TParity {EParityNone,EParityEven,EParityOdd,EParityMark,EParitySpace};
54 Enumeration of baud rates in bits per second for serial port configuration.
55 * e.g EBps115200 is for 115200Bps data rate
56 Typically, these values are used to initialize the iRate of TCommConfigV01
57 before calling DComm::Configure() or any other serial comm API to configure
58 the serial port's baud rate.
87 EBpsAutobaud=0x40000000,
88 EBpsSpecial=0x80000000,
91 Enumeration of Fifo status (enable and disable) for serial port configuration.
92 Typically, these values are used to initialize the iFifo of TCommConfigV01
93 before calling DComm::Configure() or any other serial comm API to configure
94 the serial port's fifo.
98 EFifoEnable,EFifoDisable,
101 Enumeration of SIR status (enable and disable) for serial comm configuration.
102 Typically, these values are used to initialize the iSIREnable of TCommConfigV01
103 before calling DComm::Configure() or any other serial comm API to configure
104 the serial port's SIR (infrared) settings.
108 ESIREnable,ESIRDisable,
111 const TInt KConfigMaxTerminators=4;
113 const TUint KConfigObeyXoff=0x01;
114 const TUint KConfigSendXoff=0x02;
115 const TUint KConfigObeyCTS=0x04;
116 const TUint KConfigFailCTS=0x08;
117 const TUint KConfigObeyDSR=0x10;
118 const TUint KConfigFailDSR=0x20;
119 const TUint KConfigObeyDCD=0x40;
120 const TUint KConfigFailDCD=0x80;
121 const TUint KConfigFreeRTS=0x100;
122 const TUint KConfigFreeDTR=0x200;
124 const TUint KConfigObeyDTR=0x400;
125 const TUint KConfigFailDTR=0x800;
126 const TUint KConfigObeyRTS=0x1000;
127 const TUint KConfigFailRTS=0x2000;
128 const TUint KConfigFreeDSR=0x4000;
129 const TUint KConfigFreeCTS=0x8000;
130 const TUint KConfigFreeDCD=0x10000;
131 const TUint KConfigFreeRI=0x20000;
132 const TUint KConfigWriteBufferedComplete=0x80000000;
134 const TUint KConfigParityErrorFail=0;
135 const TUint KConfigParityErrorIgnore=0x01;
136 const TUint KConfigParityErrorReplaceChar=0x02;
137 const TUint KConfigXonXoffDebug=0x80000000;
139 const TUint KSignalCTS=0x01;
140 const TUint KSignalDSR=0x02;
141 const TUint KSignalDCD=0x04;
142 const TUint KSignalRNG=0x08;
143 const TUint KSignalRTS=0x10;
144 const TUint KSignalDTR=0x20;
145 const TUint KSignalBreak=0x40;
147 const TUint KSignalChanged=0x1000;
148 const TUint KCTSChanged=KSignalCTS*KSignalChanged;
149 const TUint KDSRChanged=KSignalDSR*KSignalChanged;
150 const TUint KDCDChanged=KSignalDCD*KSignalChanged;
151 const TUint KRNGChanged=KSignalRNG*KSignalChanged;
152 const TUint KRTSChanged=KSignalRTS*KSignalChanged;
153 const TUint KDTRChanged=KSignalDTR*KSignalChanged;
154 const TUint KBreakChanged=KSignalBreak*KSignalChanged;
156 const TUint KSignalDTEOutputs=KSignalRTS|KSignalDTR;
157 const TUint KSignalDTEInputs=KSignalCTS|KSignalDSR|KSignalDCD|KSignalRNG;
158 const TUint KSignalDCEInputs=KSignalDTEOutputs;
159 const TUint KSignalDCEOutputs=KSignalDTEInputs;
161 const TUint KConfigSIRPulseWidthMaximum=0x01;
162 const TUint KConfigSIRPulseWidthMinimum=0x02;
164 // more SIRSettings for selecting the IR range
165 const TUint KConfigSIRShutDown=0x10;
166 const TUint KConfigSIRMinimumRange=0x20;
167 const TUint KConfigSIRMediumRange=0x40;
168 const TUint KConfigSIRMaximumRange=0x80;
171 Comms configuration structure.
172 Class to hold the configuration settings for serial comm port
174 This class provides the serial port configuration block interface of serial comms (c32).
175 A serial comm client sets up a serial port before use, by providing a configuration block.
176 TCommConfigV01 is initialized with settings for serial port and used to configure the
177 serial port by calling DComm::Configure(TCommConfigV01 &aConfig) or any other serial comm
178 API to configure the serial port.
184 Data rate in bits per second.
189 Character width in bits.
204 Type of Handshaking control.
205 Possible values can be KConfigObeyXXX or KConfigSendXXX or KConfigFailXXX or KConfigFreeXXX
209 Type of error to generate on a parity failure.
210 Possible values can be KConfigParityErrorFail or KConfigParityErrorIgnore or KConfigParityErrorReplaceChar
214 FIFO status, enabled or disabled.
219 Special data rate, not listed under TBps. Use this, when iRate is set to EBpsSpecial
223 Count of number of special characters used as terminators (<=KConfigMaxTerminators)
225 TInt iTerminatorCount;
227 Array of special characters which can be used as terminators
229 TText8 iTerminator[KConfigMaxTerminators];
231 Character used to signal the transmitter to resume sending when using XON/XOFF handshaking
232 i.e character used as XON - software flow control
236 Character used to signal the transmitter to suspend sending when using XON/XOFF handshaking
237 i.e character used as XOFF - software flow control
241 Character used to replace the characters received with a parity error.
242 This is used when iParityError is set to KConfigParityErrorReplaceChar
244 TText8 iParityErrorChar;
246 Switch the SIR encoding hardware on and off.
251 SIR hardware control setting. Possible value can be one of KConfigSIRXXX
256 Package buffer for a TCommConfigV01 object.
258 TCommConfig packages the comms configuration structure TCommConfigV01 to a buffer.
259 This is used with API of serial comms like RComm::Config(TDes8 &aConfig) and
260 RComm::SetConfig(TDesC8 &aConfig) where config structure is passed as buffer.
264 typedef TPckgBuf<TCommConfigV01> TCommConfig;
266 // TCommConfigV02 is deprecated.
268 class TCommConfigV02: public TCommConfigV01
271 TInt iTxShutdownTimeout;
274 // TCommConfig2 is deprecated
276 typedef TPckgBuf<TCommConfigV02> TCommConfig2;
279 const TUint KCapsBps50=0x00000001;
280 const TUint KCapsBps75=0x00000002;
281 const TUint KCapsBps110=0x00000004;
282 const TUint KCapsBps134=0x00000008;
283 const TUint KCapsBps150=0x00000010;
284 const TUint KCapsBps300=0x00000020;
285 const TUint KCapsBps600=0x00000040;
286 const TUint KCapsBps1200=0x00000080;
287 const TUint KCapsBps1800=0x00000100;
288 const TUint KCapsBps2000=0x00000200;
289 const TUint KCapsBps2400=0x00000400;
290 const TUint KCapsBps3600=0x00000800;
291 const TUint KCapsBps4800=0x00001000;
292 const TUint KCapsBps7200=0x00002000;
293 const TUint KCapsBps9600=0x00004000;
294 const TUint KCapsBps19200=0x00008000;
295 const TUint KCapsBps38400=0x00010000;
296 const TUint KCapsBps57600=0x00020000;
297 const TUint KCapsBps115200=0x00040000;
298 const TUint KCapsBps230400=0x00080000;
299 const TUint KCapsBps460800=0x00100000;
300 const TUint KCapsBps576000 =0x00200000;
301 const TUint KCapsBps1152000=0x00400000;
302 const TUint KCapsBps4000000=0x00800000;
303 const TUint KCapsBps921600=0x01000000;
304 const TUint KCapsBpsAutobaud=0x40000000;
305 const TUint KCapsBpsSpecial=0x80000000;
307 const TUint KCapsData5=0x01;
308 const TUint KCapsData6=0x02;
309 const TUint KCapsData7=0x04;
310 const TUint KCapsData8=0x08;
312 const TUint KCapsStop1=0x01;
313 const TUint KCapsStop2=0x02;
315 const TUint KCapsParityNone=0x01;
316 const TUint KCapsParityEven=0x02;
317 const TUint KCapsParityOdd=0x04;
318 const TUint KCapsParityMark=0x08;
319 const TUint KCapsParitySpace=0x10;
321 const TUint KCapsSignalCTSSupported=0x01;
322 const TUint KCapsSignalDSRSupported=0x02;
323 const TUint KCapsSignalDCDSupported=0x04;
324 const TUint KCapsSignalRNGSupported=0x08;
325 const TUint KCapsSignalRTSSupported=0x10;
326 const TUint KCapsSignalDTRSupported=0x20;
328 const TUint KCapsObeyXoffSupported=0x01;
329 const TUint KCapsSendXoffSupported=0x02;
330 const TUint KCapsObeyCTSSupported=0x04;
331 const TUint KCapsFailCTSSupported=0x08;
332 const TUint KCapsObeyDSRSupported=0x10;
333 const TUint KCapsFailDSRSupported=0x20;
334 const TUint KCapsObeyDCDSupported=0x40;
335 const TUint KCapsFailDCDSupported=0x80;
336 const TUint KCapsFreeRTSSupported=0x100;
337 const TUint KCapsFreeDTRSupported=0x200;
339 const TUint KCapsObeyRTSSupported=0x400;
340 const TUint KCapsObeyDTRSupported=0x800;
342 const TUint KCapsHasFifo=0x01;
344 const TUint KCapsSIR115kbps=0x01;
345 const TUint KCapsSIR2400bpsOnly=0x02;
346 const TUint KCapsSIR4Mbs=0x04;
348 const TUint KNotifySignalsChangeSupported=0x01;
349 const TUint KNotifyRateChangeSupported=0x02;
350 const TUint KNotifyDataFormatChangeSupported=0x04;
351 const TUint KNotifyHandshakeChangeSupported=0x08;
352 const TUint KNotifyBreakSupported=0x10;
353 const TUint KNotifyFlowControlChangeSupported=0x20;
354 const TUint KNotifyDataAvailableSupported=0x40;
355 const TUint KNotifyOutputEmptySupported=0x80;
357 const TUint KCapsRoleSwitchSupported=0x01;
359 const TUint KCapsFlowControlStatusSupported=0x01;
361 const TUint KRateChanged=0x01;
362 const TUint KDataFormatChanged=0x02;
363 const TUint KHandshakeChanged=0x04;
367 Comms capability structure.
368 Class to query the capability settings for serial comm port device.
369 Members of this class are filled with the capabilities of the comm port device.
376 Data rates supported, in bits per second.
377 The value is a bitmask made by OR-ing KCapsBpsXXX values.
378 Each set bit corresponds to a supported bit rate.
382 Character widths supported, in bits.
383 The value is a bitmask made by OR-ing a combination of KCapsData5, KCapsData6, KCapsData7 and KCapsData8 values.
384 Each set bit corresponds to a supported character width.
388 Number of stop bits supported.
389 The value is one of KCapsStop1, KCapsStop2 or KCapsStop1|KCapsStop2.
390 Each set bit corresponds to a supported number of stop bit.
394 Parity types supported.
395 The value is a bitmask made by OR-ing a combination of KCapsParityNone, KCapsParityEven, KCapsParityOdd, KCapsParityMark and KCapsParitySpace values.
396 Each set bit corresponds to a supported parity type.
400 Type of Handshaking protocols supported by the device.
401 The value is a bitmask made by OR-ing a combination of KCapsObeyXXX, KCapsSendXXX, KCapsFailXXX and KCapsFreeXXX values.
402 Each set bit corresponds to a supported handshaking protocol.
406 Type of Signals supported by the device.
407 The value is a bitmask made by OR-ing a combination of KCapsSignalXXX values.
408 Each set bit corresponds to a supported signal.
412 Whether Fifo is enabled or disabled.
413 Value is KCapsHasFifo if enabled, 0 otherwise
417 Capabilities of the SIR encoding hardware.
418 The value is a bitmask made by OR-ing a combination of KCapsSIR115kbps, KCapsSIR2400bpsOnly and KCapsSIR4Mbps values.
419 Each set bit corresponds to a supported SIR capability.
424 Package buffer for a TCommCapsV01 object.
426 TCommCaps packages the comms capability structure TCommCapsV01 in a buffer.
427 This is used by serial comms APIs to pass the capability structure as a buffer,
428 for example in RComm::Caps(TDes8 &aCaps).
432 typedef TPckgBuf<TCommCapsV01> TCommCaps;
435 Comms capability structure.
436 Class to query the capability settings for serial comm port.
437 Members of this class are filled with the capabilities of the comm port.
441 class TCommCapsV02 : public TCommCapsV01
445 Specifies the notifications that are supported for the serial comm port.
446 The field is a bitmask made by OR-ing a combination of:
447 -KNotifySignalsChangeSupported
448 -KNotifyRateChangeSupported
449 -KNotifyDataFormatChangeSupported
450 -KNotifyHandshakeChangeSupported
451 -KNotifyBreakSupported
452 -KNotifyFlowControlChangeSupported
453 -KNotifyDataAvailableSupported
454 -KNotifyOutputEmptySupported
455 Each set bit corresponds to a supported notification type.
457 TUint iNotificationCaps;
459 Specifies whether Role Switch is supported or not.
460 If supported the value is KCapsRoleSwitchSupported, otherwise Zero
464 Specifies whether Flow Control Status is supported or not.
465 If supported the value is KCapsFlowControlStatusSupported, otherwise Zero
467 TUint iFlowControlCaps;
471 Package buffer for a TCommCapsV02 object.
473 TCommCaps2 packages the comms capability structure TCommCapsV02 in a buffer.
474 This is used by serial comms to pass the capability structure as a buffer,
475 for example in RComm::Caps(TDes8 &aCaps)
479 typedef TPckgBuf<TCommCapsV02> TCommCaps2;
483 Comms capability structure.
484 Class to hold the capability settings for serial comm port.
486 This class is used to query the capabilities of the serial comm port.
487 Members of this class are filled with the capabilities of the comm port.
491 class TCommCapsV03 : public TCommCapsV02
495 Specifies whether break is supported or not.
496 ETrue if Supported, EFalse otherwise.
498 TBool iBreakSupported;
502 Package buffer for a TCommCapsV03 object.
504 TCommCaps3 packages the comms capability structure TCommCapsV03 in a buffer.
505 This is used by serial comms APIs to pass the capability structure as a buffer,
506 for example in RComm::Caps(TDes8 &aCaps)
510 typedef TPckgBuf<TCommCapsV03> TCommCaps3;
513 Structure that holds the capabilities of the Comms factory object. Only Version is supported.
514 This structure is packaged within a descriptor when passed to methods such as RDevice::GetCaps()
516 class TCapsDevCommV01
520 Version of the device
527 Comms Notification configuration structure
528 Class to hold the notification configuration of the device.
529 Notifications are only used with DCE (modem) comms ports.
531 class TCommNotificationV01
535 Specifies which of the configuration members have changed
536 This value is a bitmask made by OR-ing a combination of KRateChanged,KDataFormatChanged and KHandshakeChanged values.
537 Each set bit corresponds to a change in the configuration notification.
540 TUint iChangedMembers;
542 Data rate in bits per second.
547 Character width in bits.
562 Type of Handshaking control.
563 Possible values can be any combination of KConfigObeyXXX, KConfigSendXXX, KConfigFailXXX and KConfigFreeXXX.
568 Package buffer for a TCommNotificationV01 object.
569 Packages TCommNotificationV01 within a buffer.
570 @see TCommNotificationV01
572 typedef TPckgBuf<TCommNotificationV01> TCommNotificationPckg;
574 const TUint KDataAvailableNotifyFlag=0x80000000;
576 #ifdef _DEBUG_DEVCOMM
594 TBool iDrainingRxBuf;
603 TInt iTxChars, iRxChars;
604 TInt iTxXon, iTxXoff, iRxXon, iRxXoff;
606 typedef TPckgBuf<TCommDebugInfo> TCommDebugInfoPckg;
611 The externally visible interface through which the clients can access serial devices.
612 It also represents a user side handle to the serial device driver.
614 class RBusDevComm : public RBusLogicalChannel
618 Serial device driver build version.
623 EMajorVersionNumber=1,
625 EMinorVersionNumber=0,
627 EBuildVersionNumber=KE32BuildVersionNumber
631 Asynchronous request types
637 /** Cancel read request */
638 ERequestReadCancel=0x1,
641 /** Cancel write request */
642 ERequestWriteCancel=0x2,
645 /** Cancel break request */
646 ERequestBreakCancel=0x4,
647 /** Signal change notification request */
648 ERequestNotifySignalChange=0x3,
649 /** Cancel signal change notification request */
650 ERequestNotifySignalChangeCancel=0x8,
654 Synchronous request types
658 /** Get the current configuration */
660 /** Set the device configuration */
662 /** Get the device capabilities */
664 /** Read the state of Modem control signals supported */
666 /** Set the state of output modem control signals */
668 /** Query the driver receive buffer for data availability */
669 EControlQueryReceiveBuffer,
670 /** Reset the driver buffers */
671 EControlResetBuffers,
672 /** Get the driver receive buffer length */
673 EControlReceiveBufferLength,
674 /** Set the driver receive buffer length */
675 EControlSetReceiveBufferLength,
676 /** Get the minimum turnaround time between a receive and subsequent transmission operation */
677 EControlMinTurnaroundTime,
678 /** Set the minimum turnaround time between a receive and subsequent transmission operation */
679 EControlSetMinTurnaroundTime,
680 #ifdef _DEBUG_DEVCOMM
681 /** Get debug information from the driver */
687 #ifndef __KERNEL_MODE__
690 This function opens a channel and creates a handle to the serial driver.
691 @param aUnit The unit number of the serial device.
692 @return KErrNone, if successful;
693 otherwise one of the other system-wide error codes.
694 KErrPermissionDenied if the port given in aName is wrong or if the request fails the CSY's own security check;
695 KErrNotSupported if this port is not supported by the CSY or the hardware;
696 KErrLocked if the port has already been opened;
697 KErrAccessDenied if the device driver encounteres a problem opening the hardware port.
699 inline TInt Open(TInt aUnit);
702 Get the version number required by the driver
703 @return The version number required by the driver
706 inline TVersion VersionRequired() const;
709 Read from the channel
710 @param aStatus The asynchronous request status
711 @param aDes Buffer to be filled in by the driver
713 inline void Read(TRequestStatus &aStatus,TDes8 &aDes);
716 Read from the channel
717 @param aStatus The asynchronous request status
718 @param aDes Buffer to be filled in by the driver
719 @param aLength The length of the data to be read
721 inline void Read(TRequestStatus &aStatus,TDes8 &aDes,TInt aLength);
724 Read one or more characters from the channel.
725 If there is data in the serial driver's buffer when ReadOneOrMore() is called it will
726 read as much data as possible (up to the maximum length of the supplied buffer)
728 If there is no data in the buffer the request will complete as soon as one or more bytes arrive at the serial hardware.
729 @param aStatus The asynchronous request status
730 @param aDes Buffer to be filled in by the driver
732 inline void ReadOneOrMore(TRequestStatus &aStatus,TDes8 &aDes);
735 Cancel a pending read request
737 inline void ReadCancel();
741 @param aStatus The asynchronous request status
742 @param aDes Buffer containing the data to be sent
744 inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes);
748 @param aStatus The asynchronous request status
749 @param aDes Buffer containing the data to be sent
750 @param aLength The length of the data to be sent
752 inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes,TInt aLength);
755 Cancel a pending write request
757 inline void WriteCancel();
760 Causes a break condition to be transmitted to the receiving device
761 @param aStatus The asynchronous request status
762 @param aTime The time interval in microseconds after which the break condition will be released
764 inline void Break(TRequestStatus &aStatus,TInt aTime);
767 Cancel a pending break request
769 inline void BreakCancel();
772 Get the current configuration of the serial device
773 @param aConfig A packaged object to be filled with the configuration information by the driver
776 inline void Config(TDes8 &aConfig);
779 Set the cofiguration of the serial device
780 @param aConfig A packaged object containing the configuration information
783 inline TInt SetConfig(const TDesC8 &aConfig);
786 Get the capabilities of the serial device.
787 @param aCaps A packaged object to be filled with the capabilities of the device.
790 inline void Caps(TDes8 &aCaps);
793 Get the status of the control lines
794 @return A bitmask of KSignalCTS, KSignalDSR, KSignalDCD, KSignalRNG,
795 KSignalRTS, KSignalDTR, KSignalBreak
797 inline TUint Signals();
800 Set and clear the control lines
801 @param aSetMask Bitmask of signals to set
802 @param aClearMask Bitmask of signals to clear
803 @see Signals for a list of signals
805 inline void SetSignals(TUint aSetMask,TUint aClearMask);
808 Get the number of unread characters in the receive buffer of the driver
809 @return The number of unread characters
811 inline TInt QueryReceiveBuffer();
814 Reset the receive and transmit buffers.
816 inline void ResetBuffers();
819 Get the length of the receive buffer
820 @return The length of the receive buffer
822 inline TInt ReceiveBufferLength();
825 Set the length of the receive buffer
826 @param aLength The length of the receive buffer to be set
828 inline TInt SetReceiveBufferLength(TInt aLength);
831 Request notification when one of the signals change.
832 The signals that could change are KSignalCTS, KSignalDSR, KSignalDCD, KSignalRNG,
833 KSignalRTS, KSignalDTR, KSignalBreak.
834 @param aStatus The asynchronous request status
835 @param aSignals Pointer to the bitmask containing the changed signals
836 @param aSignalMask Bitmask of signals to be monitored
838 inline void NotifySignalChange(TRequestStatus& aStatus,TUint& aSignals,TUint aSignalMask=0x3F);
841 Cancel a pending signal change notification request
843 inline void NotifySignalChangeCancel();
846 Request notification when there is data available to be read from the driver receive buffer
847 @param aStatus The asynchronous request status
849 inline void NotifyReceiveDataAvailable(TRequestStatus& aStatus);
852 Cancel a pending data notification request
854 inline void NotifyReceiveDataAvailableCancel();
857 Get the minimum turnaround time before a transmission can begin after a receive operation
858 @return The turnaround time in microseconds
860 inline TUint MinTurnaroundTime();
863 Set the minimum turnaround time between a receive and the next transmission operation
864 @param aMicroSeconds The turnaround time in microseconds
866 inline TInt SetMinTurnaroundTime(TUint aMicroSeconds);
868 #ifdef _DEBUG_DEVCOMM
870 Get the debug information
871 @param aInfo a packaged object to be filled by the driver with debug information
874 inline void DebugInfo(TDes8 &aInfo);
879 class RBusDevCommDCE : public RBusLogicalChannel
882 enum TVer {EMajorVersionNumber=1,EMinorVersionNumber=0,EBuildVersionNumber=KE32BuildVersionNumber};
885 ERequestRead=0x0,ERequestReadCancel=0x1,
886 ERequestWrite=0x1,ERequestWriteCancel=0x2,
887 ERequestBreak=0x2,ERequestBreakCancel=0x4,
888 ERequestNotifySignalChange=0x3,ERequestNotifySignalChangeCancel=0x8,
889 ERequestNotifyFlowControlChange=0x4,ERequestNotifyFlowControlChangeCancel=0x10,
890 ERequestNotifyConfigChange=0x5,ERequestNotifyConfigChangeCancel=0x20
894 EControlConfig,EControlSetConfig,EControlCaps,
895 EControlSignals,EControlSetSignals,
896 EControlQueryReceiveBuffer,EControlResetBuffers,
897 EControlReceiveBufferLength,EControlSetReceiveBufferLength,
898 EControlFlowControlStatus,
899 #ifdef _DEBUG_DEVCOMM
904 #ifndef __KERNEL_MODE__
905 inline TInt Open(TInt aUnit);
906 inline TVersion VersionRequired() const;
907 inline void Read(TRequestStatus &aStatus,TDes8 &aDes);
908 inline void Read(TRequestStatus &aStatus,TDes8 &aDes,TInt aLength);
909 inline void ReadOneOrMore(TRequestStatus &aStatus,TDes8 &aDes);
910 inline void ReadCancel();
911 inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes);
912 inline void Write(TRequestStatus &aStatus,const TDesC8 &aDes,TInt aLength);
913 inline void WriteCancel();
914 inline void Break(TRequestStatus &aStatus,TInt aTime);
915 inline void BreakCancel();
916 inline void Config(TDes8 &aConfig);
917 inline TInt SetConfig(const TDesC8 &aConfig);
918 inline void Caps(TDes8 &aCaps);
919 inline TUint Signals();
920 inline void SetSignals(TUint aSetMask,TUint aClearMask);
921 inline TInt QueryReceiveBuffer();
922 inline void ResetBuffers();
923 inline TInt ReceiveBufferLength();
924 inline TInt SetReceiveBufferLength(TInt aLength);
925 inline void NotifySignalChange(TRequestStatus& aStatus,TUint& aSignals,TUint aSignalMask=0x3F);
926 inline void NotifySignalChangeCancel();
927 inline void NotifyReceiveDataAvailable(TRequestStatus& aStatus);
928 inline void NotifyReceiveDataAvailableCancel();
929 inline void NotifyFlowControlChange(TRequestStatus& aStatus);
930 inline void NotifyFlowControlChangeCancel();
931 inline void GetFlowControlStatus(TFlowControl& aFlowControl);
932 inline void NotifyConfigChange(TRequestStatus& aStatus, TDes8& aNewConfig);
933 inline void NotifyConfigChangeCancel();
934 #ifdef _DEBUG_DEVCOMM
935 inline void DebugInfo(TDes8 &aInfo);
940 #include <d32comm.inl>