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

Side by Side Diff: src/trusted/platform/nacl_process.h

Issue 10832400: Process abstraction layer for NaCl Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Provide consistent interface across all platforms. Created 8 years, 4 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
OLDNEW
(Empty)
1 /*
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
4 * found in the LICENSE file.
5 */
6
7 /*
8 * NaCl Service Runtime process abstraction layer.
9 */
10
11 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLATFORM_NACL_PROCESS_H_
12 #define NATIVE_CLIENT_SRC_TRUSTED_PLATFORM_NACL_PROCESS_H_
13
14 #include "native_client/src/include/nacl_base.h"
15 #include "native_client/src/include/nacl_compiler_annotations.h"
16 #include "native_client/src/include/portability.h"
17
18 EXTERN_C_BEGIN
19
20 #if NACL_LINUX || NACL_OSX || defined(__native_client__)
Mark Seaborn 2012/08/24 00:22:42 Why "defined(__native_client__)" when this isn't b
21 # include "native_client/src/trusted/platform/posix/nacl_process_types.h"
22 #elif NACL_WINDOWS
23 # include "native_client/src/trusted/platform/win/nacl_process_types.h"
24 #else
25 # error Unsupported platform
26 #endif
27
28 EXTERN_C_BEGIN
29
30 /*
31 * Portable process creation and management interface.
32 */
33
34 /*
35 * Flags available for NaClProcessLaunch.
36 */
37 #define NACL_PROCESS_LAUNCH_NEW_GROUP 0x1 /* new process group */
Mark Seaborn 2012/08/24 00:22:42 I am sceptical you really need this feature, and y
38 #define NACL_PROCESS_LAUNCH_CLOSE_FDS 0x2 /* close all open fds */
39
40 /*
41 * Launch a process via the command line |cmd|.
42 *
43 * Upon success, if |npp| handle is non-NULL, it will be filled in with the
44 * handle of the launched process.
45 *
46 * Returns 1 upon success.
47 */
48 int NaClProcessLaunch(struct NaClProcess *npp,
49 char *const *argv,
50 char *const *envp,
51 int flags);
52
53 /*
54 * Attempts to kill the process identified by the process handle |npp,
Mark Seaborn 2012/08/24 00:22:42 Missing "|": "|npp|"
55 * giving it the specified exit code. If |wait| is true, wait for the
56 * process to be actually terminated before returning.
57 *
58 * Returns 1 on success, 0 otherwise.
59 */
60 int NaClProcessKill(struct NaClProcess *npp, int exit_code, int wait);
61
62 /*
63 * Return status values from NaClGetStatus.
64 */
65 #define NACL_PROCESS_STATUS_NORMAL_EXIT 0 /* zero exit status */
66 #define NACL_PROCESS_STATUS_ABNORMAL_EXIT 1 /* non-zero exit status */
67 #define NACL_PROCESS_STATUS_KILLED 2 /* SIGKILL or task manager */
68 #define NACL_PROCESS_STATUS_CRASHED 3 /* e.g. segmentation fault */
69 #define NACL_PROCESS_STATUS_STILL_RUNNING 4 /* child hasn't exited yet */
70
71 /*
72 * Get the status of process identified by the process handle |npp|.
73 *
74 * Note: on Linux, this function will only return a useful result the
75 * first time it is called after the child exists (because it reaps the
76 * child and the information will no longer be available).
77 *
78 * Returns 1 on success, 0 otherwise.
79 */
80 int NaClProcessGetStatus(struct NaClProcess *npp,
81 int *status);
82
83 /*
84 * Waits for process to exit. On POSIX systems, if the process hasn't been
85 * signaled then puts the exit code in |exit_code|; otherwise it's considered
86 * a failure. On Windows |exit_code| is always filled.
87 *
88 * Returns 1 on success, 0 otherwise.
89 */
90 int NaClProcessWaitForExitCode(struct NaClProcess *npp,
91 int *exit_code);
92
93 EXTERN_C_END
94
95 #endif /* NATIVE_CLIENT_SRC_TRUSTED_PLATFORM_NACL_PROCESS_H_ */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698