1N/A/*-
1N/A * See the file LICENSE for redistribution information.
1N/A *
1N/A * Copyright (c) 1996, 1997, 1998
1N/A * Sleepycat Software. All rights reserved.
1N/A */
1N/A
1N/A#include "config.h"
1N/A
1N/A#ifndef lint
1N/Astatic const char sccsid[] = "@(#)bt_conv.c 10.7 (Sleepycat) 9/20/98";
1N/A#endif /* not lint */
1N/A
1N/A#ifndef NO_SYSTEM_INCLUDES
1N/A#include <sys/types.h>
1N/A#endif
1N/A
1N/A#include "db_int.h"
1N/A#include "db_page.h"
1N/A#include "db_swap.h"
1N/A#include "btree.h"
1N/A
1N/A/*
1N/A * __bam_pgin --
1N/A * Convert host-specific page layout from the host-independent format
1N/A * stored on disk.
1N/A *
1N/A * PUBLIC: int __bam_pgin __P((db_pgno_t, void *, DBT *));
1N/A */
1N/Aint
1N/A__bam_pgin(pg, pp, cookie)
1N/A db_pgno_t pg;
1N/A void *pp;
1N/A DBT *cookie;
1N/A{
1N/A DB_PGINFO *pginfo;
1N/A
1N/A pginfo = (DB_PGINFO *)cookie->data;
1N/A if (!pginfo->needswap)
1N/A return (0);
1N/A return (pg == PGNO_METADATA ?
1N/A __bam_mswap(pp) : __db_pgin(pg, pginfo->db_pagesize, pp));
1N/A}
1N/A
1N/A/*
1N/A * __bam_pgout --
1N/A * Convert host-specific page layout to the host-independent format
1N/A * stored on disk.
1N/A *
1N/A * PUBLIC: int __bam_pgout __P((db_pgno_t, void *, DBT *));
1N/A */
1N/Aint
1N/A__bam_pgout(pg, pp, cookie)
1N/A db_pgno_t pg;
1N/A void *pp;
1N/A DBT *cookie;
1N/A{
1N/A DB_PGINFO *pginfo;
1N/A
1N/A pginfo = (DB_PGINFO *)cookie->data;
1N/A if (!pginfo->needswap)
1N/A return (0);
1N/A return (pg == PGNO_METADATA ?
1N/A __bam_mswap(pp) : __db_pgout(pg, pginfo->db_pagesize, pp));
1N/A}
1N/A
1N/A/*
1N/A * __bam_mswap --
1N/A * Swap the bytes on the btree metadata page.
1N/A *
1N/A * PUBLIC: int __bam_mswap __P((PAGE *));
1N/A */
1N/Aint
1N/A__bam_mswap(pg)
1N/A PAGE *pg;
1N/A{
1N/A u_int8_t *p;
1N/A
1N/A p = (u_int8_t *)pg;
1N/A
1N/A /* Swap the meta-data information. */
1N/A SWAP32(p); /* lsn.file */
1N/A SWAP32(p); /* lsn.offset */
1N/A SWAP32(p); /* pgno */
1N/A SWAP32(p); /* magic */
1N/A SWAP32(p); /* version */
1N/A SWAP32(p); /* pagesize */
1N/A SWAP32(p); /* maxkey */
1N/A SWAP32(p); /* minkey */
1N/A SWAP32(p); /* free */
1N/A SWAP32(p); /* flags */
1N/A
1N/A return (0);
1N/A}