OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2014 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 #include <errno.h> | 7 #include <errno.h> |
8 #include <fcntl.h> | 8 #include <fcntl.h> |
9 #include <string.h> | 9 #include <string.h> |
10 | 10 |
11 #include "native_client/tests/irt_ext/file_desc.h" | |
12 #include "native_client/src/include/nacl_assert.h" | 11 #include "native_client/src/include/nacl_assert.h" |
13 #include "native_client/src/include/nacl_macros.h" | 12 #include "native_client/src/include/nacl_macros.h" |
14 #include "native_client/src/untrusted/irt/irt_dev.h" | 13 #include "native_client/src/untrusted/irt/irt_dev.h" |
15 #include "native_client/src/untrusted/irt/irt_extension.h" | 14 #include "native_client/src/untrusted/irt/irt_extension.h" |
| 15 #include "native_client/tests/irt_ext/file_desc.h" |
16 | 16 |
17 static struct file_desc_environment *g_activated_env = NULL; | 17 static struct file_desc_environment *g_activated_env = NULL; |
18 static const struct inode_data g_default_inode = { | 18 static const struct inode_data g_default_inode = { |
19 .valid = false, | 19 .valid = false, |
20 .mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, | 20 .mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, |
21 }; | 21 }; |
22 | 22 |
23 static struct inode_data g_root_dir = { | 23 static struct inode_data g_root_dir = { |
24 .valid = true, | 24 .valid = true, |
25 .mode = S_IFDIR, | 25 .mode = S_IFDIR, |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 my_fstat, | 289 my_fstat, |
290 my_getdents, | 290 my_getdents, |
291 my_fchdir, | 291 my_fchdir, |
292 my_fchmod, | 292 my_fchmod, |
293 my_fsync, | 293 my_fsync, |
294 my_fdatasync, | 294 my_fdatasync, |
295 my_ftruncate, | 295 my_ftruncate, |
296 my_isatty, | 296 my_isatty, |
297 }; | 297 }; |
298 | 298 |
299 /* These tables should have share common prefixes with one another. */ | 299 size_t size = nacl_interface_ext_supply(NACL_IRT_DEV_FDIO_v0_3, &fdio, |
300 ASSERT_GT(sizeof(struct nacl_irt_dev_fdio_v0_2), | 300 sizeof(fdio)); |
301 sizeof(struct nacl_irt_fdio)); | 301 ASSERT_EQ(size, sizeof(fdio)); |
302 ASSERT_GT(sizeof(struct nacl_irt_dev_fdio), | |
303 sizeof(struct nacl_irt_dev_fdio_v0_2)); | |
304 | |
305 nacl_interface_ext_supply(NACL_IRT_FDIO_v0_1, &fdio, | |
306 sizeof(struct nacl_irt_fdio)); | |
307 nacl_interface_ext_supply(NACL_IRT_DEV_FDIO_v0_2, &fdio, | |
308 sizeof(struct nacl_irt_dev_fdio_v0_2)); | |
309 nacl_interface_ext_supply(NACL_IRT_DEV_FDIO_v0_3, &fdio, | |
310 sizeof(fdio)); | |
311 | 302 |
312 struct nacl_irt_dev_filename fname = { | 303 struct nacl_irt_dev_filename fname = { |
313 my_open, | 304 my_open, |
314 my_stat, | 305 my_stat, |
315 my_mkdir, | 306 my_mkdir, |
316 my_rmdir, | 307 my_rmdir, |
317 my_chdir, | 308 my_chdir, |
318 my_getcwd, | 309 my_getcwd, |
319 my_unlink, | 310 my_unlink, |
320 my_truncate, | 311 my_truncate, |
321 my_lstat, | 312 my_lstat, |
322 my_link, | 313 my_link, |
323 my_rename, | 314 my_rename, |
324 my_symlink, | 315 my_symlink, |
325 my_chmod, | 316 my_chmod, |
326 my_access, | 317 my_access, |
327 my_readlink, | 318 my_readlink, |
328 my_utimes, | 319 my_utimes, |
329 }; | 320 }; |
330 | 321 |
331 /* These tables should have share common prefixes with one another. */ | 322 /* These tables should have share common prefixes with one another. */ |
332 ASSERT_GT(sizeof(struct nacl_irt_dev_filename_v0_2), | 323 size = nacl_interface_ext_supply(NACL_IRT_DEV_FILENAME_v0_3, &fname, |
333 sizeof(struct nacl_irt_filename)); | 324 sizeof(fname)); |
334 ASSERT_GT(sizeof(struct nacl_irt_dev_filename), | 325 ASSERT_EQ(size, sizeof(fname)); |
335 sizeof(struct nacl_irt_dev_filename_v0_2)); | |
336 | |
337 nacl_interface_ext_supply(NACL_IRT_FILENAME_v0_1, &fname, | |
338 sizeof(struct nacl_irt_filename)); | |
339 nacl_interface_ext_supply(NACL_IRT_DEV_FILENAME_v0_2, &fname, | |
340 sizeof(struct nacl_irt_dev_filename_v0_2)); | |
341 nacl_interface_ext_supply(NACL_IRT_DEV_FILENAME_v0_3, &fname, | |
342 sizeof(fname)); | |
343 } | 326 } |
344 | 327 |
345 void init_inode_data(struct inode_data *inode_data) { | 328 void init_inode_data(struct inode_data *inode_data) { |
346 *inode_data = g_default_inode; | 329 *inode_data = g_default_inode; |
347 } | 330 } |
348 | 331 |
349 void init_file_descriptor(struct file_descriptor *file_desc) { | 332 void init_file_descriptor(struct file_descriptor *file_desc) { |
350 file_desc->valid = false; | 333 file_desc->valid = false; |
351 file_desc->data = NULL; | 334 file_desc->data = NULL; |
352 } | 335 } |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 return find_inode_name(env, current_dir, path_iter, strlen(path_iter)); | 412 return find_inode_name(env, current_dir, path_iter, strlen(path_iter)); |
430 } | 413 } |
431 | 414 |
432 void activate_file_desc_env(struct file_desc_environment *env) { | 415 void activate_file_desc_env(struct file_desc_environment *env) { |
433 g_activated_env = env; | 416 g_activated_env = env; |
434 } | 417 } |
435 | 418 |
436 void deactivate_file_desc_env(void) { | 419 void deactivate_file_desc_env(void) { |
437 g_activated_env = NULL; | 420 g_activated_env = NULL; |
438 } | 421 } |
OLD | NEW |