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. Directory descriptor abstraction. | 8 * NaCl Service Runtime. Directory descriptor abstraction. |
9 */ | 9 */ |
10 | 10 |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 memset(statbuf, 0, sizeof *statbuf); | 138 memset(statbuf, 0, sizeof *statbuf); |
139 /* | 139 /* |
140 * TODO(bsy): saying it's executable/searchable might be a lie. | 140 * TODO(bsy): saying it's executable/searchable might be a lie. |
141 */ | 141 */ |
142 statbuf->nacl_abi_st_mode = (NACL_ABI_S_IFDIR | | 142 statbuf->nacl_abi_st_mode = (NACL_ABI_S_IFDIR | |
143 NACL_ABI_S_IRUSR | | 143 NACL_ABI_S_IRUSR | |
144 NACL_ABI_S_IXUSR); | 144 NACL_ABI_S_IXUSR); |
145 return 0; | 145 return 0; |
146 } | 146 } |
147 | 147 |
| 148 static int NaClDescDirDescFchdir(struct NaClDesc *vself) { |
| 149 struct NaClDescDirDesc *self = (struct NaClDescDirDesc *) vself; |
| 150 |
| 151 return NaClHostDirFchdir(self->hd); |
| 152 } |
| 153 |
| 154 static int NaClDescDirDescFchmod(struct NaClDesc *vself, |
| 155 int mode) { |
| 156 struct NaClDescDirDesc *self = (struct NaClDescDirDesc *) vself; |
| 157 |
| 158 return NaClHostDirFchmod(self->hd, mode); |
| 159 } |
| 160 |
| 161 static int NaClDescDirDescFsync(struct NaClDesc *vself) { |
| 162 struct NaClDescDirDesc *self = (struct NaClDescDirDesc *) vself; |
| 163 |
| 164 return NaClHostDirFsync(self->hd); |
| 165 } |
| 166 |
| 167 static int NaClDescDirDescFdatasync(struct NaClDesc *vself) { |
| 168 struct NaClDescDirDesc *self = (struct NaClDescDirDesc *) vself; |
| 169 |
| 170 return NaClHostDirFdatasync(self->hd); |
| 171 } |
| 172 |
148 static struct NaClDescVtbl const kNaClDescDirDescVtbl = { | 173 static struct NaClDescVtbl const kNaClDescDirDescVtbl = { |
149 { | 174 { |
150 NaClDescDirDescDtor, | 175 NaClDescDirDescDtor, |
151 }, | 176 }, |
152 NaClDescMapNotImplemented, | 177 NaClDescMapNotImplemented, |
153 NACL_DESC_UNMAP_NOT_IMPLEMENTED | 178 NACL_DESC_UNMAP_NOT_IMPLEMENTED |
154 NaClDescDirDescRead, | 179 NaClDescDirDescRead, |
155 NaClDescWriteNotImplemented, | 180 NaClDescWriteNotImplemented, |
156 NaClDescSeekNotImplemented, | 181 NaClDescSeekNotImplemented, |
157 NaClDescPReadNotImplemented, | 182 NaClDescPReadNotImplemented, |
158 NaClDescPWriteNotImplemented, | 183 NaClDescPWriteNotImplemented, |
159 NaClDescIoctlNotImplemented, | 184 NaClDescIoctlNotImplemented, |
160 NaClDescDirDescFstat, | 185 NaClDescDirDescFstat, |
| 186 NaClDescDirDescFchdir, |
| 187 NaClDescDirDescFchmod, |
| 188 NaClDescDirDescFsync, |
| 189 NaClDescDirDescFdatasync, |
| 190 NaClDescFtruncateNotImplemented, |
161 NaClDescDirDescGetdents, | 191 NaClDescDirDescGetdents, |
162 NaClDescExternalizeSizeNotImplemented, | 192 NaClDescExternalizeSizeNotImplemented, |
163 NaClDescExternalizeNotImplemented, | 193 NaClDescExternalizeNotImplemented, |
164 NaClDescLockNotImplemented, | 194 NaClDescLockNotImplemented, |
165 NaClDescTryLockNotImplemented, | 195 NaClDescTryLockNotImplemented, |
166 NaClDescUnlockNotImplemented, | 196 NaClDescUnlockNotImplemented, |
167 NaClDescWaitNotImplemented, | 197 NaClDescWaitNotImplemented, |
168 NaClDescTimedWaitAbsNotImplemented, | 198 NaClDescTimedWaitAbsNotImplemented, |
169 NaClDescSignalNotImplemented, | 199 NaClDescSignalNotImplemented, |
170 NaClDescBroadcastNotImplemented, | 200 NaClDescBroadcastNotImplemented, |
171 NaClDescSendMsgNotImplemented, | 201 NaClDescSendMsgNotImplemented, |
172 NaClDescRecvMsgNotImplemented, | 202 NaClDescRecvMsgNotImplemented, |
173 NaClDescLowLevelSendMsgNotImplemented, | 203 NaClDescLowLevelSendMsgNotImplemented, |
174 NaClDescLowLevelRecvMsgNotImplemented, | 204 NaClDescLowLevelRecvMsgNotImplemented, |
175 NaClDescConnectAddrNotImplemented, | 205 NaClDescConnectAddrNotImplemented, |
176 NaClDescAcceptConnNotImplemented, | 206 NaClDescAcceptConnNotImplemented, |
177 NaClDescPostNotImplemented, | 207 NaClDescPostNotImplemented, |
178 NaClDescSemWaitNotImplemented, | 208 NaClDescSemWaitNotImplemented, |
179 NaClDescGetValueNotImplemented, | 209 NaClDescGetValueNotImplemented, |
180 NaClDescSetMetadata, | 210 NaClDescSetMetadata, |
181 NaClDescGetMetadata, | 211 NaClDescGetMetadata, |
182 NaClDescSetFlags, | 212 NaClDescSetFlags, |
183 NaClDescGetFlags, | 213 NaClDescGetFlags, |
184 NACL_DESC_DIR, | 214 NACL_DESC_DIR, |
185 }; | 215 }; |
OLD | NEW |