OLD | NEW |
1 // Copyright 2012 Google Inc. All Rights Reserved. | 1 // Copyright 2012 Google Inc. All Rights Reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 struct PdbFixup { | 282 struct PdbFixup { |
283 enum Type { | 283 enum Type { |
284 TYPE_ABSOLUTE = 0x6, | 284 TYPE_ABSOLUTE = 0x6, |
285 TYPE_RELATIVE = 0x7, | 285 TYPE_RELATIVE = 0x7, |
286 TYPE_OFFSET_32BIT = 0xB, | 286 TYPE_OFFSET_32BIT = 0xB, |
287 TYPE_OFFSET_8BIT = 0xD, | 287 TYPE_OFFSET_8BIT = 0xD, |
288 TYPE_PC_RELATIVE = 0x14, | 288 TYPE_PC_RELATIVE = 0x14, |
289 }; | 289 }; |
290 | 290 |
291 enum Flags { | 291 enum Flags { |
| 292 // Flag value that we observe for the TYPE_OFFSET_32BIT fixups produced by |
| 293 // VS2017. |
| 294 FLAG_OFFSET_32BIT_VS2017 = 0x2000, |
292 FLAG_IS_DATA = 0x4000, | 295 FLAG_IS_DATA = 0x4000, |
293 FLAG_REFERS_TO_CODE = 0x8000, | 296 FLAG_REFERS_TO_CODE = 0x8000, |
294 FLAG_UNKNOWN = 0x3fff, | 297 FLAG_UNKNOWN = 0x3fff, |
295 }; | 298 }; |
296 | 299 |
297 // The fixup header. | 300 // The fixup header. |
298 union { | 301 union { |
299 uint32_t header; | 302 uint32_t header; |
300 struct { | 303 struct { |
301 Type type:16; | 304 Type type:16; |
(...skipping 26 matching lines...) Expand all Loading... |
328 // address 'rva_location'. | 331 // address 'rva_location'. |
329 size_t size() const; | 332 size_t size() const; |
330 }; | 333 }; |
331 // We coerce a stream of bytes to this structure, so we require it to be | 334 // We coerce a stream of bytes to this structure, so we require it to be |
332 // exactly 12 bytes in size. | 335 // exactly 12 bytes in size. |
333 COMPILE_ASSERT_IS_POD_OF_SIZE(PdbFixup, 12); | 336 COMPILE_ASSERT_IS_POD_OF_SIZE(PdbFixup, 12); |
334 | 337 |
335 } // namespace pdb | 338 } // namespace pdb |
336 | 339 |
337 #endif // SYZYGY_PDB_PDB_DATA_H_ | 340 #endif // SYZYGY_PDB_PDB_DATA_H_ |
OLD | NEW |