Problems have been encountered because some of the source files have execute permission set. This can cause git to report them as changed when they are checked out onto a file system with inherited permissions. This has been seen using Cygwin, MinGW and PowerShell Git. This patch makes no change to source file content, and only aims to correct the file modes/permissions. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Evan Lloyd <evan.lloyd@arm.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19789 6f19259b-4bc3-4df7-8a09-765794883524
136 lines
3.3 KiB
Plaintext
136 lines
3.3 KiB
Plaintext
;
|
|
; Copyright (c) 2011, Hewlett-Packard Company. 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
|
|
; http://opensource.org/licenses/bsd-license.php
|
|
;
|
|
; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
;
|
|
|
|
LOCAL &maxmem &systbl &memsize
|
|
|
|
&memsize=0x20000000 ; default to 512MB
|
|
|
|
gosub FindSystemTable &memsize
|
|
ENTRY &systbl
|
|
|
|
if &systbl!=0
|
|
(
|
|
print "found system table at &systbl"
|
|
gosub FindDebugInfo &systbl
|
|
)
|
|
else
|
|
(
|
|
print "ERROR: system table not found, check memory size"
|
|
)
|
|
enddo
|
|
|
|
FindSystemTable:
|
|
LOCAL &TopOfRam &offset
|
|
ENTRY &TopOfRam
|
|
|
|
print "FindSystemTable"
|
|
print "top of mem is &TopOfRam$"
|
|
|
|
&offset=&TopOfRam
|
|
|
|
; align to highest 4MB boundary
|
|
&offset=&offset&0xFFC00000
|
|
|
|
; start at top and look on 4MB boundaries for system table ptr structure
|
|
while &offset>0
|
|
(
|
|
; low signature match
|
|
if Data.Long(a:&offset)==0x20494249
|
|
(
|
|
; high signature match
|
|
if Data.Long(a:&offset+4)==0x54535953
|
|
(
|
|
; less than 4GB?
|
|
if Data.Long(a:&offset+0x0c)==0
|
|
(
|
|
; less than top of ram?
|
|
if Data.Long(a:&offset+8)<&TopOfRam
|
|
(
|
|
return Data.Long(a:&offset+8)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
if &offset<0x400000
|
|
(
|
|
return 0
|
|
)
|
|
&offset=&offset-0x400000
|
|
)
|
|
|
|
return 0
|
|
|
|
|
|
FindDebugInfo:
|
|
LOCAL &SystemTable &CfgTableEntries &ConfigTable &i &offset &dbghdr &dbgentries &dbgptr &dbginfo &loadedimg
|
|
ENTRY &SystemTable
|
|
|
|
print "FindDebugInfo"
|
|
|
|
&dbgentries=0
|
|
&CfgTableEntries=Data.Long(a:&SystemTable+0x40)
|
|
&ConfigTable=Data.Long(a:&SystemTable+0x44)
|
|
|
|
print "config table is at &ConfigTable (&CfgTableEntries entries)"
|
|
|
|
; now search for debug info entry with guid 49152E77-1ADA-4764-B7A2-7AFEFED95E8B
|
|
; 0x49152E77 0x47641ADA 0xFE7AA2B7 0x8B5ED9FE
|
|
&i=0
|
|
while &i<&CfgTableEntries
|
|
(
|
|
&offset=&ConfigTable+(&i*0x14)
|
|
if Data.Long(a:&offset)==0x49152E77
|
|
(
|
|
if Data.Long(a:&offset+4)==0x47641ADA
|
|
(
|
|
if Data.Long(a:&offset+8)==0xFE7AA2B7
|
|
(
|
|
if Data.Long(a:&offset+0xc)==0x8B5ED9FE
|
|
(
|
|
&dbghdr=Data.Long(a:&offset+0x10)
|
|
&dbgentries=Data.Long(a:&dbghdr+4)
|
|
&dbgptr=Data.Long(a:&dbghdr+8)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
&i=&i+1
|
|
)
|
|
|
|
if &dbgentries==0
|
|
(
|
|
print "no debug entries found"
|
|
return
|
|
)
|
|
|
|
print "debug table at &dbgptr (&dbgentries entries)"
|
|
|
|
symbol.reset
|
|
|
|
&i=0
|
|
while &i<&dbgentries
|
|
(
|
|
&dbginfo=Data.Long(a:&dbgptr+(&i*4))
|
|
if &dbginfo!=0
|
|
(
|
|
if Data.Long(a:&dbginfo)==1 ; normal debug info type
|
|
(
|
|
&loadedimg=Data.Long(a:&dbginfo+4)
|
|
do EfiProcessPeImage Data.Long(a:&loadedimg+0x20)
|
|
)
|
|
)
|
|
&i=&i+1
|
|
)
|
|
return
|