]>
Commit | Line | Data |
---|---|---|
f7dd881f DW |
1 | /* |
2 | * Copyright (C) 2008 Intel Corporation | |
3 | * | |
4 | * mdmon socket / message handling | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify it | |
7 | * under the terms and conditions of the GNU General Public License, | |
8 | * version 2, as published by the Free Software Foundation. | |
9 | * | |
10 | * This program is distributed in the hope it will be useful, but WITHOUT | |
11 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
12 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
13 | * more details. | |
14 | * | |
15 | * You should have received a copy of the GNU General Public License along with | |
16 | * this program; if not, write to the Free Software Foundation, Inc., | |
17 | * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. | |
18 | */ | |
19 | ||
b109d928 DW |
20 | #ifndef _MSG_H |
21 | #define _MSG_H | |
22 | ||
f7dd881f DW |
23 | struct mdinfo; |
24 | struct md_message { | |
25 | int seq; | |
26 | int num_bytes; | |
27 | void *buf; | |
28 | }; | |
29 | ||
30 | enum md_message_action { | |
31 | md_action_ping_monitor, | |
32 | md_action_remove_device, | |
33 | }; | |
34 | ||
35 | struct md_generic_cmd { | |
36 | enum md_message_action action; | |
37 | }; | |
38 | ||
39 | struct md_remove_device_cmd { | |
40 | enum md_message_action action; | |
41 | dev_t rdev; | |
42 | }; | |
43 | ||
44 | /* union of all known command types, used to sanity check ->num_bytes | |
45 | * on the receive path | |
46 | */ | |
47 | union md_message_commands { | |
48 | struct md_generic_cmd generic; | |
49 | struct md_remove_device_cmd remove; | |
50 | }; | |
51 | ||
52 | extern const int start_magic; | |
53 | extern const int end_magic; | |
54 | ||
55 | extern int receive_message(int fd, struct md_message *msg, int tmo); | |
56 | extern int send_message(int fd, struct md_message *msg, int tmo); | |
57 | extern int ack(int fd, int seq, int tmo); | |
58 | extern int nack(int fd, int err, int tmo); | |
59 | extern int connect_monitor(char *devname); | |
60 | extern int ping_monitor(char *devname); | |
61 | extern int send_remove_device(int fd, dev_t rdev, int seq, int tmo); | |
62 | ||
b109d928 | 63 | #endif |