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

Side by Side Diff: src/trusted/desc/nacl_desc_wrapper.cc

Issue 261683002: Make a NaClDesc ctor for creating descs from NaClFileInfo. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: sync copies before deleting Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Native Client Authors. All rights reserved. 1 // Copyright (c) 2012 The Native Client Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <limits> 5 #include <limits>
6 #include <new> 6 #include <new>
7 #include "native_client/src/include/portability.h" 7 #include "native_client/src/include/portability.h"
8 #include "native_client/src/include/portability_string.h" 8 #include "native_client/src/include/portability_string.h"
9 #include "native_client/src/public/imc_types.h" 9 #include "native_client/src/public/imc_types.h"
10 #include "native_client/src/shared/imc/nacl_imc_c.h" 10 #include "native_client/src/shared/imc/nacl_imc_c.h"
11 #include "native_client/src/shared/platform/nacl_check.h" 11 #include "native_client/src/shared/platform/nacl_check.h"
12 #include "native_client/src/shared/platform/nacl_log.h" 12 #include "native_client/src/shared/platform/nacl_log.h"
13 #include "native_client/src/shared/platform/nacl_sync_checked.h" 13 #include "native_client/src/shared/platform/nacl_sync_checked.h"
14 #if defined(NACL_LINUX) 14 #if defined(NACL_LINUX)
15 #include "native_client/src/trusted/desc/linux/nacl_desc_sysv_shm.h" 15 #include "native_client/src/trusted/desc/linux/nacl_desc_sysv_shm.h"
16 #endif // defined(NACL_LINUX) 16 #endif // defined(NACL_LINUX)
17 #include "native_client/src/trusted/desc/nacl_desc_base.h" 17 #include "native_client/src/trusted/desc/nacl_desc_base.h"
18 #include "native_client/src/trusted/desc/nacl_desc_conn_cap.h" 18 #include "native_client/src/trusted/desc/nacl_desc_conn_cap.h"
19 #include "native_client/src/trusted/desc/nacl_desc_file_token.h"
19 #include "native_client/src/trusted/desc/nacl_desc_imc.h" 20 #include "native_client/src/trusted/desc/nacl_desc_imc.h"
20 #include "native_client/src/trusted/desc/nacl_desc_imc_shm.h" 21 #include "native_client/src/trusted/desc/nacl_desc_imc_shm.h"
21 #include "native_client/src/trusted/desc/nacl_desc_invalid.h" 22 #include "native_client/src/trusted/desc/nacl_desc_invalid.h"
22 #include "native_client/src/trusted/desc/nacl_desc_io.h" 23 #include "native_client/src/trusted/desc/nacl_desc_io.h"
23 #include "native_client/src/trusted/desc/nacl_desc_quota.h" 24 #include "native_client/src/trusted/desc/nacl_desc_quota.h"
24 #include "native_client/src/trusted/desc/nacl_desc_rng.h" 25 #include "native_client/src/trusted/desc/nacl_desc_rng.h"
25 #include "native_client/src/trusted/desc/nacl_desc_sync_socket.h" 26 #include "native_client/src/trusted/desc/nacl_desc_sync_socket.h"
26 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h" 27 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h"
27 #include "native_client/src/trusted/desc/nrd_xfer.h" 28 #include "native_client/src/trusted/desc/nrd_xfer.h"
28 #include "native_client/src/trusted/nacl_base/nacl_refcount.h" 29 #include "native_client/src/trusted/nacl_base/nacl_refcount.h"
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 } 309 }
309 310
310 DescWrapper* DescWrapperFactory::MakeFileDesc(int host_os_desc, int mode) { 311 DescWrapper* DescWrapperFactory::MakeFileDesc(int host_os_desc, int mode) {
311 struct NaClDesc* desc = ImportHostDescCommon(host_os_desc, mode); 312 struct NaClDesc* desc = ImportHostDescCommon(host_os_desc, mode);
312 if (NULL == desc) { 313 if (NULL == desc) {
313 return NULL; 314 return NULL;
314 } 315 }
315 return MakeGenericCleanup(desc); 316 return MakeGenericCleanup(desc);
316 } 317 }
317 318
319 DescWrapper* DescWrapperFactory::MakeFileDescMetadata(struct NaClFileInfo info,
320 int mode) {
321 struct NaClDesc* desc = ImportHostDescCommon(info.desc, mode);
322 if (NULL == desc) {
323 return NULL;
324 }
325 if (NaClFileTokenIsValid(&info.file_token)) {
326 if (!NaClDescSetFileToken(desc, &info.file_token)) {
327 NaClDescSafeUnref(desc);
328 return NULL;
329 }
330 }
331 return MakeGenericCleanup(desc);
332 }
333
318 DescWrapper* DescWrapperFactory::MakeFileDescQuota(int host_os_desc, 334 DescWrapper* DescWrapperFactory::MakeFileDescQuota(int host_os_desc,
319 int mode, 335 int mode,
320 const uint8_t* file_id) { 336 const uint8_t* file_id) {
321 struct NaClDesc* desc = ImportHostDescCommon(host_os_desc, mode); 337 struct NaClDesc* desc = ImportHostDescCommon(host_os_desc, mode);
322 if (NULL == desc) { 338 if (NULL == desc) {
323 return NULL; 339 return NULL;
324 } 340 }
325 struct NaClDesc* desc_quota = MakeQuotaCommon(file_id, desc); 341 struct NaClDesc* desc_quota = MakeQuotaCommon(file_id, desc);
326 if (desc_quota == NULL) { 342 if (desc_quota == NULL) {
327 NaClDescSafeUnref(desc); 343 NaClDescSafeUnref(desc);
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 return reinterpret_cast<struct NaClDescVtbl const *>(desc_->base.vtbl)-> 646 return reinterpret_cast<struct NaClDescVtbl const *>(desc_->base.vtbl)->
631 SemWait(desc_); 647 SemWait(desc_);
632 } 648 }
633 649
634 int DescWrapper::GetValue() { 650 int DescWrapper::GetValue() {
635 return reinterpret_cast<struct NaClDescVtbl const *>(desc_->base.vtbl)-> 651 return reinterpret_cast<struct NaClDescVtbl const *>(desc_->base.vtbl)->
636 GetValue(desc_); 652 GetValue(desc_);
637 } 653 }
638 654
639 } // namespace nacl 655 } // namespace nacl
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698