summaryrefslogtreecommitdiff
path: root/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugMp.h
diff options
context:
space:
mode:
Diffstat (limited to 'SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugMp.h')
-rw-r--r--SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugMp.h430
1 files changed, 215 insertions, 215 deletions
diff --git a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugMp.h b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugMp.h
index a0bc24ebfd..cc75377265 100644
--- a/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugMp.h
+++ b/SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugMp.h
@@ -1,215 +1,215 @@
-/** @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
+/** @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