Use RLE (Run Length Encoding) to improve debugging performance.

DEBUG_AGENT_REVISION is DEBUG_AGENT_REVISION_03 to disable this feature and will be changed to DEBUG_AGENT_REVISION_04 when new version of HOST is released.
Reduce the stack usage by re-using the same buffer to send/receive packet.
Zero out the buffer before fxsave so that the reserved field in the buffer remains 0 for better RLE compression ratio.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16628 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Ruiyu Ni
2015-01-20 08:46:31 +00:00
committed by niruiyu
parent 6a39a6a1a8
commit d9044ec555
5 changed files with 282 additions and 111 deletions

View File

@ -1,7 +1,7 @@
/** @file
Command header of for Debug Agent library instance.
Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
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
@ -205,8 +205,10 @@ ArchReadRegisterBuffer (
/**
Send packet with response data to HOST.
@param[in] Data Pointer to response data buffer.
@param[in] DataSize Size of response data in byte.
@param[in] Data Pointer to response data buffer.
@param[in] DataSize Size of response data in byte.
@param[in, out] DebugHeader Pointer to a buffer for creating response packet and receiving ACK packet,
to minimize the stack usage.
@retval RETURN_SUCCESS Response data was sent successfully.
@retval RETURN_DEVICE_ERROR Cannot receive DEBUG_COMMAND_OK from HOST.
@ -214,8 +216,9 @@ ArchReadRegisterBuffer (
**/
RETURN_STATUS
SendDataResponsePacket (
IN UINT8 *Data,
IN UINT16 DataSize
IN UINT8 *Data,
IN UINT16 DataSize,
IN OUT DEBUG_PACKET_HEADER *DebugHeader
);
/**