X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=msg.h;h=016612cd1ab7d33937924b6840887f04e6e79eaf;hp=afe14040391b6e49fdde5a3d68708095f0be6b03;hb=44b6b87610281a4add36a1addd7630095dc8a545;hpb=370ac380fda9fb0d813f210ed2b342cfbde07cf0 diff --git a/msg.h b/msg.h index afe14040..016612cd 100644 --- a/msg.h +++ b/msg.h @@ -1,7 +1,7 @@ /* * Copyright (C) 2008 Intel Corporation * - * mdmon socket / message handling + * mdmon socket / message handling * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -17,46 +17,21 @@ * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. */ - -struct mdinfo; - struct mdinfo; -struct md_message { - int seq; - int num_bytes; - void *buf; -}; - -enum md_message_action { - md_action_ping_monitor, - md_action_remove_device, -}; - -struct md_generic_cmd { - enum md_message_action action; -}; +struct metadata_update; -struct md_remove_device_cmd { - enum md_message_action action; - dev_t rdev; -}; - -/* union of all known command types, used to sanity check ->num_bytes - * on the receive path - */ -union md_message_commands { - struct md_generic_cmd generic; - struct md_remove_device_cmd remove; -}; - -extern const int start_magic; -extern const int end_magic; - -extern int receive_message(int fd, struct md_message *msg, int tmo); -extern int send_message(int fd, struct md_message *msg, int tmo); -extern int ack(int fd, int seq, int tmo); -extern int nack(int fd, int err, int tmo); +extern int receive_message(int fd, struct metadata_update *msg, int tmo); +extern int send_message(int fd, struct metadata_update *msg, int tmo); +extern int ack(int fd, int tmo); +extern int wait_reply(int fd, int tmo); extern int connect_monitor(char *devname); extern int ping_monitor(char *devname); -extern int send_remove_device(int fd, dev_t rdev, int seq, int tmo); - +extern int block_subarray(struct mdinfo *sra); +extern int unblock_subarray(struct mdinfo *sra, const int unfreeze); +extern int block_monitor(char *container, const int freeze); +extern void unblock_monitor(char *container, const int unfreeze); +extern int fping_monitor(int sock); +extern int ping_manager(char *devname); +extern void flush_mdmon(char *container); + +#define MSG_MAX_LEN (4*1024*1024)