OLD | NEW |
1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2012 The Chromium 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 "nacl_mounts/kernel_handle.h" | 5 #include "nacl_mounts/kernel_handle.h" |
6 | 6 |
7 #include <errno.h> | 7 #include <errno.h> |
8 #include <fcntl.h> | 8 #include <fcntl.h> |
9 #include <pthread.h> | 9 #include <pthread.h> |
10 | 10 |
| 11 #ifndef WIN32 |
| 12 // Needed for SEEK_SET/SEEK_CUR/SEEK_END. |
| 13 #include <unistd.h> |
| 14 #endif |
| 15 |
11 #include "nacl_mounts/mount.h" | 16 #include "nacl_mounts/mount.h" |
12 #include "nacl_mounts/mount_node.h" | 17 #include "nacl_mounts/mount_node.h" |
13 | 18 |
14 // It is only legal to construct a handle while the kernel lock is held. | 19 // It is only legal to construct a handle while the kernel lock is held. |
15 KernelHandle::KernelHandle(Mount* mnt, MountNode* node, int mode) | 20 KernelHandle::KernelHandle(Mount* mnt, MountNode* node, int mode) |
16 : mount_(mnt), | 21 : mount_(mnt), |
17 node_(node), | 22 node_(node), |
18 mode_(mode), | 23 mode_(mode), |
19 offs_(0) { | 24 offs_(0) { |
20 if (mode & O_APPEND) offs_ = node->GetSize(); | 25 if (mode & O_APPEND) offs_ = node->GetSize(); |
(...skipping 20 matching lines...) Expand all Loading... |
41 // end and the new end. | 46 // end and the new end. |
42 if (offs_ > node_->GetSize()) { | 47 if (offs_ > node_->GetSize()) { |
43 if (node_->Truncate(offs_) < 0) { | 48 if (node_->Truncate(offs_) < 0) { |
44 errno = EINVAL; | 49 errno = EINVAL; |
45 return -1; | 50 return -1; |
46 } | 51 } |
47 } | 52 } |
48 | 53 |
49 return offs_; | 54 return offs_; |
50 } | 55 } |
OLD | NEW |