mem0dbg.ic
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
- /************************************************************************
- The memory management: the debug code. This is not an independent
- compilation module but is included in mem0mem.*.
- (c) 1994, 1995 Innobase Oy
- Created 6/8/1994 Heikki Tuuri
- *************************************************************************/
- #ifdef UNIV_MEM_DEBUG
- extern mutex_t mem_hash_mutex;
- extern ulint mem_current_allocated_memory;
- /**********************************************************************
- Initializes an allocated memory field in the debug version. */
- void
- mem_field_init(
- /*===========*/
- byte* buf, /* in: memory field */
- ulint n); /* in: how many bytes the user requested */
- /**********************************************************************
- Erases an allocated memory field in the debug version. */
- void
- mem_field_erase(
- /*============*/
- byte* buf, /* in: memory field */
- ulint n); /* in: how many bytes the user requested */
- /*******************************************************************
- Initializes a buffer to a random combination of hex BA and BE.
- Used to initialize allocated memory. */
- void
- mem_init_buf(
- /*=========*/
- byte* buf, /* in: pointer to buffer */
- ulint n); /* in: length of buffer */
- /*******************************************************************
- Initializes a buffer to a random combination of hex DE and AD.
- Used to erase freed memory.*/
- void
- mem_erase_buf(
- /*==========*/
- byte* buf, /* in: pointer to buffer */
- ulint n); /* in: length of buffer */
- /*******************************************************************
- Inserts a created memory heap to the hash table of
- current allocated memory heaps.
- Initializes the hash table when first called. */
- void
- mem_hash_insert(
- /*============*/
- mem_heap_t* heap, /* in: the created heap */
- const char* file_name, /* in: file name of creation */
- ulint line); /* in: line where created */
- /*******************************************************************
- Removes a memory heap (which is going to be freed by the caller)
- from the list of live memory heaps. Returns the size of the heap
- in terms of how much memory in bytes was allocated for the user of
- the heap (not the total space occupied by the heap).
- Also validates the heap.
- NOTE: This function does not free the storage occupied by the
- heap itself, only the node in the list of heaps. */
- void
- mem_hash_remove(
- /*============*/
- mem_heap_t* heap, /* in: the heap to be freed */
- const char* file_name, /* in: file name of freeing */
- ulint line); /* in: line where freed */
- void
- mem_field_header_set_len(byte* field, ulint len);
- ulint
- mem_field_header_get_len(byte* field);
- void
- mem_field_header_set_check(byte* field, ulint check);
- ulint
- mem_field_header_get_check(byte* field);
- void
- mem_field_trailer_set_check(byte* field, ulint check);
- ulint
- mem_field_trailer_get_check(byte* field);
- #endif /* UNIV_MEM_DEBUG */