]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/i386/param.h
xnu-7195.101.1.tar.gz
[apple/xnu.git] / bsd / i386 / param.h
index dcd87678243fdee28d59516237c85e54ae13c9e7..bff89a5168c4738f7e8285b56ec9873dbb0be8ca 100644 (file)
@@ -1,23 +1,29 @@
 /*
- * Copyright (c) 2000-2002, 2007 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2010 Apple 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
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ *
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ *
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ *
+ * The 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@
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*-
  * Copyright (c) 1990, 1993
 #ifndef _I386_PARAM_H_
 #define _I386_PARAM_H_
 
+#include <i386/_param.h>
+
 /*
  * Round p (pointer or byte index) up to a correctly-aligned value for all
- * data types (int, long, ...).   The result is unsigned long and must be
+ * data types (int, long, ...).   The result is unsigned int and must be
  * cast to any desired pointer type.
  */
-#define        ALIGNBYTES      (sizeof(unsigned long) - 1)
-#define        ALIGN(p)        ((unsigned long)((char *)(p) + ALIGNBYTES) &~ ALIGNBYTES)
+#define ALIGNBYTES      __DARWIN_ALIGNBYTES
+#define ALIGN(p)        __DARWIN_ALIGN(p)
 
-#define        NBPG            4096            /* bytes/page */
-#define        PGOFSET         (NBPG-1)        /* byte offset into page */
-#define        PGSHIFT         12              /* LOG2(NBPG) */
+#define NBPG            4096            /* bytes/page */
+#define PGOFSET         (NBPG-1)        /* byte offset into page */
+#define PGSHIFT         12              /* LOG2(NBPG) */
 
-#define        DEV_BSIZE       512
-#define        DEV_BSHIFT      9               /* log2(DEV_BSIZE) */
-#define BLKDEV_IOSIZE  2048
-#define        MAXPHYS         (128 * 1024)    /* max raw I/O transfer size */
+#define DEV_BSIZE       512
+#define DEV_BSHIFT      9               /* log2(DEV_BSIZE) */
+#define BLKDEV_IOSIZE   2048
+#define MAXPHYS         (128 * 1024)    /* max raw I/O transfer size */
 
-#define        CLSIZE          1
-#define        CLSIZELOG2      0
+#define CLSIZE          1
+#define CLSIZELOG2      0
 
 /*
  * Constants related to network buffer management.
  * clusters (MAPPED_MBUFS), MCLBYTES must also be an integral multiple
  * of the hardware page size.
  */
-#define        MSIZE           256             /* size of an mbuf */
-#define        MCLBYTES        2048            /* large enough for ether MTU */
-#define        MCLSHIFT        11
-#define        MCLOFSET        (MCLBYTES - 1)
+#define MSIZESHIFT      8                       /* 256 */
+#define MSIZE           (1 << MSIZESHIFT)       /* size of an mbuf */
+#define MCLSHIFT        11                      /* 2048 */
+#define MCLBYTES        (1 << MCLSHIFT)         /* size of an mbuf cluster */
+#define MBIGCLSHIFT     12                      /* 4096 */
+#define MBIGCLBYTES     (1 << MBIGCLSHIFT)      /* size of a big cluster */
+#define M16KCLSHIFT     14                      /* 16384 */
+#define M16KCLBYTES     (1 << M16KCLSHIFT)      /* size of a jumbo cluster */
+
+#define MCLOFSET        (MCLBYTES - 1)
 #ifndef NMBCLUSTERS
-#ifdef GATEWAY
-#define        NMBCLUSTERS     ((1024 * 1024) / MCLBYTES)      /* cl map size: 1MB */
-#else
-#define        NMBCLUSTERS     ((1024 * 512) / MCLBYTES)       /* cl map size: 0.5MB */
-#endif
+#define NMBCLUSTERS     ((1024 * 1024) / MCLBYTES)      /* cl map size: 1MB */
 #endif
 
 /*
  * Some macros for units conversion
  */
 /* Core clicks (NeXT_page_size bytes) to segments and vice versa */
-#define        ctos(x) (x)
-#define        stoc(x) (x)
+#define ctos(x) (x)
+#define stoc(x) (x)
 
 /* Core clicks (4096 bytes) to disk blocks */
-#define        ctod(x) ((x)<<(PGSHIFT-DEV_BSHIFT))
-#define        dtoc(x) ((x)>>(PGSHIFT-DEV_BSHIFT))
-#define        dtob(x) ((x)<<DEV_BSHIFT)
+#define ctod(x) ((x)<<(PGSHIFT-DEV_BSHIFT))
+#define dtoc(x) ((x)>>(PGSHIFT-DEV_BSHIFT))
+#define dtob(x) ((x)<<DEV_BSHIFT)
 
 /* clicks to bytes */
-#define        ctob(x) ((x)<<PGSHIFT)
+#define ctob(x) ((x)<<PGSHIFT)
 
 /* bytes to clicks */
-#define        btoc(x) (((unsigned)(x)+(NBPG-1))>>PGSHIFT)
+#define btoc(x) (((unsigned)(x)+(NBPG-1))>>PGSHIFT)
 
 #ifdef __APPLE__
 #define  btodb(bytes, devBlockSize)         \
-        ((unsigned)(bytes) / devBlockSize)
+       ((unsigned)(bytes) / devBlockSize)
 #define  dbtob(db, devBlockSize)            \
-        ((unsigned)(db) * devBlockSize)
+       ((unsigned)(db) * devBlockSize)
 #else
-#define        btodb(bytes)                    /* calculates (bytes / DEV_BSIZE) */ \
+#define btodb(bytes)                    /* calculates (bytes / DEV_BSIZE) */ \
        ((unsigned)(bytes) >> DEV_BSHIFT)
-#define        dbtob(db)                       /* calculates (db * DEV_BSIZE) */ \
+#define dbtob(db)                       /* calculates (db * DEV_BSIZE) */ \
        ((unsigned)(db) << DEV_BSHIFT)
 #endif
 
  * add an entry to cdevsw/bdevsw for that purpose.
  * For now though just use DEV_BSIZE.
  */
-#define        bdbtofsb(bn)    ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
+#define bdbtofsb(bn)    ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE))
 
 /*
  * Macros to decode (and encode) processor status word.
  */
-#define STATUS_WORD(rpl, ipl)  (((ipl) << 8) | (rpl))
-#define        USERMODE(x)             (((x) & 3) == 3)
-#define        BASEPRI(x)              (((x) & (255 << 8)) == 0)
+#define STATUS_WORD(rpl, ipl)   (((ipl) << 8) | (rpl))
+#define USERMODE(x)             (((x) & 3) == 3)
+#define BASEPRI(x)              (((x) & (255 << 8)) == 0)
 
 
-#if    defined(KERNEL) || defined(STANDALONE)
-#define        DELAY(n) delay(n)
+#if     defined(KERNEL) || defined(STANDALONE)
+#define DELAY(n) delay(n)
 
-#else  /* defined(KERNEL) || defined(STANDALONE) */
-#define        DELAY(n)        { register int N = (n); while (--N > 0); }
-#endif /* defined(KERNEL) || defined(STANDALONE) */
+#else   /* defined(KERNEL) || defined(STANDALONE) */
+#define DELAY(n)        { int N = (n); while (--N > 0); }
+#endif  /* defined(KERNEL) || defined(STANDALONE) */
 
 #endif /* _I386_PARAM_H_ */