aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/c.h5
-rw-r--r--src/include/storage/bufpage.h43
2 files changed, 40 insertions, 8 deletions
diff --git a/src/include/c.h b/src/include/c.h
index eaf1ee7b03a..f56f1ea5da0 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -7,7 +7,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: c.h,v 1.14 1997/08/12 20:16:17 momjian Exp $
+ * $Id: c.h,v 1.15 1997/08/24 23:07:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -686,8 +686,7 @@ typedef struct Exception {
* Does string copy, and forces terminating NULL
*/
/* we do this so if the macro is used in an if action, it will work */
-#define strNcpy(dest,src,len) do \
- {strncpy((dest),(src),(len));*((dest) + (len)) = '\0';} while (0)
+#define strNcpy(dst,src,len) (strncpy((dst),(src),(len)),*((dst)+(len))='\0',dst)
/* ----------------------------------------------------------------
* Section 9: externs
diff --git a/src/include/storage/bufpage.h b/src/include/storage/bufpage.h
index 7304b6115aa..b0408106ef7 100644
--- a/src/include/storage/bufpage.h
+++ b/src/include/storage/bufpage.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: bufpage.h,v 1.8 1997/08/19 21:39:47 momjian Exp $
+ * $Id: bufpage.h,v 1.9 1997/08/24 23:08:01 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -233,17 +233,50 @@ typedef enum {
#define PageGetSpecialPointer(page) \
(AssertMacro(PageIsValid(page)) ? \
(char *) ((char *) (page) + ((PageHeader) (page))->pd_special) \
- : (char *) 0)
+ : (char *)0 )
+/*
+ * PageGetItem --
+ * Retrieves an item on the given page.
+ *
+ * Note:
+ * This does change the status of any of the resources passed.
+ * The semantics may change in the future.
+ */
+#define PageGetItem(page, itemId) \
+ (AssertMacro(PageIsValid(page)) ? \
+ AssertMacro(itemId->lp_flags & LP_USED) ? \
+ (Item)(((char *)page) + itemId->lp_off) : false : false)
+
+/*
+ * BufferGetPageSize --
+ * Returns the page size within a buffer.
+ *
+ * Notes:
+ * Assumes buffer is valid.
+ *
+ * The buffer can be a raw disk block and need not contain a valid
+ * (formatted) disk page.
+ */
+/* XXX dig out of buffer descriptor */
+#define BufferGetPageSize(buffer) \
+ (AssertMacro(BufferIsValid(buffer)) ? \
+ AssertMacro(PageSizeIsValid(pageSize)) ? \
+ ((Size)BLCKSZ) : false : false)
+
+/*
+ * BufferGetPage --
+ * Returns the page associated with a buffer.
+ */
+#define BufferGetPage(buffer) ((Page)BufferGetBlock(buffer))
+
+
/* ----------------------------------------------------------------
* extern declarations
* ----------------------------------------------------------------
*/
-extern Size BufferGetPageSize(Buffer buffer);
-extern Page BufferGetPage(Buffer buffer);
extern void PageInit(Page page, Size pageSize, Size specialSize);
-extern Item PageGetItem(Page page, ItemId itemId);
extern OffsetNumber PageAddItem(Page page, Item item, Size size,
OffsetNumber offsetNumber, ItemIdFlags flags);
extern Page PageGetTempPage(Page page, Size specialSize);