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

Unified Diff: util/mac/process_types/loader.proctype

Issue 501203002: Add ProcessTypes, its test, and many proctype definition files (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Address review feedback Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « util/mac/process_types/internal.h ('k') | util/mac/process_types/nlist.proctype » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: util/mac/process_types/loader.proctype
diff --git a/util/mac/process_types/loader.proctype b/util/mac/process_types/loader.proctype
new file mode 100644
index 0000000000000000000000000000000000000000..db82e6b675d3063972b4aebb406bb7a889c34109
--- /dev/null
+++ b/util/mac/process_types/loader.proctype
@@ -0,0 +1,140 @@
+// Copyright 2014 The Crashpad Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// This file corresponds to the system’s <mach-o/loader.h>.
+//
+// This file is intended to be included multiple times in the same translation
+// unit, so #include guards are intentionally absent.
+//
+// This file is included by util/mac/process_types.h and
+// util/mac/process_types.cc to produce process type struct definitions and
+// accessors.
+
+PROCESS_TYPE_STRUCT_BEGIN(mach_header) // 64-bit: mach_header_64
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, magic)
+
+ // cputype is really cpu_type_t, a typedef for integer_t, itself a typedef for
+ // int. It is currently reasonable to assume that int is int32_t.
+ PROCESS_TYPE_STRUCT_MEMBER(int32_t, cputype)
+
+ // cpusubtype is really cpu_subtype_t, a typedef for integer_t, itself a
+ // typedef for int. It is currently reasonable to assume that int is int32_t.
+ PROCESS_TYPE_STRUCT_MEMBER(int32_t, cpusubtype)
+
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, filetype)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, ncmds)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, sizeofcmds)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, flags)
+ PROCESS_TYPE_STRUCT_MEMBER(Reserved64Only, reserved)
+PROCESS_TYPE_STRUCT_END(mach_header)
+
+PROCESS_TYPE_STRUCT_BEGIN(load_command)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmd)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmdsize)
+PROCESS_TYPE_STRUCT_END(load_command)
+
+PROCESS_TYPE_STRUCT_BEGIN(segment_command) // 64-bit: segment_command_64
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmd)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmdsize)
+
+ // This string is not necessarily NUL-terminated.
+ PROCESS_TYPE_STRUCT_MEMBER(char, segname, [16])
+
+ PROCESS_TYPE_STRUCT_MEMBER(ULong, vmaddr)
+ PROCESS_TYPE_STRUCT_MEMBER(ULong, vmsize)
+ PROCESS_TYPE_STRUCT_MEMBER(ULong, fileoff)
+ PROCESS_TYPE_STRUCT_MEMBER(ULong, filesize)
+ PROCESS_TYPE_STRUCT_MEMBER(vm_prot_t, maxprot)
+ PROCESS_TYPE_STRUCT_MEMBER(vm_prot_t, initprot)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nsects)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, flags)
+PROCESS_TYPE_STRUCT_END(segment_command)
+
+PROCESS_TYPE_STRUCT_BEGIN(dylib_command)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmd)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmdsize)
+
+ // The following come from the dylib struct member of dylib_command.
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, dylib_name) // lc_str
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, dylib_timestamp)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, dylib_current_version)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, dylib_compatibility_version)
+PROCESS_TYPE_STRUCT_END(dylib_command)
+
+PROCESS_TYPE_STRUCT_BEGIN(dylinker_command)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmd)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmdsize)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, name) // lc_str
+PROCESS_TYPE_STRUCT_END(dylinker_command)
+
+PROCESS_TYPE_STRUCT_BEGIN(symtab_command)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmd)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmdsize)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, symoff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nsyms)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, stroff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, strsize)
+PROCESS_TYPE_STRUCT_END(symtab_command)
+
+PROCESS_TYPE_STRUCT_BEGIN(dysymtab_command)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmd)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmdsize)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, ilocalsym)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nlocalsym)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, iextdefsym)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nextdefsym)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, iundefsym)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nundefsym)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, tocoff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, ntoc)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, modtaboff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nmodtab)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, extrefsymoff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nextrefsyms)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, indirectsymoff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nindirectsyms)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, extreloff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nextrel)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, locreloff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nlocrel)
+PROCESS_TYPE_STRUCT_END(dysymtab_command)
+
+PROCESS_TYPE_STRUCT_BEGIN(uuid_command)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmd)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmdsize)
+ PROCESS_TYPE_STRUCT_MEMBER(uint8_t, uuid, [16])
+PROCESS_TYPE_STRUCT_END(uuid_command)
+
+PROCESS_TYPE_STRUCT_BEGIN(source_version_command)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmd)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, cmdsize)
+ PROCESS_TYPE_STRUCT_MEMBER(uint64_t, version)
+PROCESS_TYPE_STRUCT_END(source_version_command)
+
+PROCESS_TYPE_STRUCT_BEGIN(section) // 64-bit: section_64
+ // These strings are not necessarily NUL-terminated.
+ PROCESS_TYPE_STRUCT_MEMBER(char, sectname, [16])
+ PROCESS_TYPE_STRUCT_MEMBER(char, segname, [16])
+
+ PROCESS_TYPE_STRUCT_MEMBER(ULong, addr)
+ PROCESS_TYPE_STRUCT_MEMBER(ULong, size)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, offset)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, align)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, reloff)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, nreloc)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, flags)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, reserved1)
+ PROCESS_TYPE_STRUCT_MEMBER(uint32_t, reserved2)
+ PROCESS_TYPE_STRUCT_MEMBER(Reserved64Only, reserved3)
+PROCESS_TYPE_STRUCT_END(section)
« no previous file with comments | « util/mac/process_types/internal.h ('k') | util/mac/process_types/nlist.proctype » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698