]> git.proxmox.com Git - ovs.git/blob - lib/process.h
netdev-dpdk: vhost get stats fix.
[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 };
33
34 /* Starting and monitoring subprocesses.
35 *
36 * process_init() and process_start() may safely be called only from a
37 * single-threaded parent process. The parent process may safely create
38 * additional threads afterward, as long as the remaining functions in this
39 * group are called only from a single thread at any given time. */
40 void process_init(void);
41 int process_start(char **argv, struct process **);
42 void process_destroy(struct process *);
43 int process_kill(const struct process *, int signr);
44 pid_t process_pid(const struct process *);
45 const char *process_name(const struct process *);
46 bool process_exited(struct process *);
47 int process_status(const struct process *);
48 void process_run(void);
49 void process_wait(struct process *);
50
51 int count_crashes(pid_t);
52 bool get_process_info(pid_t, struct process_info *);
53
54 /* These functions are thread-safe. */
55 char *process_status_msg(int);
56 char *process_escape_args(char **argv);
57 char *process_search_path(const char *);
58
59 #endif /* process.h */