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 */ |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 int rv; | 304 int rv; |
305 nacl_host_stat_t hstatbuf; | 305 nacl_host_stat_t hstatbuf; |
306 | 306 |
307 rv = NaClHostDescFstat(self->hd, &hstatbuf); | 307 rv = NaClHostDescFstat(self->hd, &hstatbuf); |
308 if (0 != rv) { | 308 if (0 != rv) { |
309 return rv; | 309 return rv; |
310 } | 310 } |
311 return NaClAbiStatHostDescStatXlateCtor(statbuf, &hstatbuf); | 311 return NaClAbiStatHostDescStatXlateCtor(statbuf, &hstatbuf); |
312 } | 312 } |
313 | 313 |
| 314 static int NaClDescIoDescFchmod(struct NaClDesc *vself, |
| 315 int mode) { |
| 316 struct NaClDescIoDesc *self = (struct NaClDescIoDesc *) vself; |
| 317 |
| 318 return NaClHostDescFchmod(self->hd, mode); |
| 319 } |
| 320 |
| 321 static int NaClDescIoDescFsync(struct NaClDesc *vself) { |
| 322 struct NaClDescIoDesc *self = (struct NaClDescIoDesc *) vself; |
| 323 |
| 324 return NaClHostDescFsync(self->hd); |
| 325 } |
| 326 |
| 327 static int NaClDescIoDescFdatasync(struct NaClDesc *vself) { |
| 328 struct NaClDescIoDesc *self = (struct NaClDescIoDesc *) vself; |
| 329 |
| 330 return NaClHostDescFdatasync(self->hd); |
| 331 } |
| 332 |
| 333 static int NaClDescIoDescFtruncate(struct NaClDesc *vself, |
| 334 nacl_abi_off_t length) { |
| 335 struct NaClDescIoDesc *self = (struct NaClDescIoDesc *) vself; |
| 336 |
| 337 return NaClHostDescFtruncate(self->hd, length); |
| 338 } |
| 339 |
314 static int NaClDescIoDescExternalizeSize(struct NaClDesc *vself, | 340 static int NaClDescIoDescExternalizeSize(struct NaClDesc *vself, |
315 size_t *nbytes, | 341 size_t *nbytes, |
316 size_t *nhandles) { | 342 size_t *nhandles) { |
317 struct NaClDescIoDesc *self = (struct NaClDescIoDesc *) vself; | 343 struct NaClDescIoDesc *self = (struct NaClDescIoDesc *) vself; |
318 int rv; | 344 int rv; |
319 | 345 |
320 rv = NaClDescExternalizeSize(vself, nbytes, nhandles); | 346 rv = NaClDescExternalizeSize(vself, nbytes, nhandles); |
321 if (0 != rv) { | 347 if (0 != rv) { |
322 return rv; | 348 return rv; |
323 } | 349 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 #else | 387 #else |
362 NACL_DESC_UNMAP_NOT_IMPLEMENTED | 388 NACL_DESC_UNMAP_NOT_IMPLEMENTED |
363 #endif | 389 #endif |
364 NaClDescIoDescRead, | 390 NaClDescIoDescRead, |
365 NaClDescIoDescWrite, | 391 NaClDescIoDescWrite, |
366 NaClDescIoDescSeek, | 392 NaClDescIoDescSeek, |
367 NaClDescIoDescPRead, | 393 NaClDescIoDescPRead, |
368 NaClDescIoDescPWrite, | 394 NaClDescIoDescPWrite, |
369 NaClDescIoDescIoctl, | 395 NaClDescIoDescIoctl, |
370 NaClDescIoDescFstat, | 396 NaClDescIoDescFstat, |
| 397 NaClDescFchdirNotImplemented, |
| 398 NaClDescIoDescFchmod, |
| 399 NaClDescIoDescFsync, |
| 400 NaClDescIoDescFdatasync, |
| 401 NaClDescIoDescFtruncate, |
371 NaClDescGetdentsNotImplemented, | 402 NaClDescGetdentsNotImplemented, |
372 NaClDescIoDescExternalizeSize, | 403 NaClDescIoDescExternalizeSize, |
373 NaClDescIoDescExternalize, | 404 NaClDescIoDescExternalize, |
374 NaClDescLockNotImplemented, | 405 NaClDescLockNotImplemented, |
375 NaClDescTryLockNotImplemented, | 406 NaClDescTryLockNotImplemented, |
376 NaClDescUnlockNotImplemented, | 407 NaClDescUnlockNotImplemented, |
377 NaClDescWaitNotImplemented, | 408 NaClDescWaitNotImplemented, |
378 NaClDescTimedWaitAbsNotImplemented, | 409 NaClDescTimedWaitAbsNotImplemented, |
379 NaClDescSignalNotImplemented, | 410 NaClDescSignalNotImplemented, |
380 NaClDescBroadcastNotImplemented, | 411 NaClDescBroadcastNotImplemented, |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 cleanup: | 508 cleanup: |
478 if (rv < 0) { | 509 if (rv < 0) { |
479 free(nhdp); | 510 free(nhdp); |
480 free(ndidp); | 511 free(ndidp); |
481 if (NACL_INVALID_HANDLE != h) { | 512 if (NACL_INVALID_HANDLE != h) { |
482 (void) NaClClose(h); | 513 (void) NaClClose(h); |
483 } | 514 } |
484 } | 515 } |
485 return rv; | 516 return rv; |
486 } | 517 } |
OLD | NEW |