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

Side by Side Diff: src/trusted/sel_universal/rpc_universal_system.cc

Issue 298443002: Remove unused support for SysV shared memory (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: 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 /* 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 #include <fcntl.h> 7 #include <fcntl.h>
8 #include <string.h> 8 #include <string.h>
9 #if NACL_LINUX && !NACL_ANDROID
10 // for shmem cleanup
11 #include <sys/ipc.h>
12 #include <sys/shm.h>
13 #include "native_client/src/trusted/desc/linux/nacl_desc_sysv_shm.h"
14 #endif
15 9
16 #include <map> 10 #include <map>
17 #include <string> 11 #include <string>
18 #include <sstream> 12 #include <sstream>
19 13
20 using std::stringstream; 14 using std::stringstream;
21 #include "native_client/src/shared/platform/nacl_log.h" 15 #include "native_client/src/shared/platform/nacl_log.h"
22 #include "native_client/src/trusted/desc/nacl_desc_base.h" 16 #include "native_client/src/trusted/desc/nacl_desc_base.h"
23 #include "native_client/src/trusted/desc/nacl_desc_sync_socket.h" 17 #include "native_client/src/trusted/desc/nacl_desc_sync_socket.h"
24 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h" 18 #include "native_client/src/trusted/desc/nacl_desc_wrapper.h"
25 #include "native_client/src/trusted/sel_universal/parsing.h" 19 #include "native_client/src/trusted/sel_universal/parsing.h"
26 #include "native_client/src/trusted/sel_universal/rpc_universal.h" 20 #include "native_client/src/trusted/sel_universal/rpc_universal.h"
27 #include "native_client/src/trusted/service_runtime/include/sys/fcntl.h" 21 #include "native_client/src/trusted/service_runtime/include/sys/fcntl.h"
28 22
29 23
30 namespace {
31
32 // The main point of this class is to ensure automatic cleanup.
33 // If the destructor is not invoked you need to manually cleanup
34 // the shared memory descriptors via "ipcs -m" and "ipcrm -m <id>"
35 class AddressMap {
36 public:
37 AddressMap() {}
38
39 ~AddressMap() {
40 // NOTE: you CANNOT call NaClLog - this is called too late
41 // NaClLog(1, "cleanup\n");
42 #if NACL_LINUX && !NACL_ANDROID
43 typedef map<NaClDesc*, uintptr_t>::iterator IT;
44 for (IT it = map_.begin(); it != map_.end(); ++it) {
45 shmctl(reinterpret_cast<NaClDescSysvShm*>(it->first)->id, IPC_RMID, NULL);
46 }
47 #endif
48 }
49
50 void Add(NaClDesc* desc, uintptr_t addr) { map_[desc] = addr; }
51
52 uintptr_t Get(NaClDesc* desc) { return map_[desc]; }
53
54 private:
55 map<NaClDesc*, uintptr_t> map_;
56 };
57
58 AddressMap GlobalAddressMap;
59
60 } // namespace
61
62 bool HandlerSyncSocketCreate(NaClCommandLoop* ncl, 24 bool HandlerSyncSocketCreate(NaClCommandLoop* ncl,
63 const vector<string>& args) { 25 const vector<string>& args) {
64 if (args.size() < 3) { 26 if (args.size() < 3) {
65 NaClLog(LOG_ERROR, "not enough args\n"); 27 NaClLog(LOG_ERROR, "not enough args\n");
66 return false; 28 return false;
67 } 29 }
68 30
69 NaClHandle handles[2] = {NACL_INVALID_HANDLE, NACL_INVALID_HANDLE}; 31 NaClHandle handles[2] = {NACL_INVALID_HANDLE, NACL_INVALID_HANDLE};
70 if (NaClSocketPair(handles) != 0) { 32 if (NaClSocketPair(handles) != 0) {
71 return false; 33 return false;
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 int size = static_cast<int>(ftell(fp)); 225 int size = static_cast<int>(ftell(fp));
264 fclose(fp); 226 fclose(fp);
265 227
266 NaClLog(1, "filesize is %d\n", size); 228 NaClLog(1, "filesize is %d\n", size);
267 229
268 stringstream str; 230 stringstream str;
269 str << size; 231 str << size;
270 ncl->SetVariable(args[2], str.str()); 232 ncl->SetVariable(args[2], str.str());
271 return true; 233 return true;
272 } 234 }
OLDNEW
« no previous file with comments | « src/trusted/sel_universal/rpc_universal.cc ('k') | src/trusted/service_runtime/include/bits/stat.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698