Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(568)

Side by Side Diff: util/win/process_structs.h

Issue 1349313003: win: support x64 reading x86 (wow64) (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: mac Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « util/win/process_info_test.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Crashpad Authors. All rights reserved. 1 // Copyright 2015 The Crashpad Authors. 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 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 typename Traits::UnsignedIntegral MinimumStackCommit; 276 typename Traits::UnsignedIntegral MinimumStackCommit;
277 typename Traits::Pointer FlsCallback; 277 typename Traits::Pointer FlsCallback;
278 LIST_ENTRY<Traits> FlsListHead; 278 LIST_ENTRY<Traits> FlsListHead;
279 typename Traits::Pointer FlsBitmap; 279 typename Traits::Pointer FlsBitmap;
280 DWORD FlsBitmapBits[4]; 280 DWORD FlsBitmapBits[4];
281 DWORD FlsHighIndex; 281 DWORD FlsHighIndex;
282 }; 282 };
283 283
284 template <class Traits> 284 template <class Traits>
285 struct NT_TIB { 285 struct NT_TIB {
286 typename Traits::Pointer ExceptionList;
287 typename Traits::Pointer StackBase;
288 typename Traits::Pointer StackLimit;
289 typename Traits::Pointer SubSystemTib;
290 union { 286 union {
291 typename Traits::Pointer FiberData; 287 // See https://msdn.microsoft.com/en-us/library/dn424783.aspx.
292 BYTE Version[4]; 288 typename Traits::Pointer Wow64Teb;
289 struct {
290 typename Traits::Pointer ExceptionList;
291 typename Traits::Pointer StackBase;
292 typename Traits::Pointer StackLimit;
293 typename Traits::Pointer SubSystemTib;
294 union {
295 typename Traits::Pointer FiberData;
296 BYTE Version[4];
297 };
298 typename Traits::Pointer ArbitraryUserPointer;
299 typename Traits::Pointer Self;
300 };
293 }; 301 };
294 typename Traits::Pointer ArbitraryUserPointer;
295 typename Traits::Pointer Self;
296 }; 302 };
297 303
298 // See https://msdn.microsoft.com/en-us/library/gg750647.aspx. 304 // See https://msdn.microsoft.com/en-us/library/gg750647.aspx.
299 template <class Traits> 305 template <class Traits>
300 struct CLIENT_ID { 306 struct CLIENT_ID {
301 typename Traits::Pointer UniqueProcess; 307 typename Traits::Pointer UniqueProcess;
302 typename Traits::Pointer UniqueThread; 308 typename Traits::Pointer UniqueThread;
303 }; 309 };
304 310
305 // This is a partial definition of the TEB, as we do not currently use many 311 // This is a partial definition of the TEB, as we do not currently use many
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 LARGE_INTEGER alignment_for_x86[6]; 416 LARGE_INTEGER alignment_for_x86[6];
411 }; 417 };
412 IO_COUNTERS IoCounters; 418 IO_COUNTERS IoCounters;
413 SYSTEM_THREAD_INFORMATION<Traits> Threads[1]; 419 SYSTEM_THREAD_INFORMATION<Traits> Threads[1];
414 }; 420 };
415 421
416 // http://undocumented.ntinternals.net/source/usermode/structures/thread_basic_i nformation.html 422 // http://undocumented.ntinternals.net/source/usermode/structures/thread_basic_i nformation.html
417 template <class Traits> 423 template <class Traits>
418 struct THREAD_BASIC_INFORMATION { 424 struct THREAD_BASIC_INFORMATION {
419 union { 425 union {
420 NTSTATUS ExitStatus; 426 LONG ExitStatus;
421 typename Traits::Pad padding_for_x64_0; 427 typename Traits::Pad padding_for_x64_0;
422 }; 428 };
423 typename Traits::Pointer TebBaseAddress; 429 typename Traits::Pointer TebBaseAddress;
424 CLIENT_ID<Traits> ClientId; 430 CLIENT_ID<Traits> ClientId;
425 typename Traits::Pointer AffinityMask; 431 typename Traits::Pointer AffinityMask;
426 ULONG Priority; 432 ULONG Priority;
427 LONG BasePriority; 433 LONG BasePriority;
428 }; 434 };
429 435
436 template <class Traits>
437 struct EXCEPTION_POINTERS {
438 typename Traits::Pointer ExceptionRecord;
439 typename Traits::Pointer ContextRecord;
440 };
441
442 using EXCEPTION_POINTERS32 = EXCEPTION_POINTERS<internal::Traits32>;
443 using EXCEPTION_POINTERS64 = EXCEPTION_POINTERS<internal::Traits64>;
444
430 #pragma pack(pop) 445 #pragma pack(pop)
431 446
432 //! \} 447 //! \}
433 448
434 } // namespace process_types 449 } // namespace process_types
435 } // namespace crashpad 450 } // namespace crashpad
436 451
437 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_ 452 #endif // CRASHPAD_UTIL_WIN_PROCESS_STRUCTS_H_
OLDNEW
« no previous file with comments | « util/win/process_info_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698