summaryrefslogtreecommitdiffstats
path: root/sys/geom/vinum/geom_vinum.h
diff options
context:
space:
mode:
authorle <le@FreeBSD.org>2004-06-12 21:16:10 +0000
committerle <le@FreeBSD.org>2004-06-12 21:16:10 +0000
commitcf31d52b42bd2309bb855b34e8260283eabfc570 (patch)
treeb37e9b83eff28125aba7f626ab2e3bea5b487658 /sys/geom/vinum/geom_vinum.h
parentf66d897510d4772f7c5efd834cd66203558e9cb5 (diff)
downloadFreeBSD-src-cf31d52b42bd2309bb855b34e8260283eabfc570.zip
FreeBSD-src-cf31d52b42bd2309bb855b34e8260283eabfc570.tar.gz
Add a first version of a GEOMified vinum.
Diffstat (limited to 'sys/geom/vinum/geom_vinum.h')
-rw-r--r--sys/geom/vinum/geom_vinum.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/sys/geom/vinum/geom_vinum.h b/sys/geom/vinum/geom_vinum.h
new file mode 100644
index 0000000..567c8b6
--- /dev/null
+++ b/sys/geom/vinum/geom_vinum.h
@@ -0,0 +1,79 @@
+/*-
+ * Copyright (c) 2004 Lukas Ertl
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _GEOM_VINUM_H_
+#define _GEOM_VINUM_H_
+
+#define ERRBUFSIZ 1024
+
+/* geom_vinum_drive.c */
+void gv_save_config_all(struct gv_softc *);
+void gv_save_config(struct g_consumer *, struct gv_drive *,
+ struct gv_softc *);
+
+/* geom_vinum_init.c */
+void gv_start_obj(struct g_geom *, struct gctl_req *);
+
+/* geom_vinum_list.c */
+void gv_ld(struct g_geom *, struct gctl_req *, struct sbuf *);
+void gv_lp(struct g_geom *, struct gctl_req *, struct sbuf *);
+void gv_ls(struct g_geom *, struct gctl_req *, struct sbuf *);
+void gv_lv(struct g_geom *, struct gctl_req *, struct sbuf *);
+void gv_list(struct g_geom *, struct gctl_req *);
+
+/* geom_vinum_rm.c */
+void gv_remove(struct g_geom *, struct gctl_req *);
+
+/* geom_vinum_state.c */
+int gv_sdstatemap(struct gv_plex *);
+int gv_set_drive_state(struct gv_drive *, int, int);
+int gv_set_sd_state(struct gv_sd *, int, int);
+void gv_update_sd_state(struct gv_sd *);
+void gv_update_plex_state(struct gv_plex *);
+void gv_update_vol_state(struct gv_volume *);
+
+/* geom_vinum_subr.c */
+void gv_adjust_freespace(struct gv_sd *, off_t);
+struct g_geom *find_vinum_geom(void);
+struct gv_drive *gv_find_drive(struct gv_softc *, char *);
+struct gv_plex *gv_find_plex(struct gv_softc *, char *);
+struct gv_sd *gv_find_sd(struct gv_softc *, char *);
+struct gv_volume *gv_find_vol(struct gv_softc *, char *);
+void gv_format_config(struct gv_softc *, struct sbuf *, int, char *);
+int gv_is_striped(struct gv_plex *);
+int gv_is_open(struct g_geom *);
+void gv_kill_thread(struct gv_plex *);
+int gv_object_type(struct gv_softc *, char *);
+void gv_parse_config(struct gv_softc *, u_char *, int);
+const char *gv_roughlength(off_t, int);
+int gv_sd_to_drive(struct gv_softc *, struct gv_drive *, struct gv_sd *,
+ char *, int);
+int gv_sd_to_plex(struct gv_plex *, struct gv_sd *, int);
+void gv_update_plex_config(struct gv_plex *);
+
+#endif /* !_GEOM_VINUM_H_ */
OpenPOWER on IntegriCloud