]> git.proxmox.com Git - mirror_corosync-qdevice.git/blame - qdevices/qdevice-heuristics-instance.h
init: Fix init scripts to work with containers
[mirror_corosync-qdevice.git] / qdevices / qdevice-heuristics-instance.h
CommitLineData
9a1955a7
JF
1/*
2 * Copyright (c) 2015-2017 Red Hat, Inc.
3 *
4 * All rights reserved.
5 *
6 * Author: Jan Friesse (jfriesse@redhat.com)
7 *
8 * This software licensed under BSD license, the text of which follows:
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions are met:
12 *
13 * - Redistributions of source code must retain the above copyright notice,
14 * this list of conditions and the following disclaimer.
15 * - Redistributions in binary form must reproduce the above copyright notice,
16 * this list of conditions and the following disclaimer in the documentation
17 * and/or other materials provided with the distribution.
18 * - Neither the name of the Red Hat, Inc. nor the names of its
19 * contributors may be used to endorse or promote products derived from this
20 * software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
32 * THE POSSIBILITY OF SUCH DAMAGE.
33 */
34
35#ifndef _QDEVICE_HEURISTICS_INSTANCE_H_
36#define _QDEVICE_HEURISTICS_INSTANCE_H_
37
38#include "dynar.h"
39#include "send-buffer-list.h"
40#include "qdevice-heuristics-mode.h"
41#include "qdevice-heuristics-exec-list.h"
42#include "qdevice-heuristics-exec-result.h"
43#include "qdevice-heuristics-result-notifier.h"
44
45#ifdef __cplusplus
46extern "C" {
47#endif
48
49struct qdevice_heuristics_instance {
50 int pipe_cmd_send;
51 int pipe_cmd_recv;
52 int pipe_log_recv;
53 pid_t worker_pid;
54 struct send_buffer_list cmd_out_buffer_list;
55 struct dynar log_in_buffer;
56 struct dynar cmd_in_buffer;
57
58 uint32_t timeout;
59 uint32_t sync_timeout;
60 uint32_t interval;
61
62 enum qdevice_heuristics_mode mode;
63
64 int waiting_for_result;
65 uint32_t expected_reply_seq_number;
66
67 struct qdevice_heuristics_exec_list exec_list;
68
69 struct qdevice_instance *qdevice_instance_ptr;
70
71 struct qdevice_heuristics_result_notifier_list exec_result_notifier_list;
72};
73
74extern int qdevice_heuristics_instance_init(struct qdevice_heuristics_instance *instance);
75
76extern int qdevice_heuristics_instance_destroy(struct qdevice_heuristics_instance *instance);
77
78#ifdef __cplusplus
79}
80#endif
81
82#endif /* _QDEVICE_HEURISTICS_INSTANCE_H_ */