OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_io/node.h" | 5 #include "nacl_io/node.h" |
6 | 6 |
7 #include <assert.h> | 7 #include <assert.h> |
8 #include <errno.h> | 8 #include <errno.h> |
9 #include <fcntl.h> | 9 #include <fcntl.h> |
10 #include <poll.h> | 10 #include <poll.h> |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 | 182 |
183 Error Node::Fchmod(mode_t mode) { | 183 Error Node::Fchmod(mode_t mode) { |
184 return EINVAL; | 184 return EINVAL; |
185 } | 185 } |
186 | 186 |
187 int Node::GetLinks() { | 187 int Node::GetLinks() { |
188 return stat_.st_nlink; | 188 return stat_.st_nlink; |
189 } | 189 } |
190 | 190 |
191 int Node::GetMode() { | 191 int Node::GetMode() { |
192 return stat_.st_mode & ~S_IFMT; | 192 return stat_.st_mode & 0777; |
193 } | 193 } |
194 | 194 |
195 Error Node::GetSize(off_t* out_size) { | 195 Error Node::GetSize(off_t* out_size) { |
196 *out_size = stat_.st_size; | 196 *out_size = stat_.st_size; |
197 return 0; | 197 return 0; |
198 } | 198 } |
199 | 199 |
200 int Node::GetType() { | 200 int Node::GetType() { |
201 return stat_.st_mode & S_IFMT; | 201 return stat_.st_mode & S_IFMT; |
202 } | 202 } |
203 | 203 |
204 void Node::SetType(int type) { | 204 void Node::SetType(int type) { |
205 assert((type & ~S_IFMT) == 0); | 205 assert((type & ~S_IFMT) == 0); |
206 stat_.st_mode &= ~S_IFMT; | |
207 stat_.st_mode |= type; | 206 stat_.st_mode |= type; |
208 } | 207 } |
209 | 208 |
210 void Node::SetMode(int mode) { | 209 void Node::SetMode(int mode) { |
211 assert((mode & S_IFMT) == 0); | 210 assert((mode & ~0777) == 0); |
212 stat_.st_mode &= S_IFMT; | 211 stat_.st_mode &= ~0777; |
213 stat_.st_mode |= mode; | 212 stat_.st_mode |= mode; |
214 } | 213 } |
215 | 214 |
216 bool Node::IsaDir() { | 215 bool Node::IsaDir() { |
217 return GetType() == S_IFDIR; | 216 return GetType() == S_IFDIR; |
218 } | 217 } |
219 | 218 |
220 bool Node::IsaFile() { | 219 bool Node::IsaFile() { |
221 return GetType() == S_IFREG; | 220 return GetType() == S_IFREG; |
222 } | 221 } |
(...skipping 25 matching lines...) Expand all Loading... |
248 | 247 |
249 void Node::Link() { | 248 void Node::Link() { |
250 stat_.st_nlink++; | 249 stat_.st_nlink++; |
251 } | 250 } |
252 | 251 |
253 void Node::Unlink() { | 252 void Node::Unlink() { |
254 stat_.st_nlink--; | 253 stat_.st_nlink--; |
255 } | 254 } |
256 | 255 |
257 } // namespace nacl_io | 256 } // namespace nacl_io |
OLD | NEW |