⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vinumstate.h

📁 基于组件方式开发操作系统的OSKIT源代码
💻 H
字号:
/*- * Copyright (c) 1997, 1998 *	Nan Yang Computer Services Limited.  All rights reserved. * *  This software is distributed under the so-called ``Berkeley *  License'': * * 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 acknowledgement: *	This product includes software developed by Nan Yang Computer *      Services Limited. * 4. Neither the name of the Company 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 ``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 company 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. * * $Id: vinumstate.h,v 1.4.2.2 1999/04/06 09:05:58 grog Exp $ *//* * This file gets read by makestatetext to create text files * with the names of the states, so don't change the file * format  */enum volumestate {    volume_unallocated,    /* present but unused.  Must be 0 */    volume_uninit,    /* mentioned elsewhere but not known to the configuration */    volume_down,    /* The volume is up and functional, but not all plexes may be available */    volume_up,    volume_laststate = volume_up			    /* last value, for table dimensions */};enum plexstate {    /* An empty entry, not a plex at all.   */    plex_unallocated,    /* The plex has been referenced by a volume */    plex_referenced,    /*     * The plex has been allocated, but there configuration     * is not complete      */    plex_init,    /*     * A plex which has gone completely down because of     * I/O errors.      */    plex_faulty,    /*     * A plex which has been taken down by the     * administrator.      */    plex_down,    /* A plex which is being initialized */    plex_initializing,    /*     * *** The remaining states represent plexes which are     * at least partially up.  Keep these separate so that     * they can be checked more easily.      */    /*     * A plex entry which is at least partially up.  Not     * all subdisks are available, and an inconsistency     * has occurred.  If no other plex is uncorrupted,     * the volume is no longer consistent.      */    plex_corrupt,    plex_firstup = plex_corrupt,			    /* first "up" state */    /*     * A RAID-5 plex entry which is accessible, but one     * subdisk is down, requiring recovery for many     * I/O requests.      */    plex_degraded,    /*     * A plex which is really up, but which has a reborn     * subdisk which we don't completely trust, and     * which we don't want to read if we can avoid it      */    plex_flaky,    /*     * A plex entry which is completely up.  All subdisks     * are up.      */    plex_up,    plex_laststate = plex_up				    /* last value, for table dimensions */};/* subdisk states */enum sdstate {    /* An empty entry, not a subdisk at all. */    sd_unallocated,    /*     * A subdisk entry which has not been created     * completely.  Some fields may be empty.     */    sd_uninit,    /* The subdisk has been referenced by a plex */    sd_referenced,    /*     * A subdisk entry which has been created completely.     * All fields are correct, but the disk hasn't     * been updated.     */    sd_init,    /*     * A subdisk entry which has been created completely.     * All fields are correct, and the disk has been     * updated, but there is no data on the disk.     */    sd_empty,    /*     * A subdisk entry which has been created completely and     * which is currently being initialized      */    sd_initializing,    /* *** The following states represent invalid data */    /*     * A subdisk entry which has been created completely.     * All fields are correct, the config on disk has been     * updated, and the data was valid, but since then the     * drive has been taken down, and as a result updates     * have been missed.     */    sd_obsolete,    /*     * A subdisk entry which has been created completely.     * All fields are correct, the disk has been updated,     * and the data was valid, but since then the drive     * has been crashed and updates have been lost.     */    sd_stale,    /* *** The following states represent valid, inaccessible data */    /*     * A subdisk entry which has been created completely.     * All fields are correct, the disk has been updated,     * and the data was valid, but since then the drive     * has gone down.   No attempt has been made to write     * to the subdisk since the crash, so the data is valid.     */    sd_crashed,    /*     * A subdisk entry which was up, which contained     * valid data, and which was taken down by the     * administrator.  The data is valid.      */    sd_down,    /*     * *** This is invalid data (the subdisk previously had     * a numerically lower state), but it is currently in the     * process of being revived.  We can write but not read.      */    sd_reviving,    /*     * *** The following states represent accessible subdisks     * with valid data      */    /*     * A subdisk entry which has been created completely.     * All fields are correct, the disk has been updated,     * and the data was valid, but since then the drive     * has gone down and up again.  No updates were lost,     * but it is possible that the subdisk has been     * damaged.  We won't read from this subdisk if we     * have a choice.  If this is the only subdisk which     * covers this address space in the plex, we set its     * state to sd_up under these circumstances, so this     * status implies that there is another subdisk to     * fulfil the request.      */    sd_reborn,    /*     * A subdisk entry which has been created completely.     * All fields are correct, the disk has been updated,     * and the data is valid.     */    sd_up,    sd_laststate = sd_up				    /* last value, for table dimensions */};enum drivestate {    drive_unallocated,    /* present but unused.  Must be 0 */    drive_referenced,    /* just mentioned in some other config entry */    drive_down,    /* not accessible */    drive_up,    /* up and running */    drive_laststate = drive_up				    /* last value, for table dimensions */};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -