]> git.proxmox.com Git - mirror_ovs.git/blob - lib/process.h
ofp-ed-props: Fix using uninitialized padding for NSH encap actions.
[mirror_ovs.git] / lib / process.h
1 /*
2 * Copyright (c) 2008, 2009, 2011, 2013 Nicira, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at:
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #ifndef PROCESS_H
18 #define PROCESS_H 1
19
20 #include <stdbool.h>
21 #include <sys/types.h>
22
23 struct process;
24
25 struct process_info {
26 unsigned long int vsz; /* Virtual size, in kB. */
27 unsigned long int rss; /* Resident set size, in kB. */
28 long long int booted; /* ms since monitor started. */
29 int crashes; /* # of crashes (usually 0). */
30 long long int uptime; /* ms since last (re)started by monitor. */
31 long long int cputime; /* ms of CPU used during 'uptime'. */
32 int core_id;
33 char name[18];
34 };
35
36 /* Starting and monitoring subprocesses.
37 *
38 * process_init() and process_start() may safely be called only from a
39 * single-threaded parent process. The parent process may safely create
40 * additional threads afterward, as long as the remaining functions in this
41 * group are called only from a single thread at any given time. */
42 void process_init(void);
43 int process_start(char **argv, struct process **);
44 void process_destroy(struct process *);
45 int process_kill(const struct process *, int signr);
46 pid_t process_pid(const struct process *);
47 const char *process_name(const struct process *);
48 bool process_exited(struct process *);
49 int process_status(const struct process *);
50 void process_run(void);
51 void process_wait(struct process *);
52
53 int count_crashes(pid_t);
54 bool get_process_info(pid_t, struct process_info *);
55
56 /* These functions are thread-safe. */
57 char *process_status_msg(int);
58 char *process_escape_args(char **argv);
59 char *process_search_path(const char *);
60
61 #endif /* process.h */