db

qam_conv.c

Go to the documentation of this file.
00001 /*-
00002  * See the file LICENSE for redistribution information.
00003  *
00004  * Copyright (c) 1999, 2000
00005  * Sleepycat Software. All rights reserved.
00006  */
00007 
00008 #include "config.h"
00009 
00010 #ifndef lint
00011 static const char revid[] = "$Id: qam__conv_8c-source.html,v 1.1 2008年06月08日 10:21:42 sebdiaz Exp $";
00012 #endif /* not lint */
00013 
00014 #ifndef NO_SYSTEM_INCLUDES
00015 #include <sys/types.h>
00016 #endif
00017 
00018 #include "db_int.h"
00019 #include "db_page.h"
00020 #include "qam.h"
00021 #include "db_swap.h"
00022 #include "db_am.h"
00023 
00024 /*
00025  * CDB___qam_mswap --
00026  * Swap the bytes on the queue metadata page.
00027  *
00028  * PUBLIC: int CDB___qam_mswap __P((PAGE *));
00029  */
00030 int
00031 CDB___qam_mswap(pg)
00032 PAGE *pg;
00033 {
00034 u_int8_t *p;
00035 
00036 CDB___db_metaswap(pg);
00037 
00038 p = (u_int8_t *)pg + sizeof(DBMETA);
00039 
00040 SWAP32(p); /* start */
00041 SWAP32(p); /* first_recno */
00042 SWAP32(p); /* cur_recno */
00043 SWAP32(p); /* re_len */
00044 SWAP32(p); /* re_pad */
00045 SWAP32(p); /* rec_page */
00046 
00047 return (0);
00048 }
00049 
00050 /*
00051  * CDB___qam_pgin_out --
00052  * Convert host-specific page layout to/from the host-independent format
00053  * stored on disk.
00054  * We only need to fix up a few fields in the header
00055  *
00056  * PUBLIC: int CDB___qam_pgin_out __P((DB_ENV *, db_pgno_t, void *, DBT *));
00057  */
00058 int
00059 CDB___qam_pgin_out(dbenv, pg, pp, cookie)
00060 DB_ENV *dbenv;
00061 db_pgno_t pg;
00062 void *pp;
00063 DBT *cookie;
00064 {
00065 DB_PGINFO *pginfo;
00066 QPAGE *h;
00067 
00068 COMPQUIET(pg, 0);
00069 COMPQUIET(dbenv, NULL);
00070 pginfo = (DB_PGINFO *)cookie->data;
00071 if (!pginfo->needswap)
00072 return (0);
00073 
00074 h = pp;
00075 if (TYPE(h) == P_QAMMETA)
00076 return (CDB___qam_mswap(pp));
00077 
00078 M_32_SWAP(h->lsn.file);
00079 M_32_SWAP(h->lsn.offset);
00080 M_32_SWAP(h->pgno);
00081 
00082 return (0);
00083 }

Generated on Sun Jun 8 10:56:39 2008 for GNUmifluz by doxygen 1.5.5

AltStyle によって変換されたページ (->オリジナル) /