/*
 * ----------------------------------------------------------------
 * Night Light Memory Allocation Library Header (memcalls_int.h)
 * ----------------------------------------------------------------
 * Copyright (C) 1997-2007 Jonas Kvinge <jonas@night-light.net>
 * All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Last modified by:
 * Jonas Kvinge (25.03.2007)
 *
 */

#ifdef MEMCALLS_INT_H
#warning "memcalls_int.h already included."
#else
#define MEMCALLS_INT_H

#define MALLOC_HASH_SIZE	65539
#ifndef MALLOC_LIMIT
  #define MALLOC_LIMIT		0xFFFFFFF
#endif

#define MALLOC_PREFIX		"Hurricane"
#define MALLOC_POSTFIX		"SweetJane"

#define MALLOC_PREFIX_LEN	strlen(MALLOC_PREFIX)
#define MALLOC_POSTFIX_LEN	strlen(MALLOC_POSTFIX)

#define MALLOC_REDBYTE		0xCD

#define MALLOC_PRINT		FALSE

#define MallocHash(PTR)		(((unsigned long) (PTR) >> 3) % MALLOC_HASH_SIZE)

/* STRUCTURES - JONAS (21.09.2001) */

struct MemTable_Struct {

  const void *PTR;
  const char *File;
  unsigned short int Line;
  const char *Function;
  size_t Size;
  time_t Time;

  struct MemTable_Struct *Prev;
  struct MemTable_Struct *Next;

  struct MemTable_Struct *PrevH;
  struct MemTable_Struct *NextH;

};

/* FUNCTION PROTOTYPES - JONAS (21.09.2001) */

void memtable_add(const void *const PTR, const char *const FilePT, const unsigned short int Line, const char *const FunctionPT, const size_t Size);
void memtable_rem(struct MemTable_Struct *MemTableS);
struct MemTable_Struct *memtable_get(const void *const PTR);

#endif


syntax highlighted by Code2HTML, v. 0.9.1