]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/dev/random/YarrowCoreLib/src/assertverify.h
xnu-201.tar.gz
[apple/xnu.git] / bsd / dev / random / YarrowCoreLib / src / assertverify.h
diff --git a/bsd/dev/random/YarrowCoreLib/src/assertverify.h b/bsd/dev/random/YarrowCoreLib/src/assertverify.h
new file mode 100644 (file)
index 0000000..feff724
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 1999, 2000-2001 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License").  You may not use this file except in compliance with the
+ * License.  Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
+ * 
+ * This Original Code and all software distributed under the License are
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef ASSERT_VERIFY_H
+#define ASSERT_VERIFY_H
+
+/******************************************************************************
+Written by: Jeffrey Richter
+Notices: Copyright (c) 1995-1997 Jeffrey Richter
+Purpose: Common header file containing handy macros and definitions used
+         throughout all the applications in the book.
+******************************************************************************/
+
+/* These header functions were copied from the cmnhdr.h file that accompanies 
+   Advanced Windows 3rd Edition by Jeffrey Richter */
+
+//////////////////////////// Assert/Verify Macros /////////////////////////////
+
+#if            defined(macintosh) || defined(__APPLE__)
+/* TBD */
+#define chFAIL(szMSG)                                          
+#define chASSERTFAIL(file,line,expr) 
+#else
+#define chFAIL(szMSG) {                                                   \
+      MessageBox(GetActiveWindow(), szMSG,                                \
+         __TEXT("Assertion Failed"), MB_OK | MB_ICONERROR);               \
+      DebugBreak();                                                       \
+   }
+
+/* Put up an assertion failure message box. */
+#define chASSERTFAIL(file,line,expr) {                                    \
+      TCHAR sz[128];                                                      \
+      wsprintf(sz, __TEXT("File %hs, line %d : %hs"), file, line, expr);  \
+      chFAIL(sz);                                                         \
+   }
+
+#endif /* macintosh */
+
+/* Put up a message box if an assertion fails in a debug build. */
+#ifdef _DEBUG
+#define chASSERT(x) if (!(x)) chASSERTFAIL(__FILE__, __LINE__, #x)
+#else
+#define chASSERT(x)
+#endif
+
+/* Assert in debug builds, but don't remove the code in retail builds. */
+#ifdef _DEBUG
+#define chVERIFY(x) chASSERT(x)
+#else
+#define chVERIFY(x) (x)
+#endif
+
+#endif /* ASSERT_VERIFY_H */