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

Annotation of sys/dev/raidframe/rf_general.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: rf_general.h,v 1.6 2003/04/27 11:22:54 ho Exp $       */
        !             2: /*     $NetBSD: rf_general.h,v 1.5 2000/03/03 02:04:48 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:  * rf_general.h -- Some general-use definitions.
        !            33:  */
        !            34:
        !            35: /*#define NOASSERT*/
        !            36:
        !            37: #ifndef        _RF__RF_GENERAL_H_
        !            38: #define        _RF__RF_GENERAL_H_
        !            39:
        !            40: /* Error reporting and handling. */
        !            41:
        !            42: #ifdef _KERNEL
        !            43: #include <sys/systm.h>         /* printf, snprintf, and friends. */
        !            44: #endif
        !            45:
        !            46: #define        RF_ERRORMSG(s)          printf((s))
        !            47: #define        RF_ERRORMSG1(s,a)       printf((s), (a))
        !            48: #define        RF_ERRORMSG2(s,a,b)     printf((s), (a), (b))
        !            49: #define        RF_ERRORMSG3(s,a,b,c)   printf((s), (a), (b), (c))
        !            50:
        !            51: extern char rf_panicbuf[2048];
        !            52: #define        RF_PANIC()                                                      \
        !            53: do {                                                                   \
        !            54:        snprintf(rf_panicbuf, sizeof rf_panicbuf,                       \
        !            55:            "RAIDframe error at line %d file %s",                       \
        !            56:            __LINE__, __FILE__);                                        \
        !            57:        panic(rf_panicbuf);                                             \
        !            58: } while (0)
        !            59:
        !            60: #ifdef _KERNEL
        !            61: #ifdef RF_ASSERT
        !            62: #undef RF_ASSERT
        !            63: #endif /* RF_ASSERT */
        !            64: #ifndef        NOASSERT
        !            65: #define        RF_ASSERT(_x_)                                                  \
        !            66: do {                                                                   \
        !            67:        if (!(_x_)) {                                                   \
        !            68:                snprintf(rf_panicbuf, sizeof rf_panicbuf,               \
        !            69:                    "RAIDframe error at line %d"                        \
        !            70:                    " file %s (failed asserting %s)\n", __LINE__,       \
        !            71:                     __FILE__, #_x_);                                   \
        !            72:                panic(rf_panicbuf);                                     \
        !            73:        }                                                               \
        !            74: } while (0)
        !            75: #else  /* !NOASSERT */
        !            76: #define        RF_ASSERT(x)            {/*noop*/}
        !            77: #endif /* !NOASSERT */
        !            78: #else  /* _KERNEL */
        !            79: #define        RF_ASSERT(x)            {/*noop*/}
        !            80: #endif /* _KERNEL */
        !            81:
        !            82: /* Random stuff. */
        !            83: #define        RF_MAX(a,b)             (((a) > (b)) ? (a) : (b))
        !            84: #define        RF_MIN(a,b)             (((a) < (b)) ? (a) : (b))
        !            85:
        !            86: /* Divide-by-zero check. */
        !            87: #define        RF_DB0_CHECK(a,b)       (((b)==0) ? 0 : (a)/(b))
        !            88:
        !            89: /* Get time of day. */
        !            90: #define        RF_GETTIME(_t)          microtime(&(_t))
        !            91:
        !            92: /*
        !            93:  * Zero memory - Not all bzero calls go through here, only
        !            94:  * those which in the kernel may have a user address.
        !            95:  */
        !            96:
        !            97: #define        RF_BZERO(_bp,_b,_l)     bzero(_b, _l)   /*
        !            98:                                                 * XXX This is likely
        !            99:                                                 * incorrect. GO
        !           100:                                                 */
        !           101:
        !           102: #define        RF_UL(x)                ((unsigned long)(x))
        !           103: #define        RF_PGMASK               RF_UL(NBPG-1)
        !           104: #define        RF_BLIP(x)              (NBPG - (RF_UL(x) & RF_PGMASK)) /*
        !           105:                                                                 * Bytes left
        !           106:                                                                 * in page.
        !           107:                                                                 */
        !           108: #define        RF_PAGE_ALIGNED(x)      ((RF_UL(x) & RF_PGMASK) == 0)
        !           109:
        !           110: #ifdef __STDC__
        !           111: #define        RF_STRING(_str_)        #_str_
        !           112: #else  /* __STDC__ */
        !           113: #define        RF_STRING(_str_)        "_str_"
        !           114: #endif /* __STDC__ */
        !           115:
        !           116: #endif /* !_RF__RF_GENERAL_H_ */

CVSweb