/*
* Copyright (c) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
* 2002, 2003, 2004
* Ohio University.
*
* ---
*
* Starting with the release of tcptrace version 6 in 2001, tcptrace
* is licensed under the GNU General Public License (GPL). We believe
* that, among the available licenses, the GPL will do the best job of
* allowing tcptrace to continue to be a valuable, freely-available
* and well-maintained tool for the networking community.
*
* Previous versions of tcptrace were released under a license that
* was much less restrictive with respect to how tcptrace could be
* used in commercial products. Because of this, I am willing to
* consider alternate license arrangements as allowed in Section 10 of
* the GNU GPL. Before I would consider licensing tcptrace under an
* alternate agreement with a particular individual or company,
* however, I would have to be convinced that such an alternative
* would be to the greater benefit of the networking community.
*
* ---
*
* This file is part of Tcptrace.
*
* Tcptrace was originally written and continues to be maintained by
* Shawn Ostermann with the help of a group of devoted students and
* users (see the file 'THANKS'). The work on tcptrace has been made
* possible over the years through the generous support of NASA GRC,
* the National Science Foundation, and Sun Microsystems.
*
* Tcptrace 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.
*
* Tcptrace 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 Tcptrace (in the file 'COPYING'); if not, write to the
* Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
* Author: Marina Bykova
* School of Electrical Engineering and Computer Science
* Ohio University
* Athens, OH
* http://www.tcptrace.org/
*/
#include "tcptrace.h"
static char const GCC_UNUSED copyright[] =
"@(#)Copyright (c) 2004 -- Ohio University.\n";
static char const GCC_UNUSED rcsid[] =
"@(#)$Header: /usr/local/cvs/tcptrace/poolaccess.c,v 5.5 2003/11/19 14:38:04 sdo Exp $";
static long tcp_pair_pool = -1;
static long udp_pair_pool = -1;
static long seqspace_pool = -1;
static long ptp_snap_pool = -1;
static long ptp_ptr_pool = -1;
static long segment_pool = -1;
static long quadrant_pool = -1;
tcp_pair *
MakeTcpPair(
void)
{
tcp_pair *ptr = NULL;
if (tcp_pair_pool < 0) {
tcp_pair_pool = MakeMemPool(sizeof(tcp_pair), 0);
}
ptr = PoolMalloc(tcp_pair_pool, sizeof(tcp_pair));
return ptr;
}
void
FreeTcpPair(
tcp_pair *ptr)
{
PoolFree(tcp_pair_pool, ptr);
}
udp_pair *
MakeUdpPair(
void)
{
udp_pair *ptr = NULL;
if (udp_pair_pool < 0) {
udp_pair_pool = MakeMemPool(sizeof(udp_pair), 0);
}
ptr = PoolMalloc(udp_pair_pool, sizeof(udp_pair));
return ptr;
}
void
FreeUdpPair(
udp_pair *ptr)
{
PoolFree(udp_pair_pool, ptr);
}
seqspace *
MakeSeqspace(
void)
{
seqspace *ptr = NULL;
if (seqspace_pool < 0) {
seqspace_pool = MakeMemPool(sizeof(seqspace), 0);
}
ptr = PoolMalloc(seqspace_pool, sizeof(seqspace));
return ptr;
}
void
FreeSeqspace(
seqspace *ptr)
{
PoolFree(seqspace_pool, ptr);
}
ptp_snap *
MakePtpSnap(
void)
{
ptp_snap *ptr = NULL;
if (ptp_snap_pool < 0) {
ptp_snap_pool = MakeMemPool(sizeof(ptp_snap), 0);
}
ptr = PoolMalloc(ptp_snap_pool, sizeof(ptp_snap));
return ptr;
}
void
FreePtpSnap(
ptp_snap *ptr)
{
PoolFree(ptp_snap_pool, ptr);
}
ptp_ptr *
MakePtpPtr(
void)
{
ptp_ptr *ptr = NULL;
if (ptp_ptr_pool < 0) {
ptp_ptr_pool = MakeMemPool(sizeof(ptp_ptr), 0);
}
ptr = PoolMalloc(ptp_ptr_pool, sizeof(ptp_ptr));
return ptr;
}
void
FreePtpPtr(
ptp_ptr *ptr)
{
PoolFree(ptp_ptr_pool, ptr);
}
segment *
MakeSegment(
void)
{
segment *ptr = NULL;
if (segment_pool < 0) {
segment_pool = MakeMemPool(sizeof(segment), 0);
}
ptr = PoolMalloc(segment_pool, sizeof(segment));
return ptr;
}
void
FreeSegment(
segment *ptr)
{
PoolFree(segment_pool, ptr);
}
quadrant *
MakeQuadrant(
void)
{
quadrant *ptr = NULL;
if (quadrant_pool < 0) {
quadrant_pool = MakeMemPool(sizeof(quadrant), 0);
}
ptr = PoolMalloc(quadrant_pool, sizeof(quadrant));
return ptr;
}
void
FreeQuadrant(
quadrant *ptr)
{
PoolFree(quadrant_pool, ptr);
}
syntax highlighted by Code2HTML, v. 0.9.1