summaryrefslogtreecommitdiffstats
path: root/pki/base/tps/src/main/Memory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/tps/src/main/Memory.cpp')
-rw-r--r--pki/base/tps/src/main/Memory.cpp268
1 files changed, 0 insertions, 268 deletions
diff --git a/pki/base/tps/src/main/Memory.cpp b/pki/base/tps/src/main/Memory.cpp
deleted file mode 100644
index 1ee5027d0..000000000
--- a/pki/base/tps/src/main/Memory.cpp
+++ /dev/null
@@ -1,268 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation;
-// version 2.1 of the License.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor,
-// Boston, MA 02110-1301 USA
-//
-// Copyright (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "prmem.h"
-#include "prsystem.h"
-#include "plstr.h"
-#include "prio.h"
-#include "prprf.h"
-#include "plhash.h"
-#include "pk11func.h"
-
-#include "main/MemoryMgr.h"
-
-#ifdef MEM_PROFILING
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-typedef struct _ref_block
-{
- int id;
- void *ptr;
- const char *file;
- const char *func;
- const char *type;
- int line;
- int size;
- int used;
- PRTime time;
-} ref_block;
-
-#define MAX_BLOCKS 8096
-static ref_block m_rb[MAX_BLOCKS];
-
-static PRLock *m_free_block_lock = NULL;
-static PRLock *m_dump_lock = NULL;
-static PRLock *m_audit_lock = NULL;
-
-ref_block *get_free_block()
-{
- int i;
- PR_Lock(m_free_block_lock);
- for (i = 0; i < MAX_BLOCKS; i++) {
- if (m_rb[i].used == 0) {
- // lock
- m_rb[i].used = 1;
- m_rb[i].time = PR_Now();
- PR_Unlock(m_free_block_lock);
- return &m_rb[i];
- }
- }
- PR_Unlock(m_free_block_lock);
- return NULL;
-}
-
-ref_block *find_block(void *ptr)
-{
- int i;
- for (i = 0; i < MAX_BLOCKS; i++) {
- if (m_rb[i].used == 1 && m_rb[i].ptr == ptr) {
- return &m_rb[i];
- }
- }
- return NULL;
-}
-
-void free_block(ref_block *rb)
-{
- rb->used = 0;
-}
-
-static PRFileDesc *m_audit_f = NULL;
-static PRFileDesc *m_dump_f = NULL;
-
-void MEM_init(char *audit_file, char *dump_file)
-{
- m_audit_f = PR_Open(audit_file, PR_RDWR|PR_CREATE_FILE|PR_APPEND,
- 00200|00400);
- m_dump_f = PR_Open(dump_file, PR_RDWR|PR_CREATE_FILE|PR_APPEND,
- 00200|00400);
-
- int i;
- for (i = 0; i < MAX_BLOCKS; i++) {
- m_rb[i].id = i;
- m_rb[i].used = 0;
- }
- m_free_block_lock = PR_NewLock();
- m_dump_lock = PR_NewLock();
- m_audit_lock = PR_NewLock();
-}
-
-void MEM_shutdown()
-{
- PR_DestroyLock(m_free_block_lock);
- PR_DestroyLock(m_dump_lock);
- PR_DestroyLock(m_audit_lock);
- if (m_dump_f != NULL) {
- PR_Close(m_dump_f);
- }
- if (m_audit_f != NULL) {
- PR_Close(m_audit_f);
- }
-}
-
-static void MEM_audit_block(ref_block *ref, const char *type, const char *func, const char *file, int line, PRFileDesc *f)
-{
- PRTime now;
- const char* time_fmt = "%Y-%m-%d %H:%M:%S";
- char datetime[1024];
- PRExplodedTime time;
- char datetime1[1024];
- PRExplodedTime time1;
-
- now = PR_Now();
- PR_ExplodeTime(now, PR_LocalTimeParameters, &time);
- PR_FormatTimeUSEnglish(datetime, 1024, time_fmt, &time);
-
- PR_ExplodeTime(ref->time, PR_LocalTimeParameters, &time1);
- PR_FormatTimeUSEnglish(datetime1, 1024, time_fmt, &time1);
-
- PR_Lock(m_audit_lock);
- PR_fprintf(f, "[%s] ID='%d' Size='%d' Type='%s' Func='%s' File='%s' Line='%d' Time='%s'\n",
- datetime, ref->id, ref->size, type, func, file, line, datetime1);
- PR_Sync(f);
- PR_Unlock(m_audit_lock);
-}
-
-void MEM_dump_unfree()
-{
- int i;
- PRTime now;
- const char* time_fmt = "%Y-%m-%d %H:%M:%S";
- char datetime[1024];
- PRExplodedTime time;
- char datetime1[1024];
- PRExplodedTime time1;
- int sum_count = 0;
- int sum_mem = 0;
-
- now = PR_Now();
- PR_ExplodeTime(now, PR_LocalTimeParameters, &time);
- PR_FormatTimeUSEnglish(datetime, 1024, time_fmt, &time);
-
- PR_Lock(m_dump_lock);
- PR_fprintf(m_dump_f, "--------------------------------------------\n");
- PR_fprintf(m_dump_f, "Memory Report - '%s'\n", datetime);
- PR_fprintf(m_dump_f, "1) Unfree Blocks:\n");
- PR_fprintf(m_dump_f, "\n");
- for (i = 0; i < MAX_BLOCKS; i++) {
- if (!m_rb[i].used)
- continue;
- PR_ExplodeTime(m_rb[i].time, PR_LocalTimeParameters, &time1);
- PR_FormatTimeUSEnglish(datetime1, 1024, time_fmt, &time1);
- PR_fprintf(m_dump_f, " ID='%d' Size='%d' Type='%s' Func='%s' File='%s' Line='%d' Time='%s'\n", m_rb[i].id, m_rb[i].size, m_rb[i].type, m_rb[i].func, m_rb[i].file, m_rb[i].line, datetime1);
- sum_mem += m_rb[i].size;
- sum_count += 1;
- }
- PR_fprintf(m_dump_f, "\n");
- PR_fprintf(m_dump_f, "2) Total Unfree Memory Size:\n");
- PR_fprintf(m_dump_f, " %d bytes\n", sum_mem);
- PR_fprintf(m_dump_f, "\n");
- PR_fprintf(m_dump_f, "3) Total Unfree Memory Blocks:\n");
- PR_fprintf(m_dump_f, " %d\n", sum_count);
- PR_fprintf(m_dump_f, "\n");
- PR_fprintf(m_dump_f, "--------------------------------------------\n");
- PR_Sync(m_dump_f);
- PR_Unlock(m_dump_lock);
-}
-
-char *MEM_strdup(const char *s, const char *type, const char *func, const char *file, int line)
-{
- ref_block *rb = get_free_block();
- if (rb == NULL)
- return NULL;
-
- char *buf = strdup(s);
-
- rb->ptr = buf;
- rb->func = func;
- rb->file = file;
- rb->line = line;
- rb->type = type;
- rb->size = strlen(s) + 1;
- MEM_audit_block(rb, rb->type, rb->func, rb->file, rb->line, m_audit_f);
-
- return buf;
-}
-
-void *MEM_malloc(int size, const char *type, const char *func, const char *file, int line)
-{
- ref_block *rb = get_free_block();
- if (rb == NULL)
- return NULL;
- void *buf = malloc(size);
-
- rb->ptr = buf;
- rb->func = func;
- rb->file = file;
- rb->line = line;
- rb->type = type;
- rb->size = size;
- MEM_audit_block(rb, rb->type, rb->func, rb->file, rb->line, m_audit_f);
-
- return buf;
-}
-
-void MEM_free(void *p, const char *type, const char *func, const char *file, int line)
-{
- if (p == NULL)
- return;
- ref_block *rb = find_block(p);
- if (rb == NULL)
- return;
- MEM_audit_block(rb, type, func, file, line, m_audit_f);
- free(p);
- free_block(rb);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#if 0
-void *operator new(size_t size, const char *func, const char *file, int line)
-{
- return MEM_malloc(size, func, file, line);
-}
-
-void *operator new[](size_t size, const char *func, const char *file, int line)
-{
- return MEM_malloc(size, func, file, line);
-}
-
-#endif
-void operator delete(void *p)
-{
- MEM_free(p,"delete","", "", 0);
-}
-
-void operator delete[](void *p)
-{
- MEM_free(p,"delete[]","", "", 0);
-}
-
-#endif /* MEM_PROFILING */
-