[BACK]Return to rf_configure.h CVS log [TXT][DIR] Up to [local] / sys / dev / raidframe

Annotation of sys/dev/raidframe/rf_configure.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: rf_configure.h,v 1.5 2002/12/16 07:01:03 tdeval Exp $ */
                      2: /*     $NetBSD: rf_configure.h,v 1.4 1999/03/02 03:18:49 oster Exp $   */
                      3:
                      4: /*
                      5:  * Copyright (c) 1995 Carnegie-Mellon University.
                      6:  * All rights reserved.
                      7:  *
                      8:  * Author: Mark Holland
                      9:  *
                     10:  * Permission to use, copy, modify and distribute this software and
                     11:  * its documentation is hereby granted, provided that both the copyright
                     12:  * notice and this permission notice appear in all copies of the
                     13:  * software, derivative works or modified versions, and any portions
                     14:  * thereof, and that both notices appear in supporting documentation.
                     15:  *
                     16:  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
                     17:  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
                     18:  * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     19:  *
                     20:  * Carnegie Mellon requests users of this software to return to
                     21:  *
                     22:  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
                     23:  *  School of Computer Science
                     24:  *  Carnegie Mellon University
                     25:  *  Pittsburgh PA 15213-3890
                     26:  *
                     27:  * any improvements or extensions that they make and grant Carnegie the
                     28:  * rights to redistribute these changes.
                     29:  */
                     30:
                     31: /*****************************************************************************
                     32:  *
                     33:  * rf_configure.h
                     34:  *
                     35:  * Header file for RAIDframe configuration in the kernel version only.
                     36:  * Configuration is invoked via ioctl rather than at boot time.
                     37:  *
                     38:  *****************************************************************************/
                     39:
                     40:
                     41: #ifndef        _RF__RF_CONFIGURE_H_
                     42: #define        _RF__RF_CONFIGURE_H_
                     43:
                     44: #include "rf_archs.h"
                     45: #include "rf_types.h"
                     46:
                     47: #include <sys/param.h>
                     48: #include <sys/proc.h>
                     49:
                     50: #include <sys/ioctl.h>
                     51:
                     52: /*
                     53:  * The RAIDframe configuration, passed down through an ioctl.
                     54:  * The driver can be reconfigured (with total loss of data) at any time,
                     55:  * but it must be shut down first.
                     56:  */
                     57: struct RF_Config_s {
                     58:        /* Number of rows, columns, and spare disks. */
                     59:        RF_RowCol_t              numRow, numCol, numSpare;
                     60:
                     61:        /* Device numbers for disks comprising array. */
                     62:        dev_t                    devs[RF_MAXROW][RF_MAXCOL];
                     63:
                     64:        /* Device names. */
                     65:        char                     devnames[RF_MAXROW][RF_MAXCOL][50];
                     66:
                     67:        /* Device numbers for spare disks. */
                     68:        dev_t                    spare_devs[RF_MAXSPARE];
                     69:
                     70:        /* Device names. */
                     71:        char                     spare_names[RF_MAXSPARE][50];
                     72:
                     73:        /* Sectors per stripe unit. */
                     74:        RF_SectorNum_t           sectPerSU;
                     75:
                     76:        /* Stripe units per parity unit. */
                     77:        RF_StripeNum_t           SUsPerPU;
                     78:
                     79:        /* Stripe units per reconstruction unit. */
                     80:        RF_StripeNum_t           SUsPerRU;
                     81:
                     82:        /* Identifies the RAID architecture to be used. */
                     83:        RF_ParityConfig_t        parityConfig;
                     84:
                     85:        /* 'f' = fifo, 'c' = cvscan, not used in kernel. */
                     86:        RF_DiskQueueType_t       diskQueueType;
                     87:
                     88:        /* # concurrent reqs to be sent to a disk.  Not used in kernel. */
                     89:        char                     maxOutstandingDiskReqs;
                     90:
                     91:        /* Space for specifying debug variables & their values. */
                     92:        char                     debugVars[RF_MAXDBGV][RF_MAXDBGVLEN];
                     93:
                     94:        /* Size in bytes of layout-specific info. */
                     95:        unsigned int             layoutSpecificSize;
                     96:
                     97:        /* A pointer to a layout-specific structure to be copied in. */
                     98:        void                    *layoutSpecific;
                     99:
                    100:        /* If !0, ignore many fatal configuration conditions. */
                    101:        int                      force;
                    102:        /*
                    103:         * "force" is used to override cases where the component labels
                    104:         * would indicate that configuration should not proceed without
                    105:         * user intervention.
                    106:        */
                    107: };
                    108:
                    109: #ifndef        _KERNEL
                    110: int   rf_MakeConfig(char *, RF_Config_t *);
                    111: int   rf_MakeLayoutSpecificNULL(FILE *, RF_Config_t *, void *);
                    112: int   rf_MakeLayoutSpecificDeclustered(FILE *, RF_Config_t *, void *);
                    113: void *rf_ReadSpareTable(RF_SparetWait_t *, char *);
                    114: #endif /* !_KERNEL */
                    115:
                    116: #endif /* !_RF__RF_CONFIGURE_H_ */

CVSweb