summaryrefslogtreecommitdiff
path: root/src/dbinc/heap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/dbinc/heap.h')
-rw-r--r--src/dbinc/heap.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/dbinc/heap.h b/src/dbinc/heap.h
new file mode 100644
index 00000000..ca3407e0
--- /dev/null
+++ b/src/dbinc/heap.h
@@ -0,0 +1,59 @@
+/*-
+ * See the file LICENSE for redistribution information.
+ *
+ * Copyright (c) 2010, 2012 Oracle and/or its affiliates. All rights reserved.
+ */
+
+#ifndef _DB_HEAP_H_
+#define _DB_HEAP_H_
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/* Forward structure declarations. */
+struct __heap; typedef struct __heap HEAP;
+struct __heap_cursor; typedef struct __heap_cursor HEAP_CURSOR;
+
+/*
+ * The in-memory, per-heap data structure.
+ */
+struct __heap { /* Heap access method. */
+
+ u_int32_t gbytes; /* Initial heap size. */
+ u_int32_t bytes; /* Initial heap size. */
+ u_int32_t region_size; /* Size of each region. */
+
+ db_pgno_t curregion; /* The region of the next insert. */
+ db_pgno_t maxpgno; /* Maximum page number of a fixed size heap. */
+ int curpgindx; /* The last used offset in the region's space bitmap. */
+};
+
+struct __heap_cursor {
+ /* struct __dbc_internal */
+ __DBC_INTERNAL
+
+ /* Heap private part */
+
+ u_int32_t flags;
+};
+
+#define HEAP_PG_FULL 3 /* No space on page. */
+#define HEAP_PG_GT66 2 /* Page greater than 66% full */
+#define HEAP_PG_GT33 1 /* Page greater than 33% full */
+#define HEAP_PG_LT33 0 /* Page less than 33% full */
+
+#define HEAP_PG_FULL_PCT 5 /* Less than 5% of page is free. */
+#define HEAP_PG_GT66_PCT 33 /* Less than 33% of page is free. */
+#define HEAP_PG_GT33_PCT 66 /* Less than 66% of page is free. */
+
+#if defined(__cplusplus)
+}
+#endif
+
+#include "dbinc_auto/heap_auto.h"
+#include "dbinc_auto/heap_ext.h"
+#include "dbinc/db_am.h"
+#endif
+
+