qam_conv.c
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*-
  2.  * See the file LICENSE for redistribution information.
  3.  *
  4.  * Copyright (c) 1999-2002
  5.  * Sleepycat Software.  All rights reserved.
  6.  */
  7. #include "db_config.h"
  8. #ifndef lint
  9. static const char revid[] = "$Id: qam_conv.c,v 11.14 2002/08/06 06:17:02 bostic Exp $";
  10. #endif /* not lint */
  11. #ifndef NO_SYSTEM_INCLUDES
  12. #include <sys/types.h>
  13. #endif
  14. #include "db_int.h"
  15. #include "dbinc/db_page.h"
  16. #include "dbinc/db_swap.h"
  17. #include "dbinc/db_am.h"
  18. /*
  19.  * __qam_mswap --
  20.  * Swap the bytes on the queue metadata page.
  21.  *
  22.  * PUBLIC: int __qam_mswap __P((PAGE *));
  23.  */
  24. int
  25. __qam_mswap(pg)
  26. PAGE *pg;
  27. {
  28. u_int8_t *p;
  29.  __db_metaswap(pg);
  30.  p = (u_int8_t *)pg + sizeof(DBMETA);
  31. SWAP32(p); /* first_recno */
  32. SWAP32(p); /* cur_recno */
  33. SWAP32(p); /* re_len */
  34. SWAP32(p); /* re_pad */
  35. SWAP32(p); /* rec_page */
  36. SWAP32(p); /* page_ext */
  37. p += 91 * sizeof(u_int32_t); /* unused */
  38. SWAP32(p); /* crypto_magic */
  39. return (0);
  40. }
  41. /*
  42.  * __qam_pgin_out --
  43.  * Convert host-specific page layout to/from the host-independent format
  44.  * stored on disk.
  45.  *  We only need to fix up a few fields in the header
  46.  *
  47.  * PUBLIC: int __qam_pgin_out __P((DB_ENV *, db_pgno_t, void *, DBT *));
  48.  */
  49. int
  50. __qam_pgin_out(dbenv, pg, pp, cookie)
  51. DB_ENV *dbenv;
  52. db_pgno_t pg;
  53. void *pp;
  54. DBT *cookie;
  55. {
  56. DB_PGINFO *pginfo;
  57. QPAGE *h;
  58. COMPQUIET(pg, 0);
  59. COMPQUIET(dbenv, NULL);
  60. pginfo = (DB_PGINFO *)cookie->data;
  61. if (!F_ISSET(pginfo, DB_AM_SWAP))
  62. return (0);
  63. h = pp;
  64. if (h->type == P_QAMMETA)
  65.     return (__qam_mswap(pp));
  66. M_32_SWAP(h->lsn.file);
  67. M_32_SWAP(h->lsn.offset);
  68. M_32_SWAP(h->pgno);
  69. return (0);
  70. }