]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/sys/malloc.h
xnu-517.3.15.tar.gz
[apple/xnu.git] / bsd / sys / malloc.h
index 152058bcb6ee87424ac106fcb6a16dafa901dee4..763e84c9e1d073a710bbe641e70aa027713b0571 100644 (file)
@@ -1,21 +1,24 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2003 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.
+ * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
  * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * 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. 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.
+ * 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_LICENSE_HEADER_END@
  */
@@ -59,6 +62,8 @@
 #ifndef _SYS_MALLOC_H_
 #define        _SYS_MALLOC_H_
 
+#include <sys/appleapiopts.h>
+
 #define KMEMSTATS
 
 /*
@@ -66,6 +71,7 @@
  */
 #define        M_WAITOK        0x0000
 #define        M_NOWAIT        0x0001
+#define M_ZERO          0x0004          /* bzero the allocation */
 
 /*
  * Types of memory to be allocated (not all are used by us)
 #define        M_OFILETABL     73      /* Open file descriptor table */
 #define        M_MCLUST        74      /* mbuf cluster buffers */
 #define        M_HFSMNT        75      /* HFS mount structure */
-#define        M_HFSNODE       76      /* HFS private node structre */
-#define        M_HFSFMETA      77      /* HFS file meta data */
+#define        M_HFSNODE       76      /* HFS catalog node */
+#define        M_HFSFORK       77      /* HFS file fork */
 #define M_VOLFSMNT     78  /* VOLFS mount structure */
 #define        M_VOLFSNODE     79      /* VOLFS private node part */
 #define        M_TEMP          80      /* misc temporary data buffers */
+#define        M_KTRACE        M_TEMP  /* ktrace buffers */
 #define        M_SECA          81      /* security associations, key management */
 #define M_DEVFS                82
 #define M_IPFW         83      /* IP Forwarding/NAT */
-#define M_UDFNODE              84      /* UDF inodes */
-#define M_UDFMNT               85      /* UDF mount structures */
-#define M_IP6NDP               86      /* IPv6 Neighbour Discovery*/
-#define M_IP6OPT               87      /* IPv6 options management */
-#define M_NATPT                88      /* KAME NAT feature */
+#define M_UDFNODE      84      /* UDF inodes */
+#define M_UDFMNT       85      /* UDF mount structures */
+#define M_IP6NDP       86      /* IPv6 Neighbour Discovery*/
+#define M_IP6OPT       87      /* IPv6 options management */
+#define M_IP6MISC      88      /* IPv6 misc. memory */
+#define M_TSEGQ                89      /* TCP segment queue entry */
+#define M_IGMP         90
+#define M_JNL_JNL   91  /* Journaling: "struct journal" */
+#define M_JNL_TR    92  /* Journaling: "struct transaction" */ 
+#define        M_SPECINFO      93      /* special file node */
+#define M_KQUEUE       94      /* kqueue */
 
-#define        M_LAST          89      /* Must be last type + 1 */
+#define        M_LAST          95      /* Must be last type + 1 */
 
 /* Strings corresponding to types of memory */
 /* Must be in synch with the #defines above */
        "ofile tabl",   /* 73 M_OFILETABL */ \
        "mbuf clust",   /* 74 M_MCLUST */ \
        "HFS mount",    /* 75 M_HFSMNT */ \
-       "HFS node",             /* 76 M_HFSNODE */ \
-       "HFS fmeta",    /* 77 M_HFSFMETA */ \
+       "HFS node",     /* 76 M_HFSNODE */ \
+       "HFS fork",     /* 77 M_HFSFORK */ \
        "VOLFS mount",  /* 78 M_VOLFSMNT */ \
        "VOLFS node",   /* 79 M_VOLFSNODE */ \
        "temp",         /* 80 M_TEMP */ \
        "DEVFS",        /* 82 M_DEVFS */ \
        "IpFw/IpAcct",  /* 83 M_IPFW */ \
        "UDF node",     /* 84 M_UDFNODE */ \
-       "UDF mount"     /* 85 M_UDFMNT */ \
+       "UDF mount",    /* 85 M_UDFMNT */ \
        "IPv6 NDP",     /* 86 M_IP6NDP */ \
        "IPv6 options", /* 87 M_IP6OPT */ \
-       "NATPT",        /* 88 M_NATPT */ \
+       "IPv6 Misc",    /* 88 M_IP6MISC */\
+       "TCP Segment Q",/* 89 M_TSEGQ */\
+       "IGMP state",   /* 90 M_IGMP */\
+       "Journal",    /* 91 M_JNL_JNL */\
+       "Transaction",    /* 92 M_JNL_TR */\
+       "specinfo",             /* 93 M_SPECINFO */\
+       "kqueue"                /* 94 M_KQUEUE */\
 }
 
 struct kmemstats {
@@ -270,7 +289,9 @@ struct kmemstats {
 };
 
 #ifdef KERNEL
+#ifdef __APPLE_API_PRIVATE
 extern struct kmemstats kmemstats[];
+#endif /* __APPLE_API_PRIVATE */
 
 /*
  * The malloc/free primatives used