| 1118 | } |
| 1119 | |
| 1120 | STATIC |
| 1121 | VOID |
| 1122 | WriteDebug32 ( |
| 1123 | VOID |
| 1124 | ) |
| 1125 | { |
| 1126 | UINT32 Len; |
| 1127 | EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr; |
| 1128 | EFI_IMAGE_DATA_DIRECTORY *DataDir; |
| 1129 | EFI_IMAGE_DEBUG_DIRECTORY_ENTRY *Dir; |
| 1130 | EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10; |
| 1131 | |
| 1132 | Len = strlen(mInImageName) + 1; |
| 1133 | |
| 1134 | Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset); |
| 1135 | Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW; |
| 1136 | Dir->SizeOfData = sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) + Len; |
| 1137 | Dir->RVA = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY); |
| 1138 | Dir->FileOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY); |
| 1139 | |
| 1140 | Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1); |
| 1141 | Nb10->Signature = CODEVIEW_SIGNATURE_NB10; |
| 1142 | strcpy ((char *)(Nb10 + 1), mInImageName); |
| 1143 | |
| 1144 | |
| 1145 | NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset); |
| 1146 | DataDir = &NtHdr->Pe32.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG]; |
| 1147 | DataDir->VirtualAddress = mDebugOffset; |
| 1148 | DataDir->Size = sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY); |
| 1149 | } |
| 1150 | |
| 1151 | STATIC |
| 1152 | VOID |