mem0dbg.ic
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:3k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /************************************************************************
  2. The memory management: the debug code. This is not an independent
  3. compilation module but is included in mem0mem.*.
  4. (c) 1994, 1995 Innobase Oy
  5. Created 6/8/1994 Heikki Tuuri
  6. *************************************************************************/
  7. extern mutex_t mem_hash_mutex;
  8. extern ulint mem_current_allocated_memory;
  9. /**********************************************************************
  10. Initializes an allocated memory field in the debug version. */
  11. void
  12. mem_field_init(
  13. /*===========*/
  14. byte* buf, /* in: memory field */
  15. ulint n); /* in: how many bytes the user requested */
  16. /**********************************************************************
  17. Erases an allocated memory field in the debug version. */
  18. void
  19. mem_field_erase(
  20. /*============*/
  21. byte* buf, /* in: memory field */
  22. ulint n); /* in: how many bytes the user requested */
  23. /*******************************************************************
  24. Initializes a buffer to a random combination of hex BA and BE.
  25. Used to initialize allocated memory. */
  26. void
  27. mem_init_buf(
  28. /*=========*/
  29. byte*   buf,    /* in: pointer to buffer */
  30. ulint    n);     /* in: length of buffer */
  31. /*******************************************************************
  32. Initializes a buffer to a random combination of hex DE and AD.
  33. Used to erase freed memory.*/
  34. void
  35. mem_erase_buf(
  36. /*==========*/
  37. byte*   buf,    /* in: pointer to buffer */
  38. ulint    n);     /* in: length of buffer */
  39. /*******************************************************************
  40. Inserts a created memory heap to the hash table of
  41. current allocated memory heaps.
  42. Initializes the hash table when first called. */
  43. void
  44. mem_hash_insert(
  45. /*============*/
  46. mem_heap_t* heap,    /* in: the created heap */
  47. char* file_name, /* in: file name of creation */
  48. ulint line);    /* in: line where created */
  49. /*******************************************************************
  50. Removes a memory heap (which is going to be freed by the caller)
  51. from the list of live memory heaps. Returns the size of the heap
  52. in terms of how much memory in bytes was allocated for the user of
  53. the heap (not the total space occupied by the heap).
  54. Also validates the heap.
  55. NOTE: This function does not free the storage occupied by the
  56. heap itself, only the node in the list of heaps. */
  57. void
  58. mem_hash_remove(
  59. /*============*/
  60. mem_heap_t* heap,    /* in: the heap to be freed */
  61. char* file_name, /* in: file name of freeing */
  62. ulint line);    /* in: line where freed */
  63. void
  64. mem_field_header_set_len(byte* field, ulint len);
  65. ulint
  66. mem_field_header_get_len(byte* field);
  67. void
  68. mem_field_header_set_check(byte* field, ulint check);
  69. ulint
  70. mem_field_header_get_check(byte* field);
  71. void
  72. mem_field_trailer_set_check(byte* field, ulint check);
  73. ulint
  74. mem_field_trailer_get_check(byte* field);