186d7f5d3SJohn Marino /* $NetBSD: report.h,v 1.1.1.2 2009/12/02 00:25:41 haad Exp $ */ 286d7f5d3SJohn Marino 386d7f5d3SJohn Marino /* 486d7f5d3SJohn Marino * Copyright (C) 2002-2004 Sistina Software, Inc. All rights reserved. 586d7f5d3SJohn Marino * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved. 686d7f5d3SJohn Marino * 786d7f5d3SJohn Marino * This file is part of LVM2. 886d7f5d3SJohn Marino * 986d7f5d3SJohn Marino * This copyrighted material is made available to anyone wishing to use, 1086d7f5d3SJohn Marino * modify, copy, or redistribute it subject to the terms and conditions 1186d7f5d3SJohn Marino * of the GNU Lesser General Public License v.2.1. 1286d7f5d3SJohn Marino * 1386d7f5d3SJohn Marino * You should have received a copy of the GNU Lesser General Public License 1486d7f5d3SJohn Marino * along with this program; if not, write to the Free Software Foundation, 1586d7f5d3SJohn Marino * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1686d7f5d3SJohn Marino */ 1786d7f5d3SJohn Marino 1886d7f5d3SJohn Marino #ifndef _LVM_REPORT_H 1986d7f5d3SJohn Marino #define _LVM_REPORT_H 2086d7f5d3SJohn Marino 2186d7f5d3SJohn Marino #include "metadata-exported.h" 2286d7f5d3SJohn Marino 2386d7f5d3SJohn Marino typedef enum { 2486d7f5d3SJohn Marino LVS = 1, 2586d7f5d3SJohn Marino PVS = 2, 2686d7f5d3SJohn Marino VGS = 4, 2786d7f5d3SJohn Marino SEGS = 8, 2886d7f5d3SJohn Marino PVSEGS = 16, 2986d7f5d3SJohn Marino LABEL = 32 3086d7f5d3SJohn Marino } report_type_t; 3186d7f5d3SJohn Marino 3286d7f5d3SJohn Marino struct field; 3386d7f5d3SJohn Marino struct report_handle; 3486d7f5d3SJohn Marino 3586d7f5d3SJohn Marino typedef int (*field_report_fn) (struct report_handle * dh, struct field * field, 3686d7f5d3SJohn Marino const void *data); 3786d7f5d3SJohn Marino 3886d7f5d3SJohn Marino void *report_init(struct cmd_context *cmd, const char *format, const char *keys, 3986d7f5d3SJohn Marino report_type_t *report_type, const char *separator, 4086d7f5d3SJohn Marino int aligned, int buffered, int headings, int field_prefixes, 4186d7f5d3SJohn Marino int quoted, int columns_as_rows); 4286d7f5d3SJohn Marino void report_free(void *handle); 4386d7f5d3SJohn Marino int report_object(void *handle, struct volume_group *vg, 4486d7f5d3SJohn Marino struct logical_volume *lv, struct physical_volume *pv, 4586d7f5d3SJohn Marino struct lv_segment *seg, struct pv_segment *pvseg); 4686d7f5d3SJohn Marino int report_output(void *handle); 4786d7f5d3SJohn Marino 4886d7f5d3SJohn Marino #endif 49