Rework the PL011UartGetControl() function removing a TODO by the way. Update of the header comment blocks of (PL011Uart|SerialPort)GetControl() functions. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <ronald.cron@arm.com> Reviewed-By: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16252 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			117 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
 | 
						|
  Serial I/O port control interface extension.
 | 
						|
 | 
						|
  This library provides an extension to the library providing common
 | 
						|
  serial I/O port functions that is defined in MdePkg. The aim is to
 | 
						|
  provide more control over the functionalities of a serial port. The
 | 
						|
  extension covers all the needs of the UEFI Serial I/O Protocol.
 | 
						|
  Though, its use is not restricted to the UEFI Serial I/O Protocol.
 | 
						|
  It could for example be used in the PEI phase of the boot sequence
 | 
						|
  as well.
 | 
						|
 | 
						|
  Copyright (c) 2012 - 2014, ARM Ltd. All rights reserved.
 | 
						|
 | 
						|
  This program and the accompanying materials
 | 
						|
  are licensed and made available under the terms and conditions of the BSD License
 | 
						|
  which accompanies this distribution.  The full text of the license may be found at
 | 
						|
  http://opensource.org/licenses/bsd-license.php
 | 
						|
 | 
						|
  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | 
						|
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __SERIAL_PORT_EXT_LIB_H__
 | 
						|
#define __SERIAL_PORT_EXT_LIB_H__
 | 
						|
 | 
						|
#include <Uefi/UefiBaseType.h>
 | 
						|
#include <Protocol/SerialIo.h>
 | 
						|
 | 
						|
/**
 | 
						|
 | 
						|
  Assert or deassert the control signals on a serial port.
 | 
						|
  The following control signals are set according their bit settings :
 | 
						|
  . Request to Send
 | 
						|
  . Data Terminal Ready
 | 
						|
 | 
						|
  @param[in]  Control  The following bits are taken into account :
 | 
						|
                       . EFI_SERIAL_REQUEST_TO_SEND : assert/deassert the
 | 
						|
                         "Request To Send" control signal if this bit is
 | 
						|
                         equal to one/zero.
 | 
						|
                       . EFI_SERIAL_DATA_TERMINAL_READY : assert/deassert
 | 
						|
                         the "Data Terminal Ready" control signal if this
 | 
						|
                         bit is equal to one/zero.
 | 
						|
                       . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : enable/disable
 | 
						|
                         the hardware loopback if this bit is equal to
 | 
						|
                         one/zero.
 | 
						|
                       . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : not supported.
 | 
						|
                       . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : enable/
 | 
						|
                         disable the hardware flow control based on CTS (Clear
 | 
						|
                         To Send) and RTS (Ready To Send) control signals.
 | 
						|
 | 
						|
  @retval  RETURN_SUCCESS      The new control bits were set on the serial device.
 | 
						|
  @retval  RETURN_UNSUPPORTED  The serial device does not support this operation.
 | 
						|
 | 
						|
**/
 | 
						|
RETURN_STATUS
 | 
						|
EFIAPI
 | 
						|
SerialPortSetControl (
 | 
						|
  IN UINT32  Control
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
 | 
						|
  Retrieve the status of the control bits on a serial device.
 | 
						|
 | 
						|
  @param[out]  Control  Status of the control bits on a serial device :
 | 
						|
 | 
						|
                        . EFI_SERIAL_DATA_CLEAR_TO_SEND, EFI_SERIAL_DATA_SET_READY,
 | 
						|
                          EFI_SERIAL_RING_INDICATE, EFI_SERIAL_CARRIER_DETECT,
 | 
						|
                          EFI_SERIAL_REQUEST_TO_SEND, EFI_SERIAL_DATA_TERMINAL_READY
 | 
						|
                          are all related to the DTE (Data Terminal Equipment) and
 | 
						|
                          DCE (Data Communication Equipment) modes of operation of
 | 
						|
                          the serial device.
 | 
						|
                        . EFI_SERIAL_INPUT_BUFFER_EMPTY : equal to one if the receive
 | 
						|
                          buffer is empty, 0 otherwise.
 | 
						|
                        . EFI_SERIAL_OUTPUT_BUFFER_EMPTY : equal to one if the transmit
 | 
						|
                          buffer is empty, 0 otherwise.
 | 
						|
                        . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : equal to one if the
 | 
						|
                          hardware loopback is enabled (the ouput feeds the receive
 | 
						|
                          buffer), 0 otherwise.
 | 
						|
                        . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : equal to one if a
 | 
						|
                          loopback is accomplished by software, 0 otherwise.
 | 
						|
                        . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : equal to one if the
 | 
						|
                          hardware flow control based on CTS (Clear To Send) and RTS
 | 
						|
                          (Ready To Send) control signals is enabled, 0 otherwise.
 | 
						|
 | 
						|
  @retval RETURN_SUCCESS       The control bits were read from the serial device.
 | 
						|
  @retval RETURN_DEVICE_ERROR  The serial device is not functioning correctly.
 | 
						|
 | 
						|
**/
 | 
						|
RETURN_STATUS
 | 
						|
EFIAPI
 | 
						|
SerialPortGetControl (
 | 
						|
  OUT UINT32  *Control
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Set the serial device attributes.
 | 
						|
 | 
						|
  @return    Always return EFI_UNSUPPORTED.
 | 
						|
 | 
						|
**/
 | 
						|
RETURN_STATUS
 | 
						|
EFIAPI
 | 
						|
SerialPortSetAttributes (
 | 
						|
  IN OUT UINT64              *BaudRate,
 | 
						|
  IN OUT UINT32              *ReceiveFifoDepth,
 | 
						|
  IN OUT UINT32              *Timeout,
 | 
						|
  IN OUT EFI_PARITY_TYPE     *Parity,
 | 
						|
  IN OUT UINT8               *DataBits,
 | 
						|
  IN OUT EFI_STOP_BITS_TYPE  *StopBits
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 | 
						|
 |