mirror of
				https://github.com/acidanthera/audk.git
				synced 2025-10-31 11:13:53 +01:00 
			
		
		
		
	Fix various typos in documentation, comments and debug strings. Cc: Hao A Wu <hao.a.wu@intel.com> Signed-off-by: Antoine Coeur <coeur@gmx.fr> Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com> Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com> Message-Id: <20200207010831.9046-72-philmd@redhat.com>
		
			
				
	
	
		
			217 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			217 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Header file for Multi-Processor support.
 | |
| 
 | |
|   Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _DEBUG_MP_H_
 | |
| #define _DEBUG_MP_H_
 | |
| 
 | |
| #define DEBUG_CPU_MAX_COUNT             256
 | |
| 
 | |
| typedef struct {
 | |
|   UINT32    CpuCount;                            ///< Processor count
 | |
|   UINT16    ApicID[DEBUG_CPU_MAX_COUNT];         ///< Record the local apic id for each processor
 | |
| } DEBUG_CPU_DATA;
 | |
| 
 | |
| typedef struct {
 | |
|   SPIN_LOCK                 MpContextSpinLock;   ///< Lock for writing MP context
 | |
|   SPIN_LOCK                 DebugPortSpinLock;   ///< Lock for access debug port
 | |
|   SPIN_LOCK                 MailboxSpinLock;     ///< Lock for accessing mail box
 | |
|   UINT8                     CpuBreakMask[DEBUG_CPU_MAX_COUNT/8];        ///< Bitmask of all breaking CPUs
 | |
|   UINT8                     CpuStopStatusMask[DEBUG_CPU_MAX_COUNT/8];   ///< Bitmask of CPU stop status
 | |
|   UINT32                    ViewPointIndex;      ///< Current view point to be debugged
 | |
|   UINT32                    BspIndex;            ///< Processor index value of BSP
 | |
|   UINT32                    BreakAtCpuIndex;     ///< Processor index value of the current breaking CPU
 | |
|   UINT32                    DebugTimerInitCount; ///< Record BSP's init timer count
 | |
|   BOOLEAN                   IpiSentByAp;         ///< TRUE: IPI is sent by AP. FALSE: IPI is sent by BSP
 | |
|   BOOLEAN                   RunCommandSet;       ///< TRUE: RUN command is executing. FALSE: RUN command has been executed.
 | |
| } DEBUG_MP_CONTEXT;
 | |
| 
 | |
| extern DEBUG_MP_CONTEXT volatile   mDebugMpContext;
 | |
| extern DEBUG_CPU_DATA   volatile   mDebugCpuData;
 | |
| 
 | |
| /**
 | |
|   Break the other processor by send IPI.
 | |
| 
 | |
|   @param[in] CurrentProcessorIndex  Current processor index value.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| HaltOtherProcessors (
 | |
|   IN UINT32             CurrentProcessorIndex
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Get the current processor's index.
 | |
| 
 | |
|   @return Processor index value.
 | |
| 
 | |
| **/
 | |
| UINT32
 | |
| GetProcessorIndex (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Acquire a spin lock when Multi-processor supported.
 | |
| 
 | |
|   It will block in the function if cannot get the access control.
 | |
|   If Multi-processor is not supported, return directly.
 | |
| 
 | |
|   @param[in, out] MpSpinLock      A pointer to the spin lock.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| AcquireMpSpinLock (
 | |
|   IN OUT SPIN_LOCK           *MpSpinLock
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Release a spin lock when Multi-processor supported.
 | |
| 
 | |
|   @param[in, out] MpSpinLock      A pointer to the spin lock.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| ReleaseMpSpinLock (
 | |
|   IN OUT SPIN_LOCK           *MpSpinLock
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Check if the specified processor is BSP or not.
 | |
| 
 | |
|   @param[in] ProcessorIndex Processor index value.
 | |
| 
 | |
|   @retval TRUE    It is BSP.
 | |
|   @retval FALSE   It isn't BSP.
 | |
| 
 | |
| **/
 | |
| BOOLEAN
 | |
| DebugAgentIsBsp (
 | |
|   IN UINT32             ProcessorIndex
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Set processor stop flag bitmask in MP context.
 | |
| 
 | |
|   @param[in] ProcessorIndex Processor index value.
 | |
|   @param[in] StopFlag       TRUE means set stop flag.
 | |
|                             FALSE means clean break flag.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| SetCpuStopFlagByIndex (
 | |
|   IN UINT32             ProcessorIndex,
 | |
|   IN BOOLEAN            StopFlag
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Set processor break flag bitmask in MP context.
 | |
| 
 | |
|   @param[in] ProcessorIndex Processor index value.
 | |
|   @param[in] BreakFlag      TRUE means set break flag.
 | |
|                             FALSE means clean break flag.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| SetCpuBreakFlagByIndex (
 | |
|   IN UINT32             ProcessorIndex,
 | |
|   IN BOOLEAN            BreakFlag
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Check if processor is stopped already.
 | |
| 
 | |
|   @param[in] ProcessorIndex   Processor index value.
 | |
| 
 | |
|   @retval TRUE        Processor is stopped already.
 | |
|   @retval FALSE       Processor isn't stopped.
 | |
| 
 | |
| **/
 | |
| BOOLEAN
 | |
| IsCpuStopped (
 | |
|   IN UINT32              ProcessorIndex
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Set the run command flag.
 | |
| 
 | |
|   @param[in] RunningFlag   TRUE means run command flag is set.
 | |
|                            FALSE means run command flag is cleared.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| SetCpuRunningFlag (
 | |
|   IN BOOLEAN            RunningFlag
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Set the current view point to be debugged.
 | |
| 
 | |
|   @param[in] ProcessorIndex   Processor index value.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| SetDebugViewPoint (
 | |
|   IN UINT32             ProcessorIndex
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Set the IPI send by BPS/AP flag.
 | |
| 
 | |
|   @param[in] IpiSentByApFlag   TRUE means this IPI is sent by AP.
 | |
|                                FALSE means this IPI is sent by BSP.
 | |
| 
 | |
| **/
 | |
| VOID
 | |
| SetIpiSentByApFlag (
 | |
|   IN BOOLEAN            IpiSentByApFlag
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Check the next pending breaking CPU.
 | |
| 
 | |
|   @retval others      There is at least one processor broken, the minimum
 | |
|                       index number of Processor returned.
 | |
|   @retval -1          No any processor broken.
 | |
| 
 | |
| **/
 | |
| UINT32
 | |
| FindNextPendingBreakCpu (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Check if all processors are in running status.
 | |
| 
 | |
|   @retval TRUE        All processors run.
 | |
|   @retval FALSE       At least one processor does not run.
 | |
| 
 | |
| **/
 | |
| BOOLEAN
 | |
| IsAllCpuRunning (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Check if the current processor is the first breaking processor.
 | |
| 
 | |
|   If yes, halt other processors.
 | |
| 
 | |
|   @param[in] ProcessorIndex   Processor index value.
 | |
| 
 | |
|   @return TRUE       This processor is the first breaking processor.
 | |
|   @return FALSE      This processor is not the first breaking processor.
 | |
| 
 | |
| **/
 | |
| BOOLEAN
 | |
| IsFirstBreakProcessor (
 | |
|   IN UINT32              ProcessorIndex
 | |
|   );
 | |
| 
 | |
| #endif
 | |
| 
 |