OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. |
3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
5 */ | 5 */ |
6 | 6 |
7 /* | 7 /* |
8 * NaCl Service Runtime. I/O Descriptor / Handle abstraction. Memory | 8 * NaCl Service Runtime. I/O Descriptor / Handle abstraction. Memory |
9 * mapping using descriptors. | 9 * mapping using descriptors. |
10 */ | 10 */ |
11 | 11 |
12 #include <stdlib.h> | 12 #include <stdlib.h> |
13 #include <string.h> | 13 #include <string.h> |
14 #include <sys/types.h> | 14 #include <sys/types.h> |
15 #include <sys/stat.h> | 15 #include <sys/stat.h> |
16 | 16 |
17 #include "native_client/src/include/portability.h" | 17 #include "native_client/src/include/portability.h" |
18 #include "native_client/src/include/nacl_platform.h" | 18 #include "native_client/src/include/nacl_platform.h" |
19 | 19 |
20 #include "native_client/src/public/desc_metadata_types.h" | 20 #include "native_client/src/public/desc_metadata_types.h" |
21 | 21 |
22 #include "native_client/src/shared/platform/nacl_host_desc.h" | 22 #include "native_client/src/shared/platform/nacl_host_desc.h" |
23 #include "native_client/src/shared/platform/nacl_log.h" | 23 #include "native_client/src/shared/platform/nacl_log.h" |
24 #include "native_client/src/shared/platform/nacl_sync_checked.h" | 24 #include "native_client/src/shared/platform/nacl_sync_checked.h" |
25 | 25 |
26 #if NACL_LINUX | |
27 #include "native_client/src/trusted/desc/linux/nacl_desc_sysv_shm.h" | |
28 #endif /* NACL_LINUX */ | |
29 #include "native_client/src/trusted/desc/nacl_desc_base.h" | 26 #include "native_client/src/trusted/desc/nacl_desc_base.h" |
30 #include "native_client/src/trusted/desc/nacl_desc_cond.h" | 27 #include "native_client/src/trusted/desc/nacl_desc_cond.h" |
31 #include "native_client/src/trusted/desc/nacl_desc_conn_cap.h" | 28 #include "native_client/src/trusted/desc/nacl_desc_conn_cap.h" |
32 #include "native_client/src/trusted/desc/nacl_desc_dir.h" | 29 #include "native_client/src/trusted/desc/nacl_desc_dir.h" |
33 #include "native_client/src/trusted/desc/nacl_desc_imc.h" | 30 #include "native_client/src/trusted/desc/nacl_desc_imc.h" |
34 #include "native_client/src/trusted/desc/nacl_desc_imc_bound_desc.h" | 31 #include "native_client/src/trusted/desc/nacl_desc_imc_bound_desc.h" |
35 #include "native_client/src/trusted/desc/nacl_desc_imc_shm.h" | 32 #include "native_client/src/trusted/desc/nacl_desc_imc_shm.h" |
36 #include "native_client/src/trusted/desc/nacl_desc_invalid.h" | 33 #include "native_client/src/trusted/desc/nacl_desc_invalid.h" |
37 #include "native_client/src/trusted/desc/nacl_desc_io.h" | 34 #include "native_client/src/trusted/desc/nacl_desc_io.h" |
38 #include "native_client/src/trusted/desc/nacl_desc_mutex.h" | 35 #include "native_client/src/trusted/desc/nacl_desc_mutex.h" |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 #if NACL_WINDOWS | 197 #if NACL_WINDOWS |
201 NaClDescConnCapInternalize, | 198 NaClDescConnCapInternalize, |
202 NaClDescInternalizeNotImplemented, | 199 NaClDescInternalizeNotImplemented, |
203 #else | 200 #else |
204 NaClDescInternalizeNotImplemented, | 201 NaClDescInternalizeNotImplemented, |
205 NaClDescConnCapFdInternalize, | 202 NaClDescConnCapFdInternalize, |
206 #endif | 203 #endif |
207 NaClDescInternalizeNotImplemented, /* bound sockets cannot be transferred */ | 204 NaClDescInternalizeNotImplemented, /* bound sockets cannot be transferred */ |
208 NaClDescInternalizeNotImplemented, /* connected abstract base class */ | 205 NaClDescInternalizeNotImplemented, /* connected abstract base class */ |
209 NaClDescImcShmInternalize, | 206 NaClDescImcShmInternalize, |
210 #if NACL_LINUX && !NACL_ANDROID | |
211 NaClDescSysvShmInternalize, | |
212 #else | |
213 NULL, | |
214 #endif /* NACL_LINUX */ | |
215 NaClDescInternalizeNotImplemented, /* mutex */ | 207 NaClDescInternalizeNotImplemented, /* mutex */ |
216 NaClDescInternalizeNotImplemented, /* condvar */ | 208 NaClDescInternalizeNotImplemented, /* condvar */ |
217 NaClDescInternalizeNotImplemented, /* semaphore */ | 209 NaClDescInternalizeNotImplemented, /* semaphore */ |
218 NaClDescSyncSocketInternalize, | 210 NaClDescSyncSocketInternalize, |
219 NaClDescXferableDataDescInternalize, | 211 NaClDescXferableDataDescInternalize, |
220 NaClDescInternalizeNotImplemented, /* imc socket */ | 212 NaClDescInternalizeNotImplemented, /* imc socket */ |
221 NaClDescQuotaInternalize, /* quota wrapper */ | 213 NaClDescQuotaInternalize, /* quota wrapper */ |
222 NaClDescRngInternalize, /* device: rng */ | 214 NaClDescRngInternalize, /* device: rng */ |
223 NaClDescInternalizeNotImplemented, /* device: postmessage */ | 215 NaClDescInternalizeNotImplemented, /* device: postmessage */ |
224 NaClDescInternalizeNotImplemented, /* custom */ | 216 NaClDescInternalizeNotImplemented, /* custom */ |
225 NaClDescNullInternalize, | 217 NaClDescNullInternalize, |
226 }; | 218 }; |
227 | 219 |
228 char const *NaClDescTypeString(enum NaClDescTypeTag type_tag) { | 220 char const *NaClDescTypeString(enum NaClDescTypeTag type_tag) { |
229 /* default functions for the vtable - return NOT_IMPLEMENTED */ | 221 /* default functions for the vtable - return NOT_IMPLEMENTED */ |
230 switch (type_tag) { | 222 switch (type_tag) { |
231 #define MAP(E) case E: do { return #E; } while (0) | 223 #define MAP(E) case E: do { return #E; } while (0) |
232 MAP(NACL_DESC_INVALID); | 224 MAP(NACL_DESC_INVALID); |
233 MAP(NACL_DESC_DIR); | 225 MAP(NACL_DESC_DIR); |
234 MAP(NACL_DESC_HOST_IO); | 226 MAP(NACL_DESC_HOST_IO); |
235 MAP(NACL_DESC_CONN_CAP); | 227 MAP(NACL_DESC_CONN_CAP); |
236 MAP(NACL_DESC_CONN_CAP_FD); | 228 MAP(NACL_DESC_CONN_CAP_FD); |
237 MAP(NACL_DESC_BOUND_SOCKET); | 229 MAP(NACL_DESC_BOUND_SOCKET); |
238 MAP(NACL_DESC_CONNECTED_SOCKET); | 230 MAP(NACL_DESC_CONNECTED_SOCKET); |
239 MAP(NACL_DESC_SHM); | 231 MAP(NACL_DESC_SHM); |
240 MAP(NACL_DESC_SYSV_SHM); | |
241 MAP(NACL_DESC_MUTEX); | 232 MAP(NACL_DESC_MUTEX); |
242 MAP(NACL_DESC_CONDVAR); | 233 MAP(NACL_DESC_CONDVAR); |
243 MAP(NACL_DESC_SEMAPHORE); | 234 MAP(NACL_DESC_SEMAPHORE); |
244 MAP(NACL_DESC_SYNC_SOCKET); | 235 MAP(NACL_DESC_SYNC_SOCKET); |
245 MAP(NACL_DESC_TRANSFERABLE_DATA_SOCKET); | 236 MAP(NACL_DESC_TRANSFERABLE_DATA_SOCKET); |
246 MAP(NACL_DESC_IMC_SOCKET); | 237 MAP(NACL_DESC_IMC_SOCKET); |
247 MAP(NACL_DESC_QUOTA); | 238 MAP(NACL_DESC_QUOTA); |
248 MAP(NACL_DESC_DEVICE_RNG); | 239 MAP(NACL_DESC_DEVICE_RNG); |
249 MAP(NACL_DESC_DEVICE_POSTMESSAGE); | 240 MAP(NACL_DESC_DEVICE_POSTMESSAGE); |
250 MAP(NACL_DESC_CUSTOM); | 241 MAP(NACL_DESC_CUSTOM); |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
740 NaClDescPostNotImplemented, | 731 NaClDescPostNotImplemented, |
741 NaClDescSemWaitNotImplemented, | 732 NaClDescSemWaitNotImplemented, |
742 NaClDescGetValueNotImplemented, | 733 NaClDescGetValueNotImplemented, |
743 NaClDescSetMetadata, | 734 NaClDescSetMetadata, |
744 NaClDescGetMetadata, | 735 NaClDescGetMetadata, |
745 NaClDescSetFlags, | 736 NaClDescSetFlags, |
746 NaClDescGetFlags, | 737 NaClDescGetFlags, |
747 NaClDescIsattyNotImplemented, | 738 NaClDescIsattyNotImplemented, |
748 (enum NaClDescTypeTag) -1, /* NaClDesc is an abstract base class */ | 739 (enum NaClDescTypeTag) -1, /* NaClDesc is an abstract base class */ |
749 }; | 740 }; |
OLD | NEW |