| 1327 | } |
| 1328 | |
| 1329 | STATIC |
| 1330 | VOID |
| 1331 | WriteDebug64 ( |
| 1332 | VOID |
| 1333 | ) |
| 1334 | { |
| 1335 | UINT32 Len; |
| 1336 | EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr; |
| 1337 | EFI_IMAGE_DATA_DIRECTORY *DataDir; |
| 1338 | EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *Dir; |
| 1339 | EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10; |
| 1340 | |
| 1341 | Len = strlen(mInImageName) + 1; |
| 1342 | |
| 1343 | Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset); |
| 1344 | Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW; |
| 1345 | Dir->SizeOfData = sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) + Len; |
| 1346 | Dir->RVA = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY); |
| 1347 | Dir->FileOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY); |
| 1348 | |
| 1349 | Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1); |
| 1350 | Nb10->Signature = CODEVIEW_SIGNATURE_NB10; |
| 1351 | strcpy ((char *)(Nb10 + 1), mInImageName); |
| 1352 | |
| 1353 | |
| 1354 | NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset); |
| 1355 | DataDir = &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]; |
| 1356 | DataDir->VirtualAddress = mDebugOffset; |
| 1357 | DataDir->Size = sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY); |
| 1358 | } |
| 1359 | |
| 1360 | STATIC |
| 1361 | VOID |