Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: src/untrusted/irt/irt_dev.h

Issue 24908002: Provide IRT process interface Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | src/untrusted/irt/irt_interfaces.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The Native Client Authors. All rights reserved. 2 * Copyright (c) 2013 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 #ifndef NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H_ 6 #ifndef NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H_
7 #define NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H_ 7 #define NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H_
8 8
9 #include <stdarg.h> 9 #include <stdarg.h>
10 #include <stddef.h> 10 #include <stddef.h>
11 #include <sys/types.h> 11 #include <sys/types.h>
12 12
13 struct dirent; 13 struct dirent;
14 struct stat; 14 struct stat;
15 struct timeval; 15 struct timeval;
16 16
17 struct NaClMemMappingInfo; 17 struct NaClMemMappingInfo;
18 18
19 #include <spawn.h>
20
19 #if defined(__cplusplus) 21 #if defined(__cplusplus)
20 extern "C" { 22 extern "C" {
21 #endif 23 #endif
22 24
23 #define NACL_IRT_DEV_FDIO_v0_2 "nacl-irt-dev-fdio-0.2" 25 #define NACL_IRT_DEV_FDIO_v0_2 "nacl-irt-dev-fdio-0.2"
26 struct nacl_irt_dev_fdio_v0_2 {
27 int (*close)(int fd);
28 int (*dup)(int fd, int *newfd);
29 int (*dup2)(int fd, int newfd);
30 int (*read)(int fd, void *buf, size_t count, size_t *nread);
31 int (*write)(int fd, const void *buf, size_t count, size_t *nwrote);
32 int (*seek)(int fd, off_t offset, int whence, off_t *new_offset);
33 int (*fstat)(int fd, struct stat *);
34 int (*getdents)(int fd, struct dirent *, size_t count, size_t *nread);
35 int (*fchdir)(int fd);
36 int (*fchmod)(int fd, mode_t mode);
37 int (*fsync)(int fd);
38 int (*fdatasync)(int fd);
39 int (*ftruncate)(int fd, off_t length);
40 };
41
42 #define NACL_IRT_DEV_FDIO_v0_3 "nacl-irt-dev-fdio-0.3"
24 struct nacl_irt_dev_fdio { 43 struct nacl_irt_dev_fdio {
25 int (*close)(int fd); 44 int (*close)(int fd);
26 int (*dup)(int fd, int *newfd); 45 int (*dup)(int fd, int *newfd);
27 int (*dup2)(int fd, int newfd); 46 int (*dup2)(int fd, int newfd);
28 int (*read)(int fd, void *buf, size_t count, size_t *nread); 47 int (*read)(int fd, void *buf, size_t count, size_t *nread);
29 int (*write)(int fd, const void *buf, size_t count, size_t *nwrote); 48 int (*write)(int fd, const void *buf, size_t count, size_t *nwrote);
30 int (*seek)(int fd, off_t offset, int whence, off_t *new_offset); 49 int (*seek)(int fd, off_t offset, int whence, off_t *new_offset);
31 int (*fstat)(int fd, struct stat *); 50 int (*fstat)(int fd, struct stat *);
32 int (*getdents)(int fd, struct dirent *, size_t count, size_t *nread); 51 int (*getdents)(int fd, struct dirent *, size_t count, size_t *nread);
33 int (*fchdir)(int fd); 52 int (*fchdir)(int fd);
34 int (*fchmod)(int fd, mode_t mode); 53 int (*fchmod)(int fd, mode_t mode);
35 int (*fsync)(int fd); 54 int (*fsync)(int fd);
36 int (*fdatasync)(int fd); 55 int (*fdatasync)(int fd);
37 int (*ftruncate)(int fd, off_t length); 56 int (*ftruncate)(int fd, off_t length);
57 int (*pipe)(int pipefd[2]);
38 }; 58 };
39 59
40 /* 60 /*
41 * The "irt-dev-filename" is similiar to "irt-filename" but provides 61 * The "irt-dev-filename" is similiar to "irt-filename" but provides
42 * additional functions, including those that do directory manipulation. 62 * additional functions, including those that do directory manipulation.
43 * Inside Chromium, requests for this interface may fail, or may return 63 * Inside Chromium, requests for this interface may fail, or may return
44 * functions which always return errors. 64 * functions which always return errors.
45 */ 65 */
46 #define NACL_IRT_DEV_FILENAME_v0_2 "nacl-irt-dev-filename-0.2" 66 #define NACL_IRT_DEV_FILENAME_v0_2 "nacl-irt-dev-filename-0.2"
47 struct nacl_irt_dev_filename_v0_2 { 67 struct nacl_irt_dev_filename_v0_2 {
(...skipping 26 matching lines...) Expand all
74 int (*utimes)(const char *filename, const struct timeval *times); 94 int (*utimes)(const char *filename, const struct timeval *times);
75 }; 95 };
76 96
77 #define NACL_IRT_DEV_LIST_MAPPINGS_v0_1 \ 97 #define NACL_IRT_DEV_LIST_MAPPINGS_v0_1 \
78 "nacl-irt-dev-list-mappings-0.1" 98 "nacl-irt-dev-list-mappings-0.1"
79 struct nacl_irt_dev_list_mappings { 99 struct nacl_irt_dev_list_mappings {
80 int (*list_mappings)(struct NaClMemMappingInfo *regions, 100 int (*list_mappings)(struct NaClMemMappingInfo *regions,
81 size_t count, size_t *result_count); 101 size_t count, size_t *result_count);
82 }; 102 };
83 103
104 #define NACL_IRT_DEV_PROCESS_v0_1 "nacl-irt-dev-process-0.1"
105 struct nacl_irt_dev_process {
106 int (*getpid)(pid_t *pid);
107 int (*getppid)(pid_t *ppid);
108 int (*setpgid)(pid_t pid, pid_t pgid);
109 int (*getpgid)(pid_t pid, pid_t *pgid);
110 int (*setsid)(pid_t *sid);
111 int (*getsid)(pid_t pid, pid_t *sid);
112 int (*kill)(pid_t pid, int sig);
113 int (*posix_spawn)(pid_t *pid, const char *path,
114 const posix_spawn_file_actions_t *file_actions,
115 const posix_spawnattr_t *attrp,
116 char *const argv[], char *const envp[]);
117 int (*signal)(int sig, sighandler_t handler, sighandler_t *oldhandler);
118 int (*sigprocmask)(int how, const sigset_t *set, sigset_t *oldset);
119 int (*wait)(int *pid, int *status);
120 int (*waitpid)(int *pid, int *status, int options);
121 };
122
84 #if defined(__cplusplus) 123 #if defined(__cplusplus)
85 } 124 }
86 #endif 125 #endif
87 126
88 #endif /* NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H */ 127 #endif /* NATIVE_CLIENT_SRC_UNTRUSTED_IRT_IRT_DEV_H */
OLDNEW
« no previous file with comments | « no previous file | src/untrusted/irt/irt_interfaces.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698