/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 1993 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.14 */ /* LINTLIBRARY */ #include "unistd.h" #include "sys/types.h" #include "sys/stat.h" #include "errno.h" #include "fcntl.h" #include "stdlib.h" #include "string.h" /** ** _Malloc() ** _Realloc() ** _Calloc() ** _Strdup() ** _Free() **/ #if !defined(TRACE_MALLOC) #if defined(__STDC__) void (*lp_alloc_fail_handler)( void ) = 0; #else void (*lp_alloc_fail_handler)() = 0; #endif #if defined(__STDC__) typedef void *alloc_type; #else typedef char *alloc_type; #endif alloc_type #if defined(__STDC__) _Malloc ( size_t size, const char * file, int line ) #else _Malloc (size, file, line) size_t size; char * file; int line; #endif { alloc_type ret = malloc(size); if (!ret) { if (lp_alloc_fail_handler) (*lp_alloc_fail_handler)(); errno = ENOMEM; } return (ret); } alloc_type #if defined(__STDC__) _Realloc ( void * ptr, size_t size, const char * file, int line ) #else _Realloc (ptr, size, file, line) char * ptr; size_t size; char * file; int line; #endif { alloc_type ret = realloc(ptr, size); if (!ret) { if (lp_alloc_fail_handler) (*lp_alloc_fail_handler)(); errno = ENOMEM; } return (ret); } alloc_type #if defined(__STDC__) _Calloc ( size_t nelem, size_t elsize, const char * file, int line ) #else _Calloc (nelem, elsize, file, line) size_t nelem; size_t elsize; char * file; int line; #endif { alloc_type ret = calloc(nelem, elsize); if (!ret) { if (lp_alloc_fail_handler) (*lp_alloc_fail_handler)(); errno = ENOMEM; } return (ret); } char * #if defined(__STDC__) _Strdup ( const char * s, const char * file, int line ) #else _Strdup (s, file, line) char * s; char * file; int line; #endif { char * ret; if (!s) return( (char *) 0); ret = strdup(s); if (!ret) { if (lp_alloc_fail_handler) (*lp_alloc_fail_handler)(); errno = ENOMEM; } return (ret); } void #if defined(__STDC__) _Free ( void * ptr, const char * file, int line ) #else _Free (ptr, file, line) char * ptr; char * file; int line; #endif { free (ptr); return; } #else # include "mdl.c" #endif