Fix file permissions: set executable bit
[nativeclient.git] / service_runtime / nacl_desc_effector_cleanup.c
blobeee8f1de1f517d3a179569b14b2a5a287e90ffe9
1 /*
2 * Copyright 2008, Google Inc.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above
12 * copyright notice, this list of conditions and the following disclaimer
13 * in the documentation and/or other materials provided with the
14 * distribution.
15 * * Neither the name of Google Inc. nor the names of its
16 * contributors may be used to endorse or promote products derived from
17 * this software without specific prior written permission.
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 /* @file
34 * Implementation of effector subclass used only for service runtime's
35 * NaClAppDtor address space tear down.
38 #include "native_client/service_runtime/nacl_desc_effector_cleanup.h"
39 #include "native_client/service_runtime/nacl_log.h"
41 static struct NaClDescEffectorVtbl NaClDescEffectorCleanupVtbl; /* fwd */
43 int NaClDescEffectorCleanupCtor(struct NaClDescEffectorCleanup *self)
45 self->base.vtbl = &NaClDescEffectorCleanupVtbl;
46 return 1;
49 static void NaClDescEffCleanDtor(struct NaClDescEffector *vself)
51 return;
54 static int NaClDescEffCleanReturnCreatedDesc(struct NaClDescEffector *vself,
55 struct NaClDesc *ndp)
57 NaClLog(LOG_FATAL, "Cleanup effector's ReturnCreatedDesc called\n");
58 return 0;
61 static void NaClDescEffCleanUpdateAddrMap(struct NaClDescEffector *vself,
62 uintptr_t sysaddr,
63 size_t nbytes,
64 int sysprot,
65 struct NaClDesc *backing_desc,
66 size_t backing_bytes,
67 off_t offset_bytes,
68 int delete_mem)
70 return;
73 static int NaClDescEffCleanUnmapMemory(struct NaClDescEffector *vself,
74 uintptr_t sysaddr,
75 size_t nbytes)
77 NaClLog(LOG_FATAL, "Cleanup effector's UnmapMemory called\n");
78 return 0;
81 static int NaClDescEffCleanMapAnonMem(struct NaClDescEffector *vself,
82 uintptr_t sysaddr,
83 size_t nbytes,
84 int prot)
86 NaClLog(LOG_FATAL, "Cleanup effector's MapAnonMem called\n");
87 return 0;
90 static struct NaClDescImcBoundDesc *NaClDescEffCleanSourceSock(
91 struct NaClDescEffector *vself)
93 NaClLog(LOG_FATAL, "Cleanup effector's SourceSock called\n");
94 return 0;
97 static struct NaClDescEffectorVtbl NaClDescEffectorCleanupVtbl = {
98 NaClDescEffCleanDtor,
99 NaClDescEffCleanReturnCreatedDesc,
100 NaClDescEffCleanUpdateAddrMap,
101 NaClDescEffCleanUnmapMemory,
102 NaClDescEffCleanMapAnonMem,
103 NaClDescEffCleanSourceSock,