1/* 2 * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. The rights granted to you under the License 10 * may not be used to create, or enable the creation or redistribution of, 11 * unlawful or unlicensed copies of an Apple operating system, or to 12 * circumvent, violate, or enable the circumvention or violation of, any 13 * terms of an Apple operating system software license agreement. 14 * 15 * Please obtain a copy of the License at 16 * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 * 18 * The Original Code and all software distributed under the License are 19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 * Please see the License for the specific language governing rights and 24 * limitations under the License. 25 * 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 */ 28/* 29 * @OSF_COPYRIGHT@ 30 */ 31 32#ifndef MACH_KERNEL 33#ifdef ASSERTIONS 34#define assert(cond) \ 35 ((void) ((cond) ? 0 : panic("%sassertion: %s", my_name, # cond))) 36#endif 37#ifndef ASSERTIONS 38#define assert(cond) do {} while(0) 39#endif 40#endif 41 42#ifndef MACH_KERNEL 43#define Panic(aargh) panic("%s[%d]: %s", my_name, dp_thread_id(), aargh) 44#else 45#define Panic(aargh) panic("%s[KERNEL]: %s", my_name, aargh) 46#endif 47 48#define VSTATS_ACTION(l, stmt) \ 49 do { VSTATS_LOCK(l); stmt; VSTATS_UNLOCK(l); } while (0) 50 51#if !defined(VAGUE_STATS) || (VAGUE_STATS > 0) 52#define VSTATS_LOCK_DECL(name) 53#define VSTATS_LOCK(l) 54#define VSTATS_UNLOCK(l) 55#define VSTATS_LOCK_INIT(l) 56#else 57 58extern lck_grp_t default_pager_lck_grp; 59extern lck_attr_t default_pager_lck_attr; 60 61 62#define VSTATS_LOCK_DECL(name) struct lck_mtx_t name; 63#define VSTATS_LOCK(l) lck_mtx_lock(l) 64#define VSTATS_UNLOCK(l) lck_mtx_unlock(l) 65#define VSTATS_LOCK_INIT(l) lck_mtx_init(l, &default_pager_lck_grp, &default_pager_lck_attr ) 66#endif /* VAGUE_STATS */ 67 68