/* * Copyright (c) 1997-1999 Erez Zadok * Copyright (c) 1989 Jan-Simon Pendry * Copyright (c) 1989 Imperial College of Science, Technology & Medicine * Copyright (c) 1989 The Regents of the University of California. * All rights reserved. * * This code is derived from software contributed to Berkeley by * Jan-Simon Pendry at Imperial College, London. * * 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgment: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * * %W% (Berkeley) %G% * * $Id: fsi_data.h,v 1.2 1999/01/10 21:54:27 ezk Exp $ * */ typedef struct auto_tree auto_tree; typedef struct automount automount; typedef struct dict dict; typedef struct dict_data dict_data; typedef struct dict_ent dict_ent; typedef struct disk_fs disk_fs; typedef struct ether_if ether_if; typedef struct fsmount fsmount; typedef struct host host; typedef struct ioloc ioloc; typedef struct fsi_mount fsi_mount; /* * Automount tree */ struct automount { qelem a_q; ioloc *a_ioloc; char *a_name; /* Automount key */ char *a_volname; /* Equivalent volume to be referenced */ char *a_symlink; /* Symlink representation */ char *a_opts; /* opts for mounting */ char *a_hardwiredfs; /* hack to bypass bogus fs definitions */ qelem *a_mount; /* Tree representation */ dict_ent *a_mounted; }; /* * List of automount trees */ struct auto_tree { qelem t_q; ioloc *t_ioloc; char *t_defaults; qelem *t_mount; }; /* * A host */ struct host { qelem q; int h_mask; ioloc *h_ioloc; fsmount *h_netroot, *h_netswap; #define HF_HOST 0 char *h_hostname; /* The full name of the host */ char *h_lochost; /* The name of the host with local domains stripped */ char *h_hostpath; /* The filesystem path to the host (cf compute_hostpath) */ #define HF_ETHER 1 qelem *h_ether; #define HF_CONFIG 2 qelem *h_config; #define HF_ARCH 3 char *h_arch; #define HF_CLUSTER 4 char *h_cluster; #define HF_OS 5 char *h_os; qelem *h_disk_fs; qelem *h_mount; }; /* * An ethernet interface */ struct ether_if { qelem e_q; int e_mask; ioloc *e_ioloc; char *e_if; #define EF_INADDR 0 struct in_addr e_inaddr; #define EF_NETMASK 1 u_long e_netmask; #define EF_HWADDR 2 char *e_hwaddr; }; /* * Disk filesystem structure. * * If the DF_* numbers are changed * disk_fs_strings in analyze.c will * need updating. */ struct disk_fs { qelem d_q; int d_mask; ioloc *d_ioloc; host *d_host; char *d_mountpt; char *d_dev; #define DF_FSTYPE 0 char *d_fstype; #define DF_OPTS 1 char *d_opts; #define DF_DUMPSET 2 char *d_dumpset; #define DF_PASSNO 3 int d_passno; #define DF_FREQ 4 int d_freq; #define DF_MOUNT 5 qelem *d_mount; #define DF_LOG 6 char *d_log; }; #define DF_REQUIRED ((1<