00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include "db_config.h"
00011
00012 #ifndef NO_SYSTEM_INCLUDES
00013 #include <sys/types.h>
00014 #endif
00015
00016 #include "db_int.h"
00017 #include "dbinc/db_page.h"
00018 #include "dbinc/db_swap.h"
00019 #include "dbinc/db_am.h"
00020 #include "dbinc/qam.h"
00021
00022
00023
00024
00025
00026
00027
00028 int
00029 __qam_mswap(pg)
00030 PAGE *pg;
00031 {
00032 u_int8_t *p;
00033
00034 __db_metaswap(pg);
00035
00036 p = (u_int8_t *)pg + sizeof(DBMETA);
00037
00038 SWAP32(p);
00039 SWAP32(p);
00040 SWAP32(p);
00041 SWAP32(p);
00042 SWAP32(p);
00043 SWAP32(p);
00044 p += 91 * sizeof(u_int32_t);
00045 SWAP32(p);
00046
00047 return (0);
00048 }
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058 int
00059 __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 (!F_ISSET(pginfo, DB_AM_SWAP))
00072 return (0);
00073
00074 h = pp;
00075 if (h->type == P_QAMMETA)
00076 return (__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 }