X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=UefiCpuPkg%2FPiSmmCpuDxeSmm%2FPiSmmCpuDxeSmm.h;h=ad2109fde8277851ed509ea3de87570be9711c78;hb=695e62d1419cf3a8ab65a96c86c9cf58d4206d61;hp=df5980cd420f3520e795fc699327f055fa8a9126;hpb=ed3d5ecb342dd6cca299ac72b30d4855a8b804a4;p=mirror_edk2.git diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h index df5980cd42..ad2109fde8 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h @@ -323,6 +323,8 @@ typedef struct { volatile BOOLEAN *CandidateBsp; } SMM_DISPATCHER_MP_SYNC_DATA; +#define MSR_SPIN_LOCK_INIT_NUM 15 + typedef struct { SPIN_LOCK SpinLock; UINT32 MsrIndex; @@ -375,6 +377,13 @@ typedef struct { volatile BOOLEAN *Present; } SMM_CPU_SEMAPHORE_CPU; +/// +/// All MSRs semaphores' pointer and counter +/// +typedef struct { + SPIN_LOCK *Msr; + UINTN AvailableCounter; +} SMM_CPU_SEMAPHORE_MSR; /// /// All semaphores' information @@ -382,6 +391,7 @@ typedef struct { typedef struct { SMM_CPU_SEMAPHORE_GLOBAL SemaphoreGlobal; SMM_CPU_SEMAPHORE_CPU SemaphoreCpu; + SMM_CPU_SEMAPHORE_MSR SemaphoreMsr; } SMM_CPU_SEMAPHORES; extern IA32_DESCRIPTOR gcSmiGdtr;