]> git.proxmox.com Git - mirror_ovs.git/blame - lib/process.h
netdev-offload-tc: Use single 'once' variable for probing tc features
[mirror_ovs.git] / lib / process.h
CommitLineData
064af421 1/*
2db15dc5 2 * Copyright (c) 2008, 2009, 2011, 2013 Nicira, Inc.
064af421 3 *
a14bc59f
BP
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:
064af421 7 *
a14bc59f
BP
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.
064af421
BP
15 */
16
17#ifndef PROCESS_H
18#define PROCESS_H 1
19
20#include <stdbool.h>
21#include <sys/types.h>
22
23struct process;
ff412c8c 24
ff1d2c16
BB
25struct 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'. */
0fee5185
BB
32 int core_id;
33 char name[18];
ff1d2c16
BB
34};
35
ff412c8c
BP
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. */
064af421 42void process_init(void);
e1208bc4 43int process_start(char **argv, struct process **);
064af421
BP
44void process_destroy(struct process *);
45int process_kill(const struct process *, int signr);
064af421
BP
46pid_t process_pid(const struct process *);
47const char *process_name(const struct process *);
48bool process_exited(struct process *);
49int process_status(const struct process *);
57d90319 50void process_run(void);
064af421
BP
51void process_wait(struct process *);
52
ff1d2c16
BB
53int count_crashes(pid_t);
54bool get_process_info(pid_t, struct process_info *);
55
ff412c8c
BP
56/* These functions are thread-safe. */
57char *process_status_msg(int);
58char *process_escape_args(char **argv);
064af421
BP
59char *process_search_path(const char *);
60
61#endif /* process.h */