From e0d1903663dac9307a37646c26abf7991b0a9593 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Thu, 4 Apr 2002 01:58:32 +0000 Subject: mdadm-0.8 --- mdadm.h | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 12 deletions(-) (limited to 'mdadm.h') diff --git a/mdadm.h b/mdadm.h index ffed293..90acef1 100644 --- a/mdadm.h +++ b/mdadm.h @@ -42,21 +42,36 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); #include #include -#include +/*#include */ +#include +#include #include #define MD_MAJOR 9 -/* I seem to need this to make BLKGETSIZE64 to work... */ -#define u64 __u64 +#ifndef BLKGETSIZE64 +#define BLKGETSIZE64 _IOR(0x12,114,sizeof(__u64)) /* return device size in bytes (u64 *arg) */ +#endif #include "md_u.h" +#include "md_p.h" #define Name "mdadm" +enum mode { + ASSEMBLE=1, + BUILD, + CREATE, + MANAGE, + MISC, + MONITOR, +}; + extern char short_options[]; extern struct option long_options[]; -extern char Version[], Usage[], Help[], Help_create[], Help_build[], Help_assemble[]; +extern char Version[], Usage[], Help[], + Help_create[], Help_build[], Help_assemble[], + Help_manage[], Help_misc[], Help_monitor[], Help_config[]; /* structures read from config file */ /* List of mddevice names and identifiers @@ -99,13 +114,27 @@ typedef struct mapping { int num; } mapping_t; + +struct mdstat_ent { + char *dev; + int devnum; + int active; + char *level; + char *pattern; /* U or up, _ for down */ + int percent; /* -1 if no resync */ + struct mdstat_ent *next; +}; + +extern struct mdstat_ent *mdstat_read(void); +extern void free_mdstat(struct mdstat_ent *ms); + #ifndef Sendmail #define Sendmail "/usr/lib/sendmail -t" #endif extern char *map_num(mapping_t *map, int num); extern int map_name(mapping_t *map, char *name); -extern mapping_t r5layout[], pers[]; +extern mapping_t r5layout[], pers[], modes[]; extern char *map_dev(int major, int minor); @@ -134,22 +163,42 @@ extern int Create(char *mddev, int mdfd, int runstop, int verbose, int force); extern int Detail(char *dev, int brief); -extern int Examine(mddev_dev_t devlist, int brief, char *conffile); +extern int Query(char *dev); +extern int Examine(mddev_dev_t devlist, int brief, int scan); extern int Monitor(mddev_dev_t devlist, - char *mailaddr, char *alert_cmd, - int period, - char *config); + char *mailaddr, char *alert_cmd, + int period, int scan, + char *config); extern int Kill(char *dev, int force); extern int md_get_version(int fd); -extern int get_linux_version(); +extern int get_linux_version(void); extern int parse_uuid(char *str, int uuid[4]); extern int check_ext2(int fd, char *name); extern int check_reiser(int fd, char *name); extern int check_raid(int fd, char *name); -extern mddev_ident_t conf_get_ident(char *, char*); -extern mddev_dev_t conf_get_devs(char *); +extern mddev_ident_t conf_get_ident(char *conffile, char *dev); +extern mddev_dev_t conf_get_devs(char *conffile); +extern char *conf_get_mailaddr(char *conffile); +extern char *conf_get_program(char *conffile); +extern char *conf_line(FILE *file); +extern void free_line(char *line); +extern int match_oneof(char *devices, char *devname); +extern int load_super(int fd, mdp_super_t *super); +extern void uuid_from_super(int uuid[4], mdp_super_t *super); +extern int same_uuid(int a[4], int b[4]); +extern int compare_super(mdp_super_t *first, mdp_super_t *second); +extern int calc_sb_csum(mdp_super_t *super); +extern int store_super(int fd, mdp_super_t *super); +extern int enough(int level, int raid_disks, int avail_disks); +extern int ask(char *mesg); + extern char *human_size(long long bytes); +char *human_size_brief(long long bytes); + +extern void put_md_name(char *name); +extern char *get_md_name(int dev); + -- cgit