Reviewed-by: Ruiyu Ni <ruiyu...@intel.com> > -----Original Message----- > From: Fan, Jeff > Sent: Thursday, June 25, 2015 3:59 PM > To: edk2-devel@lists.sourceforge.net > Cc: Ni, Ruiyu > Subject: [Patch] SourceLevelDebugPkg/DebugAgent: Add typecast to fix sign > extension > > OffsetHigh is 16bit value and its type is UINT32 and defined in structure. > If its high bit is 1, it will sign extension when do 16-bit left-shift > operation. Need to typecast if after left-shift operation on GCC. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jeff Fan <jeff....@intel.com> > CC: Ruiyu Ni <ruiyu...@intel.com> > --- > > SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAgen > tLib.c | 2 +- > .../Library/DebugAgent/SecPeiDebugAgent/SecPeiDebugAgentLib.c > | 2 +- > > SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebugAg > entLib.c | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git > a/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAg > entLib.c > b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAg > entLib.c > index f7fbb3c..35fb5e6 100644 > --- > a/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAg > entLib.c > +++ > b/SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgent/DxeDebugAg > entLib.c > @@ -512,7 +512,7 @@ InitializeDebugAgent ( > Ia32Idtr = (IA32_DESCRIPTOR *) Context; > Ia32IdtEntry = (IA32_IDT_ENTRY *)(Ia32Idtr->Base); > MailboxLocation = (UINT64 *) (UINTN) > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetLow + > - > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetHigh << 16)); > + (UINT32) > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetHigh << 16)); > Mailbox = (DEBUG_AGENT_MAILBOX *)(UINTN)(*MailboxLocation); > VerifyMailboxChecksum (Mailbox); > } > diff --git > a/SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDeb > ugAgentLib.c > b/SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDeb > ugAgentLib.c > index e77ff72..fcc7a4b 100644 > --- > a/SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDeb > ugAgentLib.c > +++ > b/SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgent/SecPeiDeb > ugAgentLib.c > @@ -579,7 +579,7 @@ InitializeDebugAgent ( > Ia32Idtr = (IA32_DESCRIPTOR *) Context; > Ia32IdtEntry = (IA32_IDT_ENTRY *)(Ia32Idtr->Base); > MailboxLocationPointer = (UINT64 *) (UINTN) > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetLow + > - > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetHigh << 16)); > + (UINT32) > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetHigh << 16)); > Mailbox = (DEBUG_AGENT_MAILBOX *) > (UINTN)(*MailboxLocationPointer); > // > // Mailbox should valid and setup before executing thunk code > diff --git > a/SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebug > AgentLib.c > b/SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebug > AgentLib.c > index 6ac5f88..3a759f9 100644 > --- > a/SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebug > AgentLib.c > +++ > b/SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgent/SmmDebug > AgentLib.c > @@ -328,7 +328,7 @@ InitializeDebugAgent ( > Ia32Idtr = (IA32_DESCRIPTOR *) Context; > Ia32IdtEntry = (IA32_IDT_ENTRY *)(Ia32Idtr->Base); > MailboxLocation = (UINT64 *) (UINTN) > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetLow + > - > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetHigh << 16)); > + (UINT32) > (Ia32IdtEntry[DEBUG_MAILBOX_VECTOR].Bits.OffsetHigh << 16)); > mMailboxPointer = (DEBUG_AGENT_MAILBOX > *)(UINTN)(*MailboxLocation); > VerifyMailboxChecksum (mMailboxPointer); > // > -- > 1.9.5.msysgit.0
------------------------------------------------------------------------------ Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical & virtual servers, alerts via email & sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel