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

Side by Side Diff: snapshot/mac/process_types.cc

Issue 666483002: Create snapshot/mac and move some files from snapshot and util to there (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad/+/master
Patch Set: Move process_reader, process_types, and mach_o_image*_reader from util/mac to snapshot/mac Created 6 years, 2 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 | « snapshot/mac/process_types.h ('k') | snapshot/mac/process_types/all.proctype » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 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,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and 12 // See the License for the specific language governing permissions and
13 // limitations under the License. 13 // limitations under the License.
14 14
15 #include "util/mac/process_types.h" 15 #include "snapshot/mac/process_types.h"
16 16
17 #include <string.h> 17 #include <string.h>
18 #include <uuid/uuid.h> 18 #include <uuid/uuid.h>
19 19
20 #include "base/memory/scoped_ptr.h" 20 #include "base/memory/scoped_ptr.h"
21 #include "util/mac/process_types/internal.h" 21 #include "snapshot/mac/process_types/internal.h"
22 #include "util/mach/task_memory.h" 22 #include "util/mach/task_memory.h"
23 23
24 namespace crashpad { 24 namespace crashpad {
25 namespace { 25 namespace {
26 26
27 // Assign() is used by each flavor's ReadInto implementation to copy data from a 27 // Assign() is used by each flavor's ReadInto implementation to copy data from a
28 // specific struct to a generic struct. For fundamental types, the assignment 28 // specific struct to a generic struct. For fundamental types, the assignment
29 // operator suffices. For other types such as arrays, an explicit Assign 29 // operator suffices. For other types such as arrays, an explicit Assign
30 // specialization is needed, typically performing a copy. 30 // specialization is needed, typically performing a copy.
31 31
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 128
129 #define PROCESS_TYPE_STRUCT_MEMBER(member_type, member_name, ...) \ 129 #define PROCESS_TYPE_STRUCT_MEMBER(member_type, member_name, ...) \
130 Assign(&generic->member_name, member_name); 130 Assign(&generic->member_name, member_name);
131 131
132 #define PROCESS_TYPE_STRUCT_END(struct_name) \ 132 #define PROCESS_TYPE_STRUCT_END(struct_name) \
133 } \ 133 } \
134 } /* namespace internal */ \ 134 } /* namespace internal */ \
135 } /* namespace process_types */ \ 135 } /* namespace process_types */ \
136 } /* namespace crashpad */ 136 } /* namespace crashpad */
137 137
138 #include "util/mac/process_types/all.proctype" 138 #include "snapshot/mac/process_types/all.proctype"
139 139
140 #undef PROCESS_TYPE_STRUCT_BEGIN 140 #undef PROCESS_TYPE_STRUCT_BEGIN
141 #undef PROCESS_TYPE_STRUCT_MEMBER 141 #undef PROCESS_TYPE_STRUCT_MEMBER
142 #undef PROCESS_TYPE_STRUCT_END 142 #undef PROCESS_TYPE_STRUCT_END
143 #undef PROCESS_TYPE_STRUCT_IMPLEMENT 143 #undef PROCESS_TYPE_STRUCT_IMPLEMENT
144 144
145 // Implement the specific crashpad::process_types::internal::struct_name<> 145 // Implement the specific crashpad::process_types::internal::struct_name<>
146 // ReadInto(). The default implementation simply reads the struct from the 146 // ReadInto(). The default implementation simply reads the struct from the
147 // remote process. This is separated from other method implementations because 147 // remote process. This is separated from other method implementations because
148 // some types may wish to provide custom readers. This can be done by guarding 148 // some types may wish to provide custom readers. This can be done by guarding
149 // such types’ proctype definitions against this macro and providing custom 149 // such types’ proctype definitions against this macro and providing custom
150 // implementations in util/mac/process_types/custom.cc. 150 // implementations in snapshot/mac/process_types/custom.cc.
151 #define PROCESS_TYPE_STRUCT_IMPLEMENT_INTERNAL_READ_INTO 1 151 #define PROCESS_TYPE_STRUCT_IMPLEMENT_INTERNAL_READ_INTO 1
152 152
153 #define PROCESS_TYPE_STRUCT_BEGIN(struct_name) \ 153 #define PROCESS_TYPE_STRUCT_BEGIN(struct_name) \
154 namespace crashpad { \ 154 namespace crashpad { \
155 namespace process_types { \ 155 namespace process_types { \
156 namespace internal { \ 156 namespace internal { \
157 \ 157 \
158 template <typename Traits> \ 158 template <typename Traits> \
159 bool struct_name<Traits>::ReadInto(ProcessReader* process_reader, \ 159 bool struct_name<Traits>::ReadInto(ProcessReader* process_reader, \
160 mach_vm_address_t address, \ 160 mach_vm_address_t address, \
161 struct_name<Traits>* specific) { \ 161 struct_name<Traits>* specific) { \
162 return process_reader->Memory()->Read( \ 162 return process_reader->Memory()->Read( \
163 address, sizeof(*specific), specific); \ 163 address, sizeof(*specific), specific); \
164 } \ 164 } \
165 } /* namespace internal */ \ 165 } /* namespace internal */ \
166 } /* namespace process_types */ \ 166 } /* namespace process_types */ \
167 } /* namespace crashpad */ 167 } /* namespace crashpad */
168 168
169 #define PROCESS_TYPE_STRUCT_MEMBER(member_type, member_name, ...) 169 #define PROCESS_TYPE_STRUCT_MEMBER(member_type, member_name, ...)
170 170
171 #define PROCESS_TYPE_STRUCT_END(struct_name) 171 #define PROCESS_TYPE_STRUCT_END(struct_name)
172 172
173 #include "util/mac/process_types/all.proctype" 173 #include "snapshot/mac/process_types/all.proctype"
174 174
175 #undef PROCESS_TYPE_STRUCT_BEGIN 175 #undef PROCESS_TYPE_STRUCT_BEGIN
176 #undef PROCESS_TYPE_STRUCT_MEMBER 176 #undef PROCESS_TYPE_STRUCT_MEMBER
177 #undef PROCESS_TYPE_STRUCT_END 177 #undef PROCESS_TYPE_STRUCT_END
178 #undef PROCESS_TYPE_STRUCT_IMPLEMENT_INTERNAL_READ_INTO 178 #undef PROCESS_TYPE_STRUCT_IMPLEMENT_INTERNAL_READ_INTO
179 179
180 // Implement the array operations. These are separated from other method 180 // Implement the array operations. These are separated from other method
181 // implementations because some types are variable-length and are never stored 181 // implementations because some types are variable-length and are never stored
182 // as direct-access arrays. It would be incorrect to provide reader 182 // as direct-access arrays. It would be incorrect to provide reader
183 // implementations for such types. Types that wish to suppress array operations 183 // implementations for such types. Types that wish to suppress array operations
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 } \ 229 } \
230 return true; \ 230 return true; \
231 } \ 231 } \
232 } /* namespace process_types */ \ 232 } /* namespace process_types */ \
233 } /* namespace crashpad */ 233 } /* namespace crashpad */
234 234
235 #define PROCESS_TYPE_STRUCT_MEMBER(member_type, member_name, ...) 235 #define PROCESS_TYPE_STRUCT_MEMBER(member_type, member_name, ...)
236 236
237 #define PROCESS_TYPE_STRUCT_END(struct_name) 237 #define PROCESS_TYPE_STRUCT_END(struct_name)
238 238
239 #include "util/mac/process_types/all.proctype" 239 #include "snapshot/mac/process_types/all.proctype"
240 240
241 #undef PROCESS_TYPE_STRUCT_BEGIN 241 #undef PROCESS_TYPE_STRUCT_BEGIN
242 #undef PROCESS_TYPE_STRUCT_MEMBER 242 #undef PROCESS_TYPE_STRUCT_MEMBER
243 #undef PROCESS_TYPE_STRUCT_END 243 #undef PROCESS_TYPE_STRUCT_END
244 #undef PROCESS_TYPE_STRUCT_IMPLEMENT_ARRAY 244 #undef PROCESS_TYPE_STRUCT_IMPLEMENT_ARRAY
OLDNEW
« no previous file with comments | « snapshot/mac/process_types.h ('k') | snapshot/mac/process_types/all.proctype » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698